diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java index 9c08b43051..fd1cdf3f8b 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java @@ -80,7 +80,7 @@ public class DefaultArtifactDeployer FileUtils.copyFile( source, artifactFile ); } - wagonManager.putArtifact( source, artifact, deploymentRepository ); + wagonManager.putArtifact( source, artifact, deploymentRepository, null ); // must be after the artifact is installed for ( ArtifactMetadata metadata : artifact.getMetadataList() ) diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java index 537d585b8f..a69e7c7700 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java @@ -24,19 +24,16 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.security.NoSuchAlgorithmException; -import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Set; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; -import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.wagon.ConnectionException; import org.apache.maven.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; @@ -51,7 +48,6 @@ import org.apache.maven.wagon.proxy.ProxyInfo; import org.apache.maven.wagon.proxy.ProxyInfoProvider; import org.apache.maven.wagon.repository.Repository; import org.apache.maven.wagon.repository.RepositoryPermissions; -import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @@ -59,26 +55,23 @@ import org.codehaus.plexus.component.configurator.BasicComponentConfigurator; import org.codehaus.plexus.component.configurator.ComponentConfigurationException; import org.codehaus.plexus.component.configurator.ComponentConfigurator; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration; -import org.codehaus.plexus.context.Context; -import org.codehaus.plexus.context.ContextException; -import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; +import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.xml.Xpp3Dom; @Component(role=WagonManager.class) public class DefaultWagonManager - extends AbstractLogEnabled implements WagonManager { private static final String[] CHECKSUM_IDS = {"md5", "sha1"}; /** have to match the CHECKSUM_IDS */ private static final String[] CHECKSUM_ALGORITHMS = {"MD5", "SHA-1"}; - + + @Requirement + private Logger logger; + @Requirement private PlexusContainer container; @@ -96,12 +89,6 @@ public class DefaultWagonManager /** Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration */ private Map serverConfigurationMap = new HashMap(); - private TransferListener downloadMonitor; - - private boolean online = true; - - private boolean interactive = true; - private RepositoryPermissions defaultRepositoryPermissions; // Components @@ -120,6 +107,13 @@ public class DefaultWagonManager private String httpUserAgent = "Apache-Maven/3.0-alpha-1"; + private TransferListener downloadMonitor; + + public void setDownloadMonitor( TransferListener downloadMonitor ) + { + this.downloadMonitor = downloadMonitor; + } + // 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 @@ -160,27 +154,26 @@ public class DefaultWagonManager return wagon; } - 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 putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor ) 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 ); + logger.info( "Uploading " + artifactMetadata ); putRemoteFile( repository, source, repository.pathOfRemoteRepositoryMetadata( artifactMetadata ), null ); } - private void putRemoteFile( ArtifactRepository repository, - File source, - String remotePath, - TransferListener downloadMonitor ) + private void putRemoteFile( ArtifactRepository repository, File source, String remotePath, TransferListener downloadMonitor ) throws TransferFailedException { String protocol = repository.getProtocol(); @@ -233,7 +226,7 @@ public class DefaultWagonManager catch ( CredentialsDataSourceException e ) { String err = "Problem with server credentials: " + e.getMessage(); - getLogger().error( err ); + logger.error( err ); throw new TransferFailedException( err ); } finally @@ -315,22 +308,31 @@ public class DefaultWagonManager // NOTE: It is not possible that this method throws TransferFailedException under current conditions. // FIXME: Change the throws clause to reflect the fact that we're never throwing TransferFailedException - public void getArtifact( Artifact artifact, - List remoteRepositories ) + public void getArtifact( Artifact artifact, ArtifactRepository remoteRepository, boolean force ) + throws TransferFailedException, ResourceDoesNotExistException + { + getArtifact( artifact, remoteRepository, downloadMonitor, force ); + } + + public void getArtifact( Artifact artifact, ArtifactRepository remoteRepository ) + throws TransferFailedException, ResourceDoesNotExistException + { + getArtifact( artifact, remoteRepository, downloadMonitor, true ); + } + + public void getArtifact( Artifact artifact, List remoteRepositories, TransferListener downloadMonitor ) throws TransferFailedException, ResourceDoesNotExistException { - getArtifact( artifact, remoteRepositories, true ); + getArtifact( artifact, remoteRepositories, downloadMonitor, true ); } - public void getArtifact( Artifact artifact, - List remoteRepositories, - boolean force ) + public void getArtifact( Artifact artifact, List remoteRepositories, TransferListener downloadMonitor, boolean force ) throws TransferFailedException, ResourceDoesNotExistException { for (ArtifactRepository repository : remoteRepositories) { try { - getArtifact( artifact, repository, force ); + getArtifact( artifact, repository, downloadMonitor, force ); if (artifact.isResolved()) { @@ -342,12 +344,12 @@ public class DefaultWagonManager // This one we will eat when looking through remote repositories // because we want to cycle through them all before squawking. - getLogger().debug( "Unable to get resource '" + artifact.getId() + "' from repository " + + logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e ); } catch ( TransferFailedException e ) { - getLogger().debug( "Unable to get resource '" + artifact.getId() + "' from repository " + + logger.debug( "Unable to get resource '" + artifact.getId() + "' from repository " + repository.getId() + " (" + repository.getUrl() + ")", e ); } } @@ -359,17 +361,14 @@ public class DefaultWagonManager } } - public void getArtifact( Artifact artifact, - ArtifactRepository repository ) + public void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor ) throws TransferFailedException, ResourceDoesNotExistException { - getArtifact( artifact, repository, true ); + getArtifact( artifact, repository, downloadMonitor, true ); } - public void getArtifact( Artifact artifact, - ArtifactRepository repository, - boolean force ) + public void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor, boolean force ) throws TransferFailedException, ResourceDoesNotExistException { String remotePath = repository.pathOf( artifact ); @@ -378,18 +377,18 @@ public class DefaultWagonManager if ( !policy.isEnabled() ) { - getLogger().debug( "Skipping disabled repository " + repository.getId() ); + logger.debug( "Skipping disabled repository " + repository.getId() ); } else if ( repository.isBlacklisted() ) { - getLogger().debug( "Skipping blacklisted repository " + repository.getId() ); + logger.debug( "Skipping blacklisted repository " + repository.getId() ); } // If the artifact is a snapshot, we need to determine whether it's time to check this repository for an update: // 1. If it's forced, then check // 2. If the updateInterval has been exceeded since the last check for this artifact on this repository, then check. else if ( artifact.isSnapshot() && ( force || updateCheckManager.isUpdateRequired( artifact, repository ) ) ) { - getLogger().debug( "Trying repository " + repository.getId() ); + logger.debug( "Trying repository " + repository.getId() ); try { @@ -400,7 +399,7 @@ public class DefaultWagonManager updateCheckManager.touch( artifact, repository ); } - getLogger().debug( " Artifact resolved" ); + logger.debug( " Artifact resolved" ); artifact.setResolved( true ); } @@ -414,7 +413,7 @@ public class DefaultWagonManager // if POM is not present locally, try and get it if it's forced, out of date, or has not been attempted yet if ( force || updateCheckManager.isPomUpdateRequired( artifact, repository ) ) { - getLogger().debug( "Trying repository " + repository.getId() ); + logger.debug( "Trying repository " + repository.getId() ); try { @@ -428,7 +427,7 @@ public class DefaultWagonManager throw e; } - getLogger().debug( " Artifact resolved" ); + logger.debug( " Artifact resolved" ); artifact.setResolved( true ); } @@ -448,11 +447,11 @@ public class DefaultWagonManager // don't write touch-file for release artifacts. else if ( !artifact.isSnapshot() ) { - getLogger().debug( "Trying repository " + repository.getId() ); + logger.debug( "Trying repository " + repository.getId() ); getRemoteFile( repository, artifact.getFile(), remotePath, downloadMonitor, policy.getChecksumPolicy(), false ); - getLogger().debug( " Artifact resolved" ); + logger.debug( " Artifact resolved" ); artifact.setResolved( true ); } @@ -598,7 +597,7 @@ public class DefaultWagonManager // repository's checksum checking policy. if ( firstRun ) { - getLogger().warn( "*** CHECKSUM FAILED - " + e.getMessage() + " - RETRYING" ); + logger.warn( "*** CHECKSUM FAILED - " + e.getMessage() + " - RETRYING" ); retry = true; } else @@ -608,7 +607,7 @@ public class DefaultWagonManager } catch ( ResourceDoesNotExistException sha1TryException ) { - getLogger().debug( "SHA1 not found, trying MD5", sha1TryException ); + logger.debug( "SHA1 not found, trying MD5", sha1TryException ); // if this IS NOT a ChecksumFailedException, it was a problem with transfer/read of the checksum // file...we'll try again with the MD5 checksum. @@ -719,7 +718,7 @@ public class DefaultWagonManager else if ( !ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE.equals( checksumPolicy ) ) { // warn if it is set to anything other than ignore - getLogger().warn( "*** CHECKSUM FAILED - " + message + " - IGNORING" ); + logger.warn( "*** CHECKSUM FAILED - " + message + " - IGNORING" ); } // otherwise it is ignore } @@ -794,7 +793,7 @@ public class DefaultWagonManager } catch ( ConnectionException e ) { - getLogger().error( "Problem disconnecting from wagon - ignoring: " + e.getMessage() ); + logger.error( "Problem disconnecting from wagon - ignoring: " + e.getMessage() ); } } @@ -807,8 +806,8 @@ public class DefaultWagonManager } catch ( ComponentLifecycleException e ) { - getLogger().error( "Problem releasing wagon - ignoring: " + e.getMessage() ); - getLogger().debug( "", e ); + logger.error( "Problem releasing wagon - ignoring: " + e.getMessage() ); + logger.debug( "", e ); } } @@ -918,32 +917,6 @@ public class DefaultWagonManager } } - public void setInteractive( boolean interactive ) - { - this.interactive = interactive; - } - - public void findAndRegisterWagons( PlexusContainer container ) - { - try - { - Map wagons = container.lookupMap( Wagon.ROLE ); - - registerWagons( wagons.keySet(), container ); - } - catch ( ComponentLookupException e ) - { - // no wagons found in the extension - } - } - - /** @deprecated Wagons are discovered in plugin and extension realms now. */ - @Deprecated - public void registerWagons( Collection wagons, - PlexusContainer extensionContainer ) - { - } - /** * Applies the server configuration to the wagon * @@ -986,7 +959,7 @@ public class DefaultWagonManager } catch ( ComponentLifecycleException e ) { - getLogger().error( "Problem releasing configurator - ignoring: " + e.getMessage() ); + logger.error( "Problem releasing configurator - ignoring: " + e.getMessage() ); } } @@ -1009,11 +982,4 @@ public class DefaultWagonManager { return httpUserAgent; } - - // Things to remove - - public void setDownloadMonitor( TransferListener listener ) - { - this.downloadMonitor = listener; - } } diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java index 9422d09122..83d0d6f346 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java @@ -40,7 +40,12 @@ import java.util.List; */ public interface WagonManager { - String ROLE = WagonManager.class.getName(); + + void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener downloadMonitor, boolean forceUpdateCheck ) + throws TransferFailedException, ResourceDoesNotExistException; + + void putArtifact( File source, Artifact artifact, ArtifactRepository deploymentRepository, TransferListener downloadMonitor ) + throws TransferFailedException; /** * Get a Wagon provider that understands the protocol passed as argument. @@ -66,48 +71,21 @@ public interface WagonManager Wagon getWagon( Repository repository ) throws UnsupportedProtocolException, WagonConfigurationException; - void getArtifact( Artifact artifact, - List remoteRepositories ) + void getArtifact( Artifact artifact, List remoteRepositories, TransferListener tl, boolean force ) throws TransferFailedException, ResourceDoesNotExistException; - void getArtifact( Artifact artifact, - List remoteRepositories, - boolean forceUpdateCheck ) - throws TransferFailedException, ResourceDoesNotExistException; - - void getArtifact( Artifact artifact, - ArtifactRepository repository ) + void getArtifact( Artifact artifact, ArtifactRepository repository, TransferListener tl ) throws TransferFailedException, ResourceDoesNotExistException; - void getArtifact( Artifact artifact, - ArtifactRepository repository, - boolean forceUpdateCheck ) - throws TransferFailedException, ResourceDoesNotExistException; - - void putArtifact( File source, - Artifact artifact, - ArtifactRepository deploymentRepository ) + void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, ArtifactRepository repository ) throws TransferFailedException; - void putArtifactMetadata( File source, - ArtifactMetadata artifactMetadata, - ArtifactRepository repository ) - throws TransferFailedException; - - void getArtifactMetadata( ArtifactMetadata metadata, - ArtifactRepository remoteRepository, - File destination, - String checksumPolicy ) + void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File destination, String checksumPolicy ) throws TransferFailedException, ResourceDoesNotExistException; - void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository remoteRepository, - File file, String checksumPolicyWarn ) + void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository remoteRepository, File file, String checksumPolicyWarn ) throws TransferFailedException, ResourceDoesNotExistException; - // All the tests fail that are specifically look for the contents of the listener fail without this. - void setDownloadMonitor( TransferListener listener ); - - void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, - String passphrase ); + void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase ); } diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java index 49de1e4629..ebc5ca6844 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java @@ -9,6 +9,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; +import org.apache.maven.wagon.events.TransferListener; /** * A resolution request allows you to either use an existing MavenProject, or a coordinate (gid:aid:version) @@ -41,6 +42,8 @@ public class ArtifactResolutionRequest // This should not be in here, it's a component private ArtifactMetadataSource metadataSource; + private TransferListener transferListener; + private boolean resolveRoot = true; public ArtifactResolutionRequest() @@ -171,8 +174,19 @@ public class ArtifactResolutionRequest public boolean isResolveRoot() { return resolveRoot; - } + } + public TransferListener getTransferListener() + { + return transferListener; + } + + public ArtifactResolutionRequest setTransferListener( TransferListener transferListener ) + { + this.transferListener = transferListener; + return this; + } + public String toString() { StringBuffer sb = new StringBuffer() diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java index 255c58ad90..14c5d5ce46 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java @@ -8,6 +8,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; +import org.apache.maven.wagon.events.TransferListener; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -62,7 +63,12 @@ public interface ArtifactResolver // USED BY REMOTE RESOURCES PLUGIN @Deprecated - void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepositor ) + void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) throws ArtifactResolutionException, ArtifactNotFoundException; + // USED BY REMOTE RESOURCES PLUGIN + @Deprecated + void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository, TransferListener downloadMonitor ) + throws ArtifactResolutionException, ArtifactNotFoundException; + } diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java index 4a423bf74e..89ed657983 100644 --- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java +++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java @@ -38,9 +38,10 @@ import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.artifact.transform.ArtifactTransformationManager; import org.apache.maven.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; +import org.apache.maven.wagon.events.TransferListener; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; -import org.codehaus.plexus.logging.AbstractLogEnabled; +import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.FileUtils; /** @@ -48,7 +49,6 @@ import org.codehaus.plexus.util.FileUtils; */ @Component(role = ArtifactResolver.class) public class DefaultArtifactResolver - extends AbstractLogEnabled implements ArtifactResolver { @@ -58,6 +58,9 @@ public class DefaultArtifactResolver // Components // ---------------------------------------------------------------------- + @Requirement + private Logger logger; + @Requirement private WagonManager wagonManager; @@ -87,19 +90,19 @@ public class DefaultArtifactResolver return online; } - public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) + public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository, TransferListener resolutionListener ) throws ArtifactResolutionException, ArtifactNotFoundException { - resolve( artifact, remoteRepositories, localRepository, false ); + resolve( artifact, remoteRepositories, localRepository, resolutionListener, false ); } - public void resolveAlways( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) + public void resolveAlways( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository, TransferListener downloadMonitor ) throws ArtifactResolutionException, ArtifactNotFoundException { - resolve( artifact, remoteRepositories, localRepository, true ); + resolve( artifact, remoteRepositories, localRepository, downloadMonitor, true ); } - private void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository, boolean force ) + private void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository, TransferListener downloadMonitor, boolean force ) throws ArtifactResolutionException, ArtifactNotFoundException { if ( artifact == null ) @@ -167,11 +170,11 @@ public class DefaultArtifactResolver if ( artifact.getRepository() != null ) { // the transformations discovered the artifact - so use it exclusively - wagonManager.getArtifact( artifact, artifact.getRepository(), force ); + wagonManager.getArtifact( artifact, artifact.getRepository(), downloadMonitor, force ); } else { - wagonManager.getArtifact( artifact, remoteRepositories, force ); + wagonManager.getArtifact( artifact, remoteRepositories, downloadMonitor, force ); } if ( !artifact.isResolved() && !destination.exists() ) @@ -350,12 +353,12 @@ public class DefaultArtifactResolver { listeners = new ArrayList(); - if ( getLogger().isDebugEnabled() ) + if ( logger.isDebugEnabled() ) { - listeners.add( new DebugResolutionListener( getLogger() ) ); + listeners.add( new DebugResolutionListener( logger ) ); } - listeners.add( new WarningResolutionListener( getLogger() ) ); + listeners.add( new WarningResolutionListener( logger ) ); } ArtifactResolutionResult result = new ArtifactResolutionResult(); @@ -407,7 +410,7 @@ public class DefaultArtifactResolver { try { - resolve( artifact, remoteRepositories, localRepository ); + resolve( artifact, remoteRepositories, localRepository, request.getTransferListener() ); } catch ( ArtifactNotFoundException anfe ) { @@ -428,4 +431,10 @@ public class DefaultArtifactResolver return result; } + + public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + resolve( artifact, remoteRepositories, localRepository, null ); + } } diff --git a/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java b/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java index 0071bc97e5..0cd255dfaa 100644 --- a/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java +++ b/maven-compat/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java @@ -67,7 +67,7 @@ public class DefaultWagonManagerTest { super.setUp(); - wagonManager = (DefaultWagonManager) lookup( WagonManager.ROLE ); + wagonManager = (DefaultWagonManager) lookup( WagonManager.class ); artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE ); } @@ -92,7 +92,7 @@ public class DefaultWagonManagerTest }; TransferListener listener = new TransferListener(); wagonManager.setDownloadMonitor(listener); - wagonManager.getArtifact( artifact, repos, false ); + wagonManager.getArtifact( artifact, repos, listener, false ); assertEquals(1, listener.events.size()); } diff --git a/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java b/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java deleted file mode 100644 index f9e27ab6cc..0000000000 --- a/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.java +++ /dev/null @@ -1,347 +0,0 @@ -package org.apache.maven.artifact.resolver; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.artifact.AbstractArtifactComponentTestCase; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; -import org.apache.maven.artifact.repository.DefaultArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.apache.maven.artifact.repository.metadata.Metadata; -import org.apache.maven.artifact.repository.metadata.Snapshot; -import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Versioning; -import org.codehaus.plexus.util.FileUtils; - -public class ArtifactUpdatePolicyTest - extends AbstractArtifactComponentTestCase -{ - - private static final String PATH = "org/apache/maven/o/0.0.1-SNAPSHOT/o-0.0.1-SNAPSHOT.jar"; - - private static final long TWO_SECONDS = 2 * 1000L; - - private static final long TWO_DAYS = 2 * 86400L * 1000L; - - private DefaultArtifactResolver artifactResolver; - - private List remoteRepositories; - - private WagonManager wagonManager; - - private TestTransferListener listener; - - private ArtifactRepository localRepository; - - private DefaultArtifactRepository remoteRepository; - - @Override - protected String component() - { - return "artifact-update-policy"; - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - artifactResolver = (DefaultArtifactResolver) lookup( ArtifactResolver.class ); - - remoteRepositories = remoteRepositories(); - remoteRepository = (DefaultArtifactRepository) remoteRepositories.get( 0 ); - remoteRepository.setProtocol( "testfile" ); - remoteRepository.getSnapshots().setChecksumPolicy( ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE ); - remoteRepository.getReleases().setChecksumPolicy( ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE ); - FileUtils.deleteDirectory( new File( remoteRepository.getBasedir() ) ); - - wagonManager = (WagonManager) lookup( WagonManager.ROLE ); - listener = new TestTransferListener(); - wagonManager.setDownloadMonitor( listener ); - - localRepository = localRepository(); - FileUtils.deleteDirectory( new File( localRepository.getBasedir() ) ); - } - - @Override - protected void tearDown() - throws Exception - { - super.tearDown(); - } - - private void assertTransfers( String[] expected ) - { - StringBuffer expectedSB = new StringBuffer(); - for ( String anExpected : expected ) - { - expectedSB.append( anExpected ).append( "\n" ); - } - - List actual = listener.getTransfers(); - StringBuffer actualSB = new StringBuffer(); - for ( String anActual : actual ) - { - actualSB.append( anActual ).append( "\n" ); - } - - assertEquals( expectedSB.toString(), actualSB.toString() ); - } - - private void deleteFromLocalRepository( Artifact o ) - { - File file = new File( localRepository.getBasedir(), localRepository.pathOf( o ) ); - file.delete(); - } - - private Artifact createLocalCopy( String artifactId, String version ) - throws Exception - { - Artifact a = createArtifact( artifactId, version ); - - createArtifact( a, localRepository ); - - SnapshotArtifactRepositoryMetadata snapshotMetadata = new SnapshotArtifactRepositoryMetadata( a ); - Metadata metadata = new Metadata(); - Versioning versioning = new Versioning(); - Snapshot snapshot = new Snapshot(); - snapshot.setLocalCopy( true ); - versioning.setSnapshot( snapshot ); - metadata.setVersioning( versioning ); - snapshotMetadata.setMetadata( metadata ); - a.addMetadata( snapshotMetadata ); - - return a; - } - - public void testForceButNoNewUpdates() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - createArtifact( a, localRepository ); - - artifactResolver.resolveAlways( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] { "getIfNewer " + PATH } ); - } - - public void testForceNewUpdate() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - createArtifact( a, localRepository ); - setLastModified( a, System.currentTimeMillis() - 2000L, localRepository ); - - artifactResolver.resolveAlways( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] { "getIfNewer " + PATH, "getTransfer " + PATH, "get " + PATH + ".sha1", - "get " + PATH + ".md5" } ); - } - - public void testForceUpdateMissing() - throws Exception - { - Artifact a = createArtifact( "o", "0.0.1-SNAPSHOT" ); - - try - { - artifactResolver.resolveAlways( a, remoteRepositories, localRepository ); - fail( "Expected missing artifact" ); - } - catch ( ArtifactNotFoundException expected ) - { - // expected - } - - try - { - artifactResolver.resolveAlways( a, remoteRepositories, localRepository ); - fail( "Expected missing artifact" ); - } - catch ( ArtifactNotFoundException expected ) - { - // expected - } - - assertTransfers( new String[] { "get " + PATH, "get " + PATH } ); - - } - - public void testSnapshotUpdate() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - createArtifact( a, localRepository ); - setLastModified( a, System.currentTimeMillis() - TWO_DAYS, localRepository ); - - artifactResolver.resolve( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] { "getIfNewer " + PATH, "getTransfer " + PATH, "get " + PATH + ".sha1", - "get " + PATH + ".md5" } ); - } - - public void testSnapshotNoUpdates() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - createArtifact( a, localRepository ); - long timestamp = System.currentTimeMillis() - TWO_DAYS; - setLastModified( a, timestamp, localRepository ); - setLastModified( a, timestamp, remoteRepository ); - - artifactResolver.resolve( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] { "getIfNewer " + PATH } ); - } - - public void testSnapshotPolicyCheck() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - createArtifact( a, localRepository ); - long timestamp = System.currentTimeMillis() - TWO_SECONDS; - setLastModified( a, timestamp, localRepository ); - setLastModified( a, timestamp, remoteRepository ); - - artifactResolver.resolve( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] {} ); - } - - public void testLocalCopy() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - a = createLocalCopy( a.getArtifactId(), a.getVersion() ); - long timestamp = System.currentTimeMillis() - TWO_DAYS; - setLastModified( a, timestamp, localRepository ); - - artifactResolver.resolve( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] {} ); - } - - public void testForceUpdateLocalCopy() - throws Exception - { - Artifact a = createRemoteArtifact( "o", "0.0.1-SNAPSHOT" ); - a = createLocalCopy( a.getArtifactId(), a.getVersion() ); - long timestamp = System.currentTimeMillis() - TWO_SECONDS; - setLastModified( a, timestamp, localRepository ); - - artifactResolver.resolveAlways( a, remoteRepositories, localRepository ); - - assertTransfers( new String[] { "getIfNewer " + PATH, "getTransfer " + PATH, "get " + PATH + ".sha1", - "get " + PATH + ".md5" } ); - } - - private void setLastModified( Artifact a, long timestamp, ArtifactRepository repository ) - { - File file = new File( repository.getBasedir(), repository.pathOf( a ) ); - file.setLastModified( timestamp ); - } - - public void testSnapshotUpdatePolicyForMissingArtifacts() - throws Exception - { - Artifact j = createArtifact( "o", "0.0.1-SNAPSHOT" ); - - try - { - artifactResolver.resolve( j, remoteRepositories, localRepository ); - fail( "Expected missing artifact" ); - } - catch ( ArtifactNotFoundException expected ) - { - // expected - } - - try - { - artifactResolver.resolve( j, remoteRepositories, localRepository ); - fail( "Expected missing artifact" ); - } - catch ( ArtifactNotFoundException expected ) - { - // expected - } - - assertTransfers( new String[] { "get org/apache/maven/o/0.0.1-SNAPSHOT/o-0.0.1-SNAPSHOT.jar" } ); - } - - public void testResolutionOfArtifactsDeletedFromLocalRepo() - throws Exception - { - Artifact j = createRemoteArtifact( "j", "0.0.1-SNAPSHOT" ); - - artifactResolver.resolve( j, remoteRepositories, localRepository() ); - - // sanity check - assertTrue( j.isResolved() ); - assertTrue( j.getFile().canRead() ); - - j.getFile().delete(); - - j = createArtifact( j.getArtifactId(), j.getVersion() ); - artifactResolver.resolve( j, remoteRepositories, localRepository() ); - - assertTrue( j.isResolved() ); - assertTrue( j.getFile().canRead() ); - } - - public void testMultipleRemoteRepositories() - throws Exception - { - ArtifactRepository remoteRepository1 = remoteRepository( "remote-repository1" ); - ArtifactRepository remoteRepository2 = remoteRepository( "remote-repository2" ); - ArrayList remoteRepositories = new ArrayList(); - remoteRepositories.add( remoteRepository1 ); - remoteRepositories.add( remoteRepository2 ); - - Artifact a = createArtifact( "a", "0.0.0-SNAPSHOT" ); - createArtifact( a, remoteRepository2 ); - - artifactResolver.resolve( a, remoteRepositories, localRepository ); - assertTrue( a.isResolved() ); - } - - private ArtifactRepository remoteRepository( String name ) - throws Exception - { - String path = "target/test-classes/repositories/" + component() + "/" + name; - - File f = new File( getBasedir(), path ); - - FileUtils.deleteDirectory( f ); - - ArtifactRepositoryLayout repoLayout = - (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - - return new DefaultArtifactRepository( name, "file://" + f.getPath(), repoLayout, - new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy() ); - } -} diff --git a/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java b/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java index ac172a69ed..e582d390e9 100644 --- a/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java +++ b/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java @@ -423,8 +423,6 @@ public class DefaultMavenExecutionRequestPopulator } else { - repositorySystem.setDownloadMonitor( request.getTransferListener() ); - repositorySystem.setOnline( true ); } } diff --git a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java index 546b8670ca..2f2900c388 100644 --- a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java +++ b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java @@ -252,7 +252,9 @@ public class DefaultMavenProjectBuilder pomArtifact.setFile( pomFile ); ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact( pomArtifact ).setArtifactDependencies( project.getDependencyArtifacts() ) - .setLocalRepository( configuration.getLocalRepository() ).setRemoteRepostories( project.getRemoteArtifactRepositories() ).setManagedVersionMap( project.getManagedVersionMap() ) + .setLocalRepository( configuration.getLocalRepository() ) + .setRemoteRepostories( project.getRemoteArtifactRepositories() ) + .setManagedVersionMap( project.getManagedVersionMap() ) .setMetadataSource( repositorySystem ); ArtifactResolutionResult result = repositorySystem.resolve( request ); diff --git a/maven-repository/src/main/java/org/apache/maven/repository/LegacyMavenRepositorySystem.java b/maven-repository/src/main/java/org/apache/maven/repository/LegacyMavenRepositorySystem.java index baed775a68..1cc5f83447 100644 --- a/maven-repository/src/main/java/org/apache/maven/repository/LegacyMavenRepositorySystem.java +++ b/maven-repository/src/main/java/org/apache/maven/repository/LegacyMavenRepositorySystem.java @@ -94,8 +94,6 @@ public class LegacyMavenRepositorySystem @Requirement private Logger logger; - private TransferListener downloadMonitor; - private Map proxies = new HashMap(); private Map authenticationInfoMap = new HashMap(); @@ -386,7 +384,7 @@ public class LegacyMavenRepositorySystem return url; } - public ArtifactRepository createRepository( String url, String repositoryId ) + private ArtifactRepository createRepository( String url, String repositoryId ) { // snapshots vs releases // offline = to turning the update policy off @@ -405,7 +403,7 @@ public class LegacyMavenRepositorySystem } public ArtifactResolutionResult resolve( ArtifactResolutionRequest request ) - { + { return artifactResolver.resolve( request ); } @@ -419,11 +417,6 @@ public class LegacyMavenRepositorySystem return artifactResolver.isOnline(); } - public void setDownloadMonitor( TransferListener downloadMonitor ) - { - this.downloadMonitor = downloadMonitor; - } - public void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts ) { ProxyInfo proxyInfo = new ProxyInfo(); diff --git a/maven-repository/src/main/java/org/apache/maven/repository/MavenRepositorySystem.java b/maven-repository/src/main/java/org/apache/maven/repository/MavenRepositorySystem.java index 9665390446..285ba83e17 100644 --- a/maven-repository/src/main/java/org/apache/maven/repository/MavenRepositorySystem.java +++ b/maven-repository/src/main/java/org/apache/maven/repository/MavenRepositorySystem.java @@ -73,10 +73,6 @@ public interface MavenRepositorySystem ArtifactRepository createLocalRepository( String url, String repositoryId ) throws IOException; - ArtifactRepository createRepository( String url, String repositoryId ); - - // Artifact resolution - //MetadataResolutionResult resolveMetadata( MetadataResolutionRequest request ); ArtifactResolutionResult resolve( ArtifactResolutionRequest request ); @@ -102,8 +98,6 @@ public interface MavenRepositorySystem boolean isOnline(); - void setDownloadMonitor( TransferListener downloadMonitor ); - void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts ); void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, String passphrase );