Author: jdcasey
Date: Fri Aug 28 00:02:35 2009
New Revision: 808684
URL: http://svn.apache.org/viewvc?rev=808684&view=rev
Log:
unit tests for the cumulative scope filter, and integration tests for the
default project dependencies resolver. Mocking the resolver got pretty ugly, so
I'm falling back to ITs for this for now, since they're easy to understand,
even if they are a little more prone to underlying problems in dependencies.
Added:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java
(with props)
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java
(with props)
Modified:
maven/shared/trunk/maven-artifact-resolver/pom.xml
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/CumulativeScopeArtifactFilter.java
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolver.java
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/CumlativeScopeArtifactFilterTest.java
Modified: maven/shared/trunk/maven-artifact-resolver/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/pom.xml?rev=808684&r1=808683&r2=808684&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-resolver/pom.xml (original)
+++ maven/shared/trunk/maven-artifact-resolver/pom.xml Fri Aug 28 00:02:35 2009
@@ -71,9 +71,32 @@
<artifactId>maven-core</artifactId>
<version>2.2.1</version>
</dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.3</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <includes combine.children="append">
+ <include>**/*Test.java</include>
+ </includes>
+ <excludes>
+ <exclude>**/testutil/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
@@ -99,4 +122,25 @@
</plugin>
</plugins>
</build>
+
+ <profiles>
+ <profile>
+ <id>run-its</id>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <includes combine.children="append">
+ <include>**/*IT.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ </profile>
+ </profiles>
</project>
Modified:
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/CumulativeScopeArtifactFilter.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/CumulativeScopeArtifactFilter.java?rev=808684&r1=808683&r2=808684&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/CumulativeScopeArtifactFilter.java
(original)
+++
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/CumulativeScopeArtifactFilter.java
Fri Aug 28 00:02:35 2009
@@ -20,7 +20,6 @@
*/
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
@@ -69,18 +68,18 @@
*/
void addScope( String scope )
{
- if ( DefaultArtifact.SCOPE_COMPILE.equals( scope ) )
+ if ( Artifact.SCOPE_COMPILE.equals( scope ) )
{
systemScope = true;
providedScope = true;
compileScope = true;
}
- else if ( DefaultArtifact.SCOPE_RUNTIME.equals( scope ) )
+ else if ( Artifact.SCOPE_RUNTIME.equals( scope ) )
{
compileScope = true;
runtimeScope = true;
}
- else if ( DefaultArtifact.SCOPE_TEST.equals( scope ) )
+ else if ( Artifact.SCOPE_TEST.equals( scope ) )
{
systemScope = true;
providedScope = true;
@@ -88,6 +87,10 @@
runtimeScope = true;
testScope = true;
}
+ else if ( Artifact.SCOPE_PROVIDED.equals( scope ) )
+ {
+ providedScope = true;
+ }
}
/**
Modified:
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolver.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolver.java?rev=808684&r1=808683&r2=808684&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolver.java
(original)
+++
maven/shared/trunk/maven-artifact-resolver/src/main/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolver.java
Fri Aug 28 00:02:35 2009
@@ -47,7 +47,7 @@
* @author jdcasey
*
* @see ProjectDependenciesResolver
- * @plexus.component
role="org.apache.maven.shared.artifact.resolver.ProjectDependenciesResolver"
role-hint="default"
+ * @plexus.component role="org.apache.maven.ProjectDependenciesResolver"
role-hint="default"
*/
public final class DefaultProjectDependenciesResolver
implements ProjectDependenciesResolver
@@ -67,6 +67,18 @@
* @plexus.requirement role-hint="maven"
*/
private ArtifactMetadataSource metadataSource;
+
+ // for plexus instantiation.
+ public DefaultProjectDependenciesResolver(){}
+
+ // for testing.
+ DefaultProjectDependenciesResolver( ArtifactResolver resolver,
ArtifactFactory artifactFactory,
+ ArtifactMetadataSource
metadataSource )
+ {
+ this.resolver = resolver;
+ this.artifactFactory = artifactFactory;
+ this.metadataSource = metadataSource;
+ }
/**
* {...@inheritdoc}
Modified:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/CumlativeScopeArtifactFilterTest.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/CumlativeScopeArtifactFilterTest.java?rev=808684&r1=808683&r2=808684&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/CumlativeScopeArtifactFilterTest.java
(original)
+++
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/CumlativeScopeArtifactFilterTest.java
Fri Aug 28 00:02:35 2009
@@ -19,15 +19,97 @@
* under the License.
*/
+import static junit.framework.Assert.assertEquals;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import org.apache.maven.artifact.Artifact;
import org.junit.Test;
public class CumlativeScopeArtifactFilterTest
{
-
+
@Test
public void testNothingEnabledWhenNoScopesAdded()
{
-
+ assertScopeInclusion( false, false, false, false );
+ }
+
+ @Test
+ public void testProvidedOnlyEnabledWhenProvidedScopeOnlyIsAdded()
+ {
+ assertScopeInclusion( false, false, false, true,
Artifact.SCOPE_PROVIDED );
+ }
+
+ @Test
+ public void testCompileAndProvidedEnabledWhenCompileScopeOnlyIsAdded()
+ {
+ assertScopeInclusion( true, false, false, true, Artifact.SCOPE_COMPILE
);
+ }
+
+ @Test
+ public void testCompileAndRuntimeEnabledWhenRuntimeScopeOnlyIsAdded()
+ {
+ assertScopeInclusion( true, false, true, false, Artifact.SCOPE_RUNTIME
);
+ }
+
+ @Test
+ public void
testCompileRuntimeProvidedAndTestEnabledWhenTestScopeOnlyIsAdded()
+ {
+ assertScopeInclusion( true, true, true, true, Artifact.SCOPE_TEST );
+ }
+
+ @Test
+ public void
testCompileRuntimeProvidedAndTestEnabledWhenTestAndCompileScopesAreAdded()
+ {
+ assertScopeInclusion( true, true, true, true, Artifact.SCOPE_TEST,
Artifact.SCOPE_COMPILE );
+ }
+
+ @Test
+ public void
testCompileRuntimeAndProvidedEnabledWhenRuntimeAndCompileScopeAreAdded()
+ {
+ assertScopeInclusion( true, false, true, true, Artifact.SCOPE_RUNTIME,
Artifact.SCOPE_COMPILE );
}
+ private void assertScopeInclusion( boolean compileIncluded, boolean
testIncluded, boolean runtimeIncluded,
+ boolean providedIncluded,
String...scopes )
+ {
+ CumulativeScopeArtifactFilter filter = new
CumulativeScopeArtifactFilter();
+ if ( scopes != null && scopes.length > 0 )
+ {
+ for ( String scope : scopes )
+ {
+ filter.addScope( scope );
+ }
+ }
+
+ Artifact compile = createMock( Artifact.class );
+ expect( compile.getScope() ).andReturn( Artifact.SCOPE_COMPILE
).anyTimes();
+
+ Artifact runtime = createMock( Artifact.class );
+ expect( runtime.getScope() ).andReturn( Artifact.SCOPE_RUNTIME
).anyTimes();
+
+ Artifact test = createMock( Artifact.class );
+ expect( test.getScope() ).andReturn( Artifact.SCOPE_TEST ).anyTimes();
+
+ Artifact provided = createMock( Artifact.class );
+ expect( provided.getScope() ).andReturn( Artifact.SCOPE_PROVIDED
).anyTimes();
+
+ replay( compile, runtime, test, provided );
+
+ assertEquals( "Compile scope should " + ( compileIncluded ? "" : "not
" ) + "be included.", compileIncluded,
+ filter.include( compile ) );
+
+ assertEquals( "Runtime scope should " + ( runtimeIncluded ? "" : "not
" ) + "be included.", runtimeIncluded,
+ filter.include( runtime ) );
+
+ assertEquals( "Test scope should " + ( testIncluded ? "" : "not " ) +
"be included.", testIncluded, filter.include( test ) );
+
+ assertEquals( "Provided scope should " + ( providedIncluded ? "" :
"not " ) + "be included.", providedIncluded,
+ filter.include( provided ) );
+
+ verify( compile, runtime, test, provided );
+ }
}
Added:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java?rev=808684&view=auto
==============================================================================
---
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java
(added)
+++
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java
Fri Aug 28 00:02:35 2009
@@ -0,0 +1,328 @@
+package org.apache.maven.shared.artifact.resolver;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static junit.framework.Assert.fail;
+
+import org.apache.maven.ProjectDependenciesResolver;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.artifact.resolver.testutil.ModelCreator;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.PlexusContainerException;
+import
org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
+import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+
+public class DefaultProjectDependenciesResolverIT
+{
+
+ private static PlexusContainer container;
+
+ private static ArtifactResolver artifactResolver;
+
+ private static ArtifactMetadataSource metadataSource;
+
+ private static ArtifactFactory artifactFactory;
+
+ private static MavenProjectBuilder projectBuilder;
+
+ private static DefaultProjectDependenciesResolver resolver;
+
+ private static MavenSession session;
+
+ private static File localRepoDir;
+
+ private static File pomsDir;
+
+ private static ProjectBuilderConfiguration pbConfig;
+
+ @Test
+ public void resolveSingleDependency_SingleProject_CompileScope()
+ throws ArtifactResolutionException, ArtifactNotFoundException,
IOException, ProjectBuildingException
+ {
+ String gid = "org.codehaus.plexus";
+ String aid = "plexus-utils";
+ String version = "1.5.15";
+
+ Model model = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version
).getModel();
+
+ MavenProject project = writeAndBuild( model,
"pom.1dep-1project-compile-scope.xml" );
+
+ Collection<String> scopes = Collections.singleton(
Artifact.SCOPE_COMPILE );
+
+ Set<Artifact> result = resolver.resolve( project, scopes, session );
+
+ assertSingleArtifact( result, gid, aid, version );
+ }
+
+ @Test
+ public void
resolveUsingDependencyManagementForTransitives_SingleProject_CompileScope()
+ throws ArtifactResolutionException, ArtifactNotFoundException,
IOException, ProjectBuildingException
+ {
+ String gid = "org.apache.maven";
+ String aid = "maven-project";
+ String version = "2.2.1";
+
+ String maid = "maven-model";
+ String mversion = "2.1.0";
+
+ Model model = new ModelCreator().withDefaultCoordinate()
+ .withDependency( gid, aid, version )
+ .withManagedDependency( gid, maid,
mversion )
+ .getModel();
+
+ MavenProject project = writeAndBuild( model,
"pom.managed-transitive-dep-1project-compile-scope.xml" );
+
+ Collection<String> scopes = Collections.singleton(
Artifact.SCOPE_COMPILE );
+
+ Set<Artifact> result = resolver.resolve( project, scopes, session );
+
+ assertNotNull( result );
+
+// System.out.println( "Got: " + result.size() + " results:" );
+// for ( Artifact artifact : result )
+// {
+// System.out.println( "\n- " + artifact.getId() );
+// }
+
+ assertArtifactPresent( result, gid, aid, version );
+ assertArtifactPresent( result, gid, maid, mversion );
+ }
+
+ @Test
+ public void
resolveUsingDependencyManagementIntermittently_TwoProjects_CompileScope_FirstWins()
+ throws ArtifactResolutionException, ArtifactNotFoundException,
IOException, ProjectBuildingException
+ {
+ String gid = "org.apache.maven";
+ String aid = "maven-project";
+ String version = "2.2.1";
+
+ String maid = "maven-model";
+ String mversion = "2.1.0";
+
+ Model model1 = new ModelCreator().withDefaultCoordinate()
+ .withDependency( gid, aid, version )
+ .withManagedDependency( gid, maid,
mversion )
+ .getModel();
+
+ MavenProject project1 = writeAndBuild( model1,
"pom.managed-transitive-dep-2proj-compile-scope-A.xml" );
+
+ Model model2 = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version
).getModel();
+ MavenProject project2 = writeAndBuild( model2,
"pom.managed-transitive-dep-2proj-compile-scope-B.xml" );
+
+ Set<MavenProject> projects = new LinkedHashSet<MavenProject>();
+ projects.add( project1 );
+ projects.add( project2 );
+
+ Collection<String> scopes = Collections.singleton(
Artifact.SCOPE_COMPILE );
+
+ Set<Artifact> result = resolver.resolve( projects, scopes, session );
+
+ assertNotNull( result );
+
+// System.out.println( "Got: " + result.size() + " results:" );
+// for ( Artifact artifact : result )
+// {
+// System.out.println( "\n- " + artifact.getId() );
+// }
+
+ assertArtifactPresent( result, gid, aid, version );
+ assertArtifactPresent( result, gid, maid, mversion );
+ }
+
+ private void assertArtifactPresent( Set<Artifact> result, String gid,
String aid, String version )
+ {
+ for ( Artifact artifact : result )
+ {
+ if ( gid.equals( artifact.getGroupId() ) && aid.equals(
artifact.getArtifactId() )
+ && version.equals( artifact.getVersion() ) )
+ {
+ return;
+ }
+ }
+
+ fail( "Did not find required artifact: " + gid + ":" + aid + ":" +
version + " in resolution result." );
+ }
+
+ @Test
+ public void resolveSingleDependency_TwoProjects_CompileScope()
+ throws ArtifactResolutionException, ArtifactNotFoundException,
IOException, ProjectBuildingException
+ {
+ String gid = "org.codehaus.plexus";
+ String aid = "plexus-utils";
+ String version = "1.5.15";
+
+ Model model1 = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version
).getModel();
+ MavenProject project1 = writeAndBuild( model1,
"pom.1dep-2proj-compile-scope-A.xml" );
+
+ Model model2 = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version
).getModel();
+ MavenProject project2 = writeAndBuild( model2,
"pom.1dep-2proj-compile-scope-B.xml" );
+
+ Set<MavenProject> projects = new LinkedHashSet<MavenProject>();
+ projects.add( project1 );
+ projects.add( project2 );
+
+ Collection<String> scopes = Collections.singleton(
Artifact.SCOPE_COMPILE );
+
+ Set<Artifact> result = resolver.resolve( projects, scopes, session );
+
+ assertSingleArtifact( result, gid, aid, version );
+ }
+
+ @Test
+ public void
resolveSingleDependency_TwoVersions_TwoProjects_CompileScope_FirstWins()
+ throws ArtifactResolutionException, ArtifactNotFoundException,
IOException, ProjectBuildingException
+ {
+ String gid = "org.codehaus.plexus";
+ String aid = "plexus-utils";
+ String version = "1.5.15";
+
+ Model model1 = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version
).getModel();
+ MavenProject project1 = writeAndBuild( model1,
"pom.1dep-2proj-compile-scope-A.xml" );
+
+ String version2 = "1.5.14";
+
+ Model model2 = new
ModelCreator().withDefaultCoordinate().withDependency( gid, aid, version2
).getModel();
+ MavenProject project2 = writeAndBuild( model2,
"pom.1dep-2proj-compile-scope-B.xml" );
+
+ Set<MavenProject> projects = new LinkedHashSet<MavenProject>();
+ projects.add( project1 );
+ projects.add( project2 );
+
+ Collection<String> scopes = Collections.singleton(
Artifact.SCOPE_COMPILE );
+
+ Set<Artifact> result = resolver.resolve( projects, scopes, session );
+
+ assertSingleArtifact( result, gid, aid, version );
+ }
+
+ private void assertSingleArtifact( Set<Artifact> result, String gid,
String aid, String version )
+ {
+ assertNotNull( result );
+ assertEquals( 1, result.size() );
+
+ Artifact a = result.iterator().next();
+ assertEquals( gid, a.getGroupId() );
+ assertEquals( aid, a.getArtifactId() );
+ assertEquals( version, a.getVersion() );
+
+ assertTrue( a.isResolved() );
+ assertTrue( a.getFile().exists() );
+ }
+
+ private MavenProject writeAndBuild( Model model, String filename )
+ throws IOException, ProjectBuildingException
+ {
+ File pomFile = new File( pomsDir, filename );
+
+ FileWriter writer = null;
+ try
+ {
+ writer = new FileWriter( pomFile );
+ new MavenXpp3Writer().write( writer, model );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+
+ return projectBuilder.build( pomFile, pbConfig );
+ }
+
+ @BeforeClass
+ public static void bootstrap()
+ throws PlexusContainerException, ComponentLookupException, IOException
+ {
+ container = new DefaultPlexusContainer();
+ container.initialize();
+ container.start();
+
+ artifactResolver = (ArtifactResolver) container.lookup(
ArtifactResolver.class.getName() );
+ metadataSource = (ArtifactMetadataSource) container.lookup(
ArtifactMetadataSource.class.getName(), "maven" );
+ artifactFactory = (ArtifactFactory) container.lookup(
ArtifactFactory.class.getName() );
+ projectBuilder = (MavenProjectBuilder) container.lookup(
MavenProjectBuilder.class.getName() );
+
+ resolver = (DefaultProjectDependenciesResolver) container.lookup(
ProjectDependenciesResolver.class.getName(), "default" );
+
+ localRepoDir = newTempDir( "local-repo" );
+ pomsDir = newTempDir( "poms" );
+
+ ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout)
container.lookup( ArtifactRepositoryLayout.class.getName(), "default" );
+
+ ArtifactRepository localRepo = new DefaultArtifactRepository( "local",
localRepoDir.getAbsolutePath(), layout );
+
+ session = new MavenSession( container, new Settings(), localRepo,
null, null, null, null, null, null );
+
+ pbConfig = new
DefaultProjectBuilderConfiguration().setLocalRepository( localRepo );
+ }
+
+ private static File newTempDir( String basename )
+ throws IOException
+ {
+ File dir = File.createTempFile( basename + ".", ".dir" );
+ dir.delete();
+ dir.mkdirs();
+
+ return dir;
+ }
+
+ @AfterClass
+ public static void shutdown()
+ {
+ try
+ {
+ container.release( resolver );
+ container.release( artifactResolver );
+ container.release( metadataSource );
+ container.release( artifactFactory );
+ container.release( projectBuilder );
+
+ container.dispose();
+ }
+ catch ( ComponentLifecycleException e )
+ {
+ }
+
+ try
+ {
+ FileUtils.forceDelete( localRepoDir );
+ FileUtils.forceDelete( pomsDir );
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+
+}
Propchange:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/DefaultProjectDependenciesResolverIT.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java?rev=808684&view=auto
==============================================================================
---
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java
(added)
+++
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java
Fri Aug 28 00:02:35 2009
@@ -0,0 +1,65 @@
+package org.apache.maven.shared.artifact.resolver.testutil;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Model;
+
+public class ModelCreator
+{
+
+ private Model model;
+
+ public ModelCreator()
+ {
+ model = new Model();
+ model.setModelVersion( "4.0.0" );
+ }
+
+ public ModelCreator withCoordinate( String groupId, String artifactId,
String version )
+ {
+ model.setGroupId( groupId );
+ model.setArtifactId( artifactId );
+ model.setVersion( version );
+ return this;
+ }
+
+ public ModelCreator withDependency( String groupId, String artifactId,
String version )
+ {
+ Dependency dep = new Dependency();
+ dep.setGroupId( groupId );
+ dep.setArtifactId( artifactId );
+ dep.setVersion( version );
+
+ model.addDependency( dep );
+ return this;
+ }
+
+ public Model getModel()
+ {
+ return model;
+ }
+
+ public ModelCreator withDefaultCoordinate()
+ {
+ return withCoordinate( "group.id", "artifact-id", "1" );
+ }
+
+ public ModelCreator withManagedDependency( String groupId, String
artifactId, String version )
+ {
+ DependencyManagement dm = model.getDependencyManagement();
+ if ( dm == null )
+ {
+ dm = new DependencyManagement();
+ model.setDependencyManagement( dm );
+ }
+
+ Dependency dep = new Dependency();
+ dep.setGroupId( groupId );
+ dep.setArtifactId( artifactId );
+ dep.setVersion( version );
+
+ dm.addDependency( dep );
+
+ return this;
+ }
+}
Propchange:
maven/shared/trunk/maven-artifact-resolver/src/test/java/org/apache/maven/shared/artifact/resolver/testutil/ModelCreator.java
------------------------------------------------------------------------------
svn:eol-style = native