Author: bentmann
Date: Fri Aug 7 22:17:19 2009
New Revision: 802251
URL: http://svn.apache.org/viewvc?rev=802251&view=rev
Log:
o Fixed critical performance regression introduced in r801648. The relocation
is now grabbed alongside the direct dependencies when we get the resolution
group, these bits are stored in the same file and so we can as well process
them in one go.
Issue id: o
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
(original)
+++
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
Fri Aug 7 22:17:19 2009
@@ -122,6 +122,11 @@
return artifactMap;
}
+ public static Artifact copyArtifactSafe( Artifact artifact )
+ {
+ return ( artifact != null ) ? copyArtifact( artifact ) : null;
+ }
+
public static Artifact copyArtifact( Artifact artifact )
{
VersionRange range = artifact.getVersionRange();
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
(original)
+++
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
Fri Aug 7 22:17:19 2009
@@ -33,10 +33,10 @@
super( pomArtifact, artifacts, resolutionRepositories );
}
- public ResolutionGroup( Artifact pomArtifact, Set<Artifact> artifacts,
Map<String, Artifact> managedVersions,
- List<ArtifactRepository> resolutionRepositories )
+ public ResolutionGroup( Artifact pomArtifact, Artifact relocatedArtifact,
Set<Artifact> artifacts,
+ Map<String, Artifact> managedVersions,
List<ArtifactRepository> resolutionRepositories )
{
- super( pomArtifact, artifacts, managedVersions, resolutionRepositories
);
+ super( pomArtifact, relocatedArtifact, artifacts, managedVersions,
resolutionRepositories );
}
}
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
(original)
+++
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
Fri Aug 7 22:17:19 2009
@@ -72,11 +72,4 @@
List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository(
Artifact artifact, ArtifactRepository localRepository, ArtifactRepository
remoteRepository )
throws ArtifactMetadataRetrievalException;
- /**
- * Resolve all relocations in the POM for this artifact, and return the
new artifact coordinate.
- */
- Artifact retrieveRelocatedArtifact( Artifact artifact, ArtifactRepository
localRepository,
- List<ArtifactRepository>
remoteRepositories )
- throws ArtifactMetadataRetrievalException;
-
}
\ No newline at end of file
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
(original)
+++
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
Fri Aug 7 22:17:19 2009
@@ -35,18 +35,21 @@
private final Artifact pomArtifact;
+ private final Artifact relocatedArtifact;
+
private final Map<String, Artifact> managedVersions;
public ResolutionGroup( Artifact pomArtifact, Set<Artifact> artifacts,
List<ArtifactRepository> resolutionRepositories )
{
- this( pomArtifact, artifacts, null, resolutionRepositories );
+ this( pomArtifact, null, artifacts, null, resolutionRepositories );
}
- public ResolutionGroup( Artifact pomArtifact, Set<Artifact> artifacts,
Map<String, Artifact> managedVersions,
- List<ArtifactRepository> resolutionRepositories )
+ public ResolutionGroup( Artifact pomArtifact, Artifact relocatedArtifact,
Set<Artifact> artifacts,
+ Map<String, Artifact> managedVersions,
List<ArtifactRepository> resolutionRepositories )
{
this.pomArtifact = pomArtifact;
+ this.relocatedArtifact = relocatedArtifact;
this.artifacts = artifacts;
this.managedVersions = managedVersions;
this.resolutionRepositories = resolutionRepositories;
@@ -57,6 +60,11 @@
return pomArtifact;
}
+ public Artifact getRelocatedArtifact()
+ {
+ return relocatedArtifact;
+ }
+
public Set<Artifact> getArtifacts()
{
return artifacts;
Modified:
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
(original)
+++
maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
Fri Aug 7 22:17:19 2009
@@ -400,6 +400,8 @@
try
{
+ ResolutionGroup rGroup;
+
Object childKey;
do
{
@@ -481,9 +483,14 @@
fireEvent(
ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, child );
}
- Artifact relocated =
- source.retrieveRelocatedArtifact(
artifact, localRepository,
-
childRemoteRepositories );
+ rGroup = source.retrieve( artifact,
localRepository, childRemoteRepositories );
+
+ if ( rGroup == null )
+ {
+ break;
+ }
+
+ Artifact relocated =
rGroup.getRelocatedArtifact();
if ( relocated != null && !artifact.equals(
relocated ) )
{
relocated.setDependencyFilter(
artifact.getDependencyFilter() );
@@ -504,8 +511,6 @@
continue;
}
- ResolutionGroup rGroup = source.retrieve(
artifact, localRepository, childRemoteRepositories );
-
// TODO might be better to have source.retrieve()
throw a specific exception for this
// situation
// and catch here rather than have it return null
Modified:
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java
(original)
+++
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java
Fri Aug 7 22:17:19 2009
@@ -57,14 +57,6 @@
return Collections.<ArtifactVersion>singletonList( new
DefaultArtifactVersion( "10.1.3" ) );
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
- ArtifactRepository
localRepository,
- List<ArtifactRepository>
remoteRepositories )
- throws ArtifactMetadataRetrievalException
- {
- return artifact;
- }
-
public ResolutionGroup retrieve( MetadataResolutionRequest request )
throws ArtifactMetadataRetrievalException
{
Modified:
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java
(original)
+++
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java
Fri Aug 7 22:17:19 2009
@@ -69,12 +69,6 @@
throw new UnsupportedOperationException( "Cannot get available
versions in this test case" );
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories
)
- throws ArtifactMetadataRetrievalException
- {
- return artifact;
- }
-
public ResolutionGroup retrieve( MetadataResolutionRequest request )
throws ArtifactMetadataRetrievalException
{
Modified:
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
(original)
+++
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
Fri Aug 7 22:17:19 2009
@@ -217,14 +217,6 @@
throw new UnsupportedOperationException( "Cannot get available
versions in this test case" );
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
- ArtifactRepository
localRepository,
-
List<ArtifactRepository> remoteRepositories )
- throws ArtifactMetadataRetrievalException
- {
- return artifact;
- }
-
public ResolutionGroup retrieve( MetadataResolutionRequest request
)
throws ArtifactMetadataRetrievalException
{
Modified:
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java
(original)
+++
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java
Fri Aug 7 22:17:19 2009
@@ -969,14 +969,6 @@
return artifactVersions;
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
- ArtifactRepository
localRepository,
- List<ArtifactRepository>
remoteRepositories )
- throws ArtifactMetadataRetrievalException
- {
- return artifact;
- }
-
public ResolutionGroup retrieve( MetadataResolutionRequest request )
throws ArtifactMetadataRetrievalException
{
Modified:
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java
(original)
+++
maven/components/trunk/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java
Fri Aug 7 22:17:19 2009
@@ -72,12 +72,6 @@
throw new UnsupportedOperationException( "Cannot get available
versions in this test case" );
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories
)
- throws ArtifactMetadataRetrievalException
- {
- return artifact;
- }
-
public ResolutionGroup retrieve( MetadataResolutionRequest request )
throws ArtifactMetadataRetrievalException
{
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
Fri Aug 7 22:17:19 2009
@@ -126,6 +126,7 @@
public class CacheRecord
{
private Artifact pomArtifact;
+ private Artifact relocatedArtifact;
private List<Artifact> artifacts;
private Map<String, Artifact> managedVersions;
private List<ArtifactRepository> remoteRepositories;
@@ -133,9 +134,11 @@
private long length;
private long timestamp;
- CacheRecord(Artifact pomArtifact, Set<Artifact> artifacts, Map<String,
Artifact> managedVersions, List<ArtifactRepository> remoteRepositories)
+ CacheRecord( Artifact pomArtifact, Artifact relocatedArtifact,
Set<Artifact> artifacts,
+ Map<String, Artifact> managedVersions,
List<ArtifactRepository> remoteRepositories )
{
this.pomArtifact = ArtifactUtils.copyArtifact( pomArtifact );
+ this.relocatedArtifact = ArtifactUtils.copyArtifactSafe(
relocatedArtifact );
this.artifacts = ArtifactUtils.copyArtifacts( artifacts, new
ArrayList<Artifact>() );
this.remoteRepositories = new ArrayList<ArtifactRepository>(
remoteRepositories );
@@ -158,12 +161,17 @@
this.timestamp = -1;
}
}
-
+
public Artifact getArtifact()
{
return pomArtifact;
}
+ public Artifact getRelocatedArtifact()
+ {
+ return relocatedArtifact;
+ }
+
public List<Artifact> getArtifacts()
{
return artifacts;
@@ -203,6 +211,7 @@
if ( cacheRecord != null && !cacheRecord.isStale() )
{
Artifact pomArtifact = ArtifactUtils.copyArtifact(
cacheRecord.getArtifact() );
+ Artifact relocatedArtifact = ArtifactUtils.copyArtifactSafe(
cacheRecord.getRelocatedArtifact() );
Set<Artifact> artifacts =
ArtifactUtils.copyArtifacts( cacheRecord.getArtifacts(), new
LinkedHashSet<Artifact>() );
Map<String, Artifact> managedVersions =
cacheRecord.getManagedVersions();
@@ -210,7 +219,8 @@
{
managedVersions = ArtifactUtils.copyArtifacts(
managedVersions, new LinkedHashMap<String, Artifact>() );
}
- return new ResolutionGroup( pomArtifact, artifacts,
managedVersions, cacheRecord.getRemoteRepositories() );
+ return new ResolutionGroup( pomArtifact, relocatedArtifact,
artifacts, managedVersions,
+ cacheRecord.getRemoteRepositories() );
}
cache.remove( cacheKey );
@@ -223,8 +233,8 @@
{
CacheKey cacheKey = new CacheKey( artifact, resolveManagedVersions,
localRepository, remoteRepositories );
CacheRecord cacheRecord =
- new CacheRecord( result.getPomArtifact(), result.getArtifacts(),
result.getManagedVersions(),
- result.getResolutionRepositories() );
+ new CacheRecord( result.getPomArtifact(),
result.getRelocatedArtifact(), result.getArtifacts(),
+ result.getManagedVersions(),
result.getResolutionRepositories() );
cache.put( cacheKey, cacheRecord );
}
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=802251&r1=802250&r2=802251&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Fri Aug 7 22:17:19 2009
@@ -26,6 +26,7 @@
import java.util.Set;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -127,6 +128,8 @@
Artifact pomArtifact;
+ Artifact relocatedArtifact = null;
+
//TODO: Not even sure this is really required as the project will be
cached in the builder, we'll see this
// is currently the biggest hotspot
if ( artifact instanceof ArtifactWithDependencies )
@@ -157,6 +160,8 @@
}
else
{
+ relocatedArtifact = rel.relocatedArtifact;
+
dependencies = rel.project.getDependencies();
DependencyManagement depMngt =
rel.project.getDependencyManagement();
@@ -195,7 +200,8 @@
}
}
- ResolutionGroup result = new ResolutionGroup( pomArtifact, artifacts,
managedVersions, remoteRepositories );
+ ResolutionGroup result =
+ new ResolutionGroup( pomArtifact, relocatedArtifact, artifacts,
managedVersions, remoteRepositories );
cache.put( artifact, resolveManagedVersions, localRepository,
remoteRepositories, result );
@@ -410,63 +416,6 @@
return projectBuilder;
}
- public Artifact retrieveRelocatedArtifact( Artifact artifact,
ArtifactRepository localRepository,
- List<ArtifactRepository>
remoteRepositories )
- throws ArtifactMetadataRetrievalException
- {
-
- ProjectRelocation rel = retrieveRelocatedProject( artifact,
localRepository, remoteRepositories );
-
- if ( rel == null )
- {
- return artifact;
- }
-
- MavenProject project = rel.project;
- if ( project == null || getRelocationKey( artifact ).equals(
getRelocationKey( project.getArtifact() ) ) )
- {
- return artifact;
- }
-
- // NOTE: Using artifact information here, since some POMs are deployed
- // to central with one version in the filename, but another in the
<version> string!
- // Case in point: org.apache.ws.commons:XmlSchema:1.1:pom.
- //
- // Since relocation triggers a reconfiguration of the artifact's
information
- // in retrieveRelocatedProject(..), this is safe to do.
- Artifact result = null;
- if ( artifact.getClassifier() != null )
- {
- result =
- repositorySystem.createArtifactWithClassifier(
artifact.getGroupId(), artifact.getArtifactId(),
-
artifact.getVersion(), artifact.getType(),
-
artifact.getClassifier() );
- }
- else
- {
- result =
- repositorySystem.createArtifact( artifact.getGroupId(),
artifact.getArtifactId(),
- artifact.getVersion(),
artifact.getScope(), artifact.getType() );
- }
-
- result.setResolved( artifact.isResolved() );
- result.setFile( artifact.getFile() );
-
- result.setScope( artifact.getScope() );
- result.setArtifactHandler( artifact.getArtifactHandler() );
- result.setDependencyFilter( artifact.getDependencyFilter() );
- result.setDependencyTrail( artifact.getDependencyTrail() );
- result.setOptional( artifact.isOptional() );
- result.setRelease( artifact.isRelease() );
-
- return result;
- }
-
- private String getRelocationKey( Artifact artifact )
- {
- return artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' +
artifact.getVersion();
- }
-
private ProjectRelocation retrieveRelocatedProject( Artifact artifact,
ArtifactRepository localRepository,
List<ArtifactRepository> remoteRepositories )
throws ArtifactMetadataRetrievalException
@@ -474,20 +423,21 @@
MavenProject project = null;
Artifact pomArtifact;
+ Artifact relocatedArtifact = artifact;
boolean done = false;
do
{
- // TODO: can we just modify the original?
pomArtifact =
- repositorySystem.createProjectArtifact( artifact.getGroupId(),
artifact.getArtifactId(),
- artifact.getVersion(),
artifact.getScope() );
+ repositorySystem.createProjectArtifact(
relocatedArtifact.getGroupId(),
+
relocatedArtifact.getArtifactId(),
+
relocatedArtifact.getVersion(), relocatedArtifact.getScope() );
- if ( "pom".equals( artifact.getType() ) )
+ if ( "pom".equals( relocatedArtifact.getType() ) )
{
- pomArtifact.setFile( artifact.getFile() );
+ pomArtifact.setFile( relocatedArtifact.getFile() );
}
- if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
+ if ( Artifact.SCOPE_SYSTEM.equals( relocatedArtifact.getScope() ) )
{
done = true;
}
@@ -495,7 +445,6 @@
{
try
{
-
ProjectBuildingRequest configuration = new
DefaultProjectBuildingRequest();
configuration.setLocalRepository( localRepository );
configuration.setRemoteRepositories( remoteRepositories );
@@ -520,31 +469,36 @@
{
relocation = distMgmt.getRelocation();
- artifact.setDownloadUrl( distMgmt.getDownloadUrl() );
+ relocatedArtifact.setDownloadUrl(
distMgmt.getDownloadUrl() );
pomArtifact.setDownloadUrl( distMgmt.getDownloadUrl()
);
}
if ( relocation != null )
{
+ if ( relocatedArtifact == artifact )
+ {
+ relocatedArtifact = ArtifactUtils.copyArtifact(
artifact );
+ }
+
if ( relocation.getGroupId() != null )
{
- artifact.setGroupId( relocation.getGroupId() );
+ relocatedArtifact.setGroupId(
relocation.getGroupId() );
project.setGroupId( relocation.getGroupId() );
}
if ( relocation.getArtifactId() != null )
{
- artifact.setArtifactId( relocation.getArtifactId()
);
+ relocatedArtifact.setArtifactId(
relocation.getArtifactId() );
project.setArtifactId( relocation.getArtifactId()
);
}
if ( relocation.getVersion() != null )
{
// note: see MNG-3454. This causes a problem, but
fixing it may break more.
- artifact.setVersionRange(
VersionRange.createFromVersion( relocation.getVersion() ) );
+ relocatedArtifact.setVersionRange(
VersionRange.createFromVersion( relocation.getVersion() ) );
project.setVersion( relocation.getVersion() );
}
if ( artifact.getDependencyFilter() != null
- && !artifact.getDependencyFilter().include(
artifact ) )
+ && !artifact.getDependencyFilter().include(
relocatedArtifact ) )
{
return null;
}
@@ -555,14 +509,14 @@
List<ArtifactVersion> available =
artifact.getAvailableVersions();
if ( available != null && !available.isEmpty() )
{
- artifact.setAvailableVersions(
retrieveAvailableVersions( artifact, localRepository,
-
remoteRepositories ) );
-
+ available =
+ retrieveAvailableVersions( relocatedArtifact,
localRepository, remoteRepositories );
+ relocatedArtifact.setAvailableVersions( available
);
}
String message =
- "\n This artifact has been relocated to " +
artifact.getGroupId() + ":"
- + artifact.getArtifactId() + ":" +
artifact.getVersion() + ".\n";
+ "\n This artifact has been relocated to " +
relocatedArtifact.getGroupId() + ":"
+ + relocatedArtifact.getArtifactId() + ":" +
relocatedArtifact.getVersion() + ".\n";
if ( relocation.getMessage() != null )
{
@@ -596,6 +550,7 @@
ProjectRelocation rel = new ProjectRelocation();
rel.project = project;
rel.pomArtifact = pomArtifact;
+ rel.relocatedArtifact = ( relocatedArtifact == artifact ) ? null :
relocatedArtifact;
return rel;
}
@@ -605,6 +560,8 @@
private MavenProject project;
private Artifact pomArtifact;
+
+ private Artifact relocatedArtifact;
}
}