You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/03/22 17:21:16 UTC
svn commit: r521324 - in /maven/components/branches/maven-2.0.x:
maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/
maven-core/src/main/java/org/apache/maven/
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;