You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2011/07/27 12:48:35 UTC
svn commit: r1151424 -
/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
Author: bentmann
Date: Wed Jul 27 10:48:35 2011
New Revision: 1151424
URL: http://svn.apache.org/viewvc?rev=1151424&view=rev
Log:
[MNG-5135] Regression: in some cases aggregator mojo is unable to resolve dependencies with custom packaging
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java?rev=1151424&r1=1151423&r2=1151424&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java Wed Jul 27 10:48:35 2011
@@ -93,42 +93,56 @@ public class LifecycleDependencyResolver
boolean aggregating, Set<Artifact> projectArtifacts )
throws LifecycleExecutionException
{
- if ( project.getDependencyArtifacts() == null )
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try
{
- try
+ ClassLoader projectRealm = project.getClassRealm();
+ if ( projectRealm != null && projectRealm != tccl )
{
- project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) );
+ Thread.currentThread().setContextClassLoader( projectRealm );
}
- catch ( InvalidDependencyVersionException e )
+
+ if ( project.getDependencyArtifacts() == null )
{
- throw new LifecycleExecutionException( e );
+ try
+ {
+ project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) );
+ }
+ catch ( InvalidDependencyVersionException e )
+ {
+ throw new LifecycleExecutionException( e );
+ }
}
- }
- Set<Artifact> artifacts =
- getDependencies( project, scopesToCollect, scopesToResolve, session, aggregating, projectArtifacts );
+ Set<Artifact> artifacts =
+ getDependencies( project, scopesToCollect, scopesToResolve, session, aggregating, projectArtifacts );
- project.setResolvedArtifacts( artifacts );
+ project.setResolvedArtifacts( artifacts );
- Map<String, Artifact> map = new HashMap<String, Artifact>();
- for ( Artifact artifact : artifacts )
- {
- map.put( artifact.getDependencyConflictId(), artifact );
- }
- for ( Artifact artifact : project.getDependencyArtifacts() )
- {
- if ( artifact.getFile() == null )
+ Map<String, Artifact> map = new HashMap<String, Artifact>();
+ for ( Artifact artifact : artifacts )
{
- Artifact resolved = map.get( artifact.getDependencyConflictId() );
- if ( resolved != null )
+ map.put( artifact.getDependencyConflictId(), artifact );
+ }
+ for ( Artifact artifact : project.getDependencyArtifacts() )
+ {
+ if ( artifact.getFile() == null )
{
- artifact.setFile( resolved.getFile() );
- artifact.setDependencyTrail( resolved.getDependencyTrail() );
- artifact.setResolvedVersion( resolved.getVersion() );
- artifact.setResolved( true );
+ Artifact resolved = map.get( artifact.getDependencyConflictId() );
+ if ( resolved != null )
+ {
+ artifact.setFile( resolved.getFile() );
+ artifact.setDependencyTrail( resolved.getDependencyTrail() );
+ artifact.setResolvedVersion( resolved.getVersion() );
+ artifact.setResolved( true );
+ }
}
}
}
+ finally
+ {
+ Thread.currentThread().setContextClassLoader( tccl );
+ }
}
private Set<Artifact> getDependencies( MavenProject project, Collection<String> scopesToCollect,