Author: jvanzyl Date: Thu Mar 22 09:21:15 2007 New Revision: 521324 URL: http://svn.apache.org/viewvc?view=rev&rev=521324 Log: MNG-2891 Adding a default permission set that will be used by the wagon manager if the server being used for deployment doesn't have any set.
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?view=diff&rev=521324&r1=521323&r2=521324 ============================================================================== --- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original) +++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Thu Mar 22 09:21:15 2007 @@ -80,9 +80,7 @@ private Map mirrors = new HashMap(); - /** - * Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration - */ + /** Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration */ private Map serverConfigurationMap = new HashMap(); private TransferListener downloadMonitor; @@ -95,6 +93,8 @@ private Map availableWagons = new HashMap(); + private RepositoryPermissions defaultRepositoryPermissions; + // TODO: this leaks the component in the public api - it is never released back to the container public Wagon getWagon( Repository repository ) throws UnsupportedProtocolException, WagonConfigurationException @@ -145,20 +145,26 @@ return container; } - public void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository ) + public void putArtifact( File source, + Artifact artifact, + ArtifactRepository deploymentRepository ) throws TransferFailedException { putRemoteFile( deploymentRepository, source, deploymentRepository.pathOf( artifact ), downloadMonitor ); } - public void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository ) + public void putArtifactMetadata( File source, + ArtifactMetadata artifactMetadata, + ArtifactRepository repository ) throws TransferFailedException { getLogger().info( "Uploading " + artifactMetadata ); putRemoteFile( repository, source, repository.pathOfRemoteRepositoryMetadata( artifactMetadata ), null ); } - private void putRemoteFile( ArtifactRepository repository, File source, String remotePath, + private void putRemoteFile( ArtifactRepository repository, + File source, + String remotePath, TransferListener downloadMonitor ) throws TransferFailedException { @@ -208,13 +214,22 @@ if ( serverPermissionsMap.containsKey( repository.getId() ) ) { RepositoryPermissions perms = (RepositoryPermissions) serverPermissionsMap.get( repository.getId() ); + getLogger().debug( "adding permissions to wagon connection: " + perms.getFileMode() + " " + perms.getDirectoryMode() ); + artifactRepository.setPermissions( perms ); } else { - getLogger().debug( "not adding permissions to wagon connection" ); + if ( defaultRepositoryPermissions != null ) + { + artifactRepository.setPermissions( defaultRepositoryPermissions ); + } + else + { + getLogger().debug( "not adding permissions to wagon connection" ); + } } wagon.connect( artifactRepository, getAuthenticationInfo( repository.getId() ), getProxy( protocol ) ); @@ -272,7 +287,8 @@ } } - public void getArtifact( Artifact artifact, List remoteRepositories ) + public void getArtifact( Artifact artifact, + List remoteRepositories ) throws TransferFailedException, ResourceDoesNotExistException { // TODO [BP]: The exception handling here needs some work @@ -309,7 +325,8 @@ } } - public void getArtifact( Artifact artifact, ArtifactRepository repository ) + public void getArtifact( Artifact artifact, + ArtifactRepository repository ) throws TransferFailedException, ResourceDoesNotExistException { String remotePath = repository.pathOf( artifact ); @@ -335,7 +352,9 @@ } } - public void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository repository, File destination, + public void getArtifactMetadata( ArtifactMetadata metadata, + ArtifactRepository repository, + File destination, String checksumPolicy ) throws TransferFailedException, ResourceDoesNotExistException { @@ -344,8 +363,12 @@ getRemoteFile( repository, destination, remotePath, null, checksumPolicy, true ); } - private void getRemoteFile( ArtifactRepository repository, File destination, String remotePath, - TransferListener downloadMonitor, String checksumPolicy, boolean force ) + private void getRemoteFile( ArtifactRepository repository, + File destination, + String remotePath, + TransferListener downloadMonitor, + String checksumPolicy, + boolean force ) throws TransferFailedException, ResourceDoesNotExistException { // TODO: better excetpions - transfer failed is not enough? @@ -569,7 +592,9 @@ } } - private void handleChecksumFailure( String checksumPolicy, String message, Throwable cause ) + private void handleChecksumFailure( String checksumPolicy, + String message, + Throwable cause ) throws ChecksumFailedException { if ( ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL.equals( checksumPolicy ) ) @@ -584,8 +609,12 @@ // otherwise it is ignore } - private void verifyChecksum( ChecksumObserver checksumObserver, File destination, File tempDestination, - String remotePath, String checksumFileExtension, Wagon wagon ) + private void verifyChecksum( ChecksumObserver checksumObserver, + File destination, + File tempDestination, + String remotePath, + String checksumFileExtension, + Wagon wagon ) throws ResourceDoesNotExistException, TransferFailedException, AuthorizationException { try @@ -651,7 +680,8 @@ } } - private void releaseWagon( String protocol, Wagon wagon ) + private void releaseWagon( String protocol, + Wagon wagon ) { PlexusContainer container = getWagonContainer( protocol ); try @@ -696,7 +726,11 @@ * property format: <code>*.foo.com|localhost</code>. * @todo [BP] would be nice to configure this via plexus in some way */ - public void addProxy( String protocol, String host, int port, String username, String password, + public void addProxy( String protocol, + String host, + int port, + String username, + String password, String nonProxyHosts ) { ProxyInfo proxyInfo = new ProxyInfo(); @@ -716,15 +750,16 @@ container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); } - /** - * @todo I'd rather not be setting this explicitly. - */ + /** @todo I'd rather not be setting this explicitly. */ public void setDownloadMonitor( TransferListener downloadMonitor ) { this.downloadMonitor = downloadMonitor; } - public void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, + public void addAuthenticationInfo( String repositoryId, + String username, + String password, + String privateKey, String passphrase ) { AuthenticationInfo authInfo = new AuthenticationInfo(); @@ -740,7 +775,9 @@ authenticationInfoMap.put( repositoryId, authInfo ); } - public void addPermissionInfo( String repositoryId, String filePermissions, String directoryPermissions ) + public void addPermissionInfo( String repositoryId, + String filePermissions, + String directoryPermissions ) { RepositoryPermissions permissions = new RepositoryPermissions(); @@ -764,7 +801,9 @@ } } - public void addMirror( String id, String mirrorOf, String url ) + public void addMirror( String id, + String mirrorOf, + String url ) { ArtifactRepository mirror = new DefaultArtifactRepository( id, url, null ); @@ -786,7 +825,8 @@ this.interactive = interactive; } - public void registerWagons( Collection wagons, PlexusContainer extensionContainer ) + public void registerWagons( Collection wagons, + PlexusContainer extensionContainer ) { for ( Iterator i = wagons.iterator(); i.hasNext(); ) { @@ -801,13 +841,15 @@ * @param repository the repository that has the configuration * @throws WagonConfigurationException wraps any error given during configuration of the wagon instance */ - private void configureWagon( Wagon wagon, ArtifactRepository repository ) + private void configureWagon( Wagon wagon, + ArtifactRepository repository ) throws WagonConfigurationException { configureWagon( wagon, repository.getId() ); } - private void configureWagon( Wagon wagon, String repositoryId ) + private void configureWagon( Wagon wagon, + String repositoryId ) throws WagonConfigurationException { if ( serverConfigurationMap.containsKey( repositoryId ) ) @@ -847,7 +889,8 @@ } } - public void addConfiguration( String repositoryId, Xpp3Dom configuration ) + public void addConfiguration( String repositoryId, + Xpp3Dom configuration ) { if ( repositoryId == null || configuration == null ) { @@ -859,4 +902,8 @@ serverConfigurationMap.put( repositoryId, xmlConf ); } + public void setDefaultRepositoryPermissions( RepositoryPermissions defaultRepositoryPermissions ) + { + this.defaultRepositoryPermissions = defaultRepositoryPermissions; + } } Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java?view=diff&rev=521324&r1=521323&r2=521324 ============================================================================== --- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java (original) +++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java Thu Mar 22 09:21:15 2007 @@ -30,6 +30,7 @@ import org.apache.maven.wagon.events.TransferListener; import org.apache.maven.wagon.proxy.ProxyInfo; import org.apache.maven.wagon.repository.Repository; +import org.apache.maven.wagon.repository.RepositoryPermissions; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.util.xml.Xpp3Dom; @@ -117,4 +118,6 @@ void setInteractive( boolean interactive ); void registerWagons( Collection wagons, PlexusContainer extensionContainer ); + + void setDefaultRepositoryPermissions( RepositoryPermissions permissions ); } Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?view=diff&rev=521324&r1=521323&r2=521324 ============================================================================== --- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original) +++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Thu Mar 22 09:21:15 2007 @@ -48,6 +48,7 @@ import org.apache.maven.settings.SettingsUtils; import org.apache.maven.usability.SystemWarnings; import org.apache.maven.usability.diagnostics.ErrorDiagnostics; +import org.apache.maven.wagon.repository.RepositoryPermissions; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; @@ -57,6 +58,7 @@ import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.dag.CycleDetectedException; import org.codehaus.plexus.util.xml.Xpp3Dom; @@ -197,7 +199,8 @@ dispatcher.dispatchEnd( event, request.getBaseDirectory() ); } - private void logErrors( ReactorManager rm, boolean showErrors ) + private void logErrors( ReactorManager rm, + boolean showErrors ) { for ( Iterator it = rm.getSortedProjects().iterator(); it.hasNext(); ) { @@ -227,7 +230,8 @@ } - private ReactorManager doExecute( MavenExecutionRequest request, EventDispatcher dispatcher ) + private ReactorManager doExecute( MavenExecutionRequest request, + EventDispatcher dispatcher ) throws MavenExecutionException, BuildFailureException, LifecycleExecutionException { if ( request.getSettings().isOffline() ) @@ -348,7 +352,8 @@ return superProject; } - private List getProjects( MavenExecutionRequest request, ProfileManager globalProfileManager ) + private List getProjects( MavenExecutionRequest request, + ProfileManager globalProfileManager ) throws MavenExecutionException, BuildFailureException { List projects; @@ -379,12 +384,15 @@ return projects; } - private void logReactorSummaryLine( String name, String status ) + private void logReactorSummaryLine( String name, + String status ) { logReactorSummaryLine( name, status, -1 ); } - private void logReactorSummaryLine( String name, String status, long time ) + private void logReactorSummaryLine( String name, + String status, + long time ) { StringBuffer messageBuffer = new StringBuffer(); @@ -433,8 +441,12 @@ return fmt.format( new Date( time ) ); } - private List collectProjects( List files, ArtifactRepository localRepository, boolean recursive, Settings settings, - ProfileManager globalProfileManager, boolean isRoot ) + private List collectProjects( List files, + ArtifactRepository localRepository, + boolean recursive, + Settings settings, + ProfileManager globalProfileManager, + boolean isRoot ) throws ArtifactResolutionException, ProjectBuildingException, ProfileActivationException, MavenExecutionException, BuildFailureException { @@ -507,7 +519,9 @@ return projects; } - public MavenProject getProject( File pom, ArtifactRepository localRepository, Settings settings, + public MavenProject getProject( File pom, + ArtifactRepository localRepository, + Settings settings, ProfileManager globalProfileManager ) throws ProjectBuildingException, ArtifactResolutionException, ProfileActivationException { @@ -532,7 +546,8 @@ // the session type would be specific to the request i.e. having a project // or not. - protected MavenSession createSession( MavenExecutionRequest request, ReactorManager rpm ) + protected MavenSession createSession( MavenExecutionRequest request, + ReactorManager rpm ) { return new MavenSession( container, request.getSettings(), request.getLocalRepository(), request.getEventDispatcher(), rpm, request.getGoals(), request.getBaseDirectory(), @@ -581,6 +596,14 @@ } } + RepositoryPermissions defaultPermissions = new RepositoryPermissions(); + + defaultPermissions.setDirectoryMode( "775" ); + + defaultPermissions.setFileMode( "664" ); + + wagonManager.setDefaultRepositoryPermissions( defaultPermissions ); + for ( Iterator i = settings.getMirrors().iterator(); i.hasNext(); ) { Mirror mirror = (Mirror) i.next(); @@ -621,7 +644,8 @@ logTrace( error, true ); } - protected void logError( Exception e, boolean showErrors ) + protected void logError( Exception e, + boolean showErrors ) { line(); @@ -641,7 +665,8 @@ } } - protected void logFailure( BuildFailureException e, boolean showErrors ) + protected void logFailure( BuildFailureException e, + boolean showErrors ) { line(); @@ -661,7 +686,8 @@ } } - private void logTrace( Throwable t, boolean showErrors ) + private void logTrace( Throwable t, + boolean showErrors ) { if ( getLogger().isDebugEnabled() ) { @@ -770,7 +796,7 @@ { getLogger().info( "------------------------------------------------------------------------" ); } - + protected static String formatTime( long ms ) { long secs = ms / MS_PER_SEC;