You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/08/29 22:54:12 UTC
svn commit: r438207 - in
/maven/components/branches/maven-2.0.x/maven-project/src:
main/java/org/apache/maven/profiles/
main/java/org/apache/maven/project/artifact/
test/java/org/apache/maven/project/artifact/
Author: jdcasey
Date: Tue Aug 29 13:54:12 2006
New Revision: 438207
URL: http://svn.apache.org/viewvc?rev=438207&view=rev
Log:
Merging from 438189 on trunk, to fix exclusions from polluting other dependencies during dependency artifact creation, and to add a new embedder-compatible version of the DefaultProfileManager constructor which accepts a Settings instance.
Modified:
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java?rev=438207&r1=438206&r2=438207&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java Tue Aug 29 13:54:12 2006
@@ -66,18 +66,36 @@
*/
public DefaultProfileManager( PlexusContainer container, Properties props )
{
- this( container, (Settings)null );
- if (props != null) {
- systemProperties = props;
- }
+ this( container, (Settings)null, props );
}
+ /**
+ * @deprecated without passing in the system properties, the SystemPropertiesProfileActivator will not work correctly
+ * in embedded envirnments.
+ */
public DefaultProfileManager( PlexusContainer container, Settings settings )
{
this.container = container;
loadSettingsProfiles( settings );
+ }
+
+ /**
+ * the properties passed to the profile manager are the props that
+ * are passed to maven, possibly containing profile activator properties
+ *
+ */
+ public DefaultProfileManager( PlexusContainer container, Settings settings, Properties props )
+ {
+ this.container = container;
+
+ loadSettingsProfiles( settings );
+
+ if ( props != null )
+ {
+ systemProperties = props;
+ }
}
public Properties getSystemProperties() {
Modified: maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=438207&r1=438206&r2=438207&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Tue Aug 29 13:54:12 2006
@@ -48,7 +48,6 @@
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -337,7 +336,9 @@
artifact.setFile( new File( d.getSystemPath() ) );
}
- if ( artifact != null && ( dependencyFilter == null || dependencyFilter.include( artifact ) ) )
+ ArtifactFilter artifactFilter = dependencyFilter;
+
+ if ( artifact != null && ( artifactFilter == null || artifactFilter.include( artifact ) ) )
{
if ( d.getExclusions() != null && !d.getExclusions().isEmpty() )
{
@@ -350,20 +351,20 @@
ArtifactFilter newFilter = new ExcludesArtifactFilter( exclusions );
- if ( dependencyFilter != null )
+ if ( artifactFilter != null )
{
AndArtifactFilter filter = new AndArtifactFilter();
- filter.add( dependencyFilter );
+ filter.add( artifactFilter );
filter.add( newFilter );
- dependencyFilter = filter;
+ artifactFilter = filter;
}
else
{
- dependencyFilter = newFilter;
+ artifactFilter = newFilter;
}
}
- artifact.setDependencyFilter( dependencyFilter );
+ artifact.setDependencyFilter( artifactFilter );
if ( project != null )
{
Modified: maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java?rev=438207&r1=438206&r2=438207&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java Tue Aug 29 13:54:12 2006
@@ -3,18 +3,71 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Exclusion;
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.injection.ModelDefaultsInjector;
import org.codehaus.plexus.PlexusTestCase;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
public class MavenMetadataSourceTest
extends PlexusTestCase
{
+
+ public void testShouldNotCarryExclusionsOverFromDependencyToDependency()
+ throws Exception
+ {
+ Dependency dep1 = new Dependency();
+ dep1.setGroupId( "test" );
+ dep1.setArtifactId( "test-artifact" );
+ dep1.setVersion( "1" );
+ dep1.setType( "jar" );
+
+ Exclusion exc = new Exclusion();
+ exc.setGroupId( "test" );
+ exc.setArtifactId( "test-artifact3" );
+
+ dep1.addExclusion( exc );
+
+ Dependency dep2 = new Dependency();
+ dep2.setGroupId( "test" );
+ dep2.setArtifactId( "test-artifact2" );
+ dep2.setVersion( "1" );
+ dep2.setType( "jar" );
+
+ List deps = new ArrayList();
+ deps.add( dep1 );
+ deps.add( dep2 );
+
+ ArtifactFactory factory = ( ArtifactFactory ) lookup( ArtifactFactory.ROLE );
+
+ ArtifactFilter dependencyFilter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE );
+
+ MavenProject project = new MavenProject( new Model() );
+
+ Set result = MavenMetadataSource.createArtifacts( factory, deps, null, dependencyFilter, project );
+
+ for ( Iterator it = result.iterator(); it.hasNext(); )
+ {
+ Artifact artifact = ( Artifact ) it.next();
+
+ if ( "test-artifact2".equals( artifact.getArtifactId() ) )
+ {
+ ArtifactFilter filter = artifact.getDependencyFilter();
+
+ assertSame( dependencyFilter, filter );
+ }
+ }
+ }
public void testShouldUseCompileScopeIfDependencyScopeEmpty()
throws Exception