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;


Reply via email to