Author: brianf Date: Wed Oct 4 20:06:36 2006 New Revision: 453098 URL: http://svn.apache.org/viewvc?view=rev&rev=453098 Log: more unit tests
Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactRepository.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactResolver.java Removed: maven/plugins/trunk/maven-dependency-plugin/pom-it.xml maven/plugins/trunk/maven-dependency-plugin/src/it/ Modified: maven/plugins/trunk/maven-dependency-plugin/ (props changed) maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolveDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ArtifactTranslator.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/DependencyTestUtils.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java Propchange: maven/plugins/trunk/maven-dependency-plugin/ ------------------------------------------------------------------------------ --- svn:ignore (original) +++ svn:ignore Wed Oct 4 20:06:36 2006 @@ -1 +1,3 @@ target +.classpath +.project Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java Wed Oct 4 20:06:36 2006 @@ -34,26 +34,31 @@ /** * @author brianf - * + * */ public abstract class AbstractDependencyFilterMojo extends AbstractDependencyMojo { /** * If we should exclude transitive dependencies + * * @parameter expression="${excludeTransitive}" default-value="false" */ protected boolean excludeTransitive; /** - * Comma Separated list of Types to include. Empty String indicates include everything (default). + * Comma Separated list of Types to include. Empty String indicates include + * everything (default). + * * @parameter expression="${includeTypes}" default-value="" * @optional */ protected String includeTypes; /** - * Comma Separated list of Types to exclude. Empty String indicates don't exclude anything (default). Ignored if includeTypes is used. + * Comma Separated list of Types to exclude. Empty String indicates don't + * exclude anything (default). Ignored if includeTypes is used. + * * @parameter expression="${excludeTypes}" default-value="" * @optional */ @@ -61,6 +66,7 @@ /** * Scope to include. An Empty string indicates all scopes (default). + * * @parameter expression="${includeScope}" default-value="" * @required */ @@ -68,6 +74,7 @@ /** * Scope to exclude. An Empty string indicates no scopes (default). + * * @parameter expression="${excludeScope}" default-value="" * @required */ @@ -75,82 +82,92 @@ /** * Specify classifier to look for. Example: sources + * * @parameter expression="${classifier}" default-value="" */ protected String classifier; /** - * Specify type to look for when constructing artifact based on classifier. Example: java-source,jar,war + * Specify type to look for when constructing artifact based on classifier. + * Example: java-source,jar,war + * * @parameter expression="${type}" default-value="java-source" */ protected String type; /** * Directory to store flag files - * @parameter expression="${markersDirectory}" default-value="${project.build.directory}/dependency-maven-plugin-markers" + * + * @parameter expression="${markersDirectory}" + * default-value="${project.build.directory}/dependency-maven-plugin-markers" * @required */ protected File markersDirectory; /** * Overwrite release artifacts + * * @parameter expression="${overWriteReleases}" default-value="false" */ protected boolean overWriteReleases; /** * Overwrite snapshot artifacts + * * @parameter expression="${overWriteSnapshots}" default-value="false" */ protected boolean overWriteSnapshots; /** * Overwrite snapshot artifacts + * * @parameter expression="${overWriteIfNewer}" default-value="true" */ protected boolean overWriteIfNewer; /** * Output absolute filename for resolved artifacts + * * @parameter expression="${outputArtifactFilename}" default-value="false" */ protected boolean outputArtifactFilename; /** * Retrieves dependencies, either direct only or all including transitive. - * + * * @return A HashSet of artifacts - * @throws MojoExecutionException if an error occured. + * @throws MojoExecutionException + * if an error occured. */ - protected Set getDependencies() + protected Set getDependencies(boolean stopOnFailure) throws MojoExecutionException { - DependencyStatusSets status = getDependencySets(); + DependencyStatusSets status = getDependencySets(stopOnFailure); return status.getResolvedDependencies(); } - protected DependencyStatusSets getDependencySets() + protected DependencyStatusSets getDependencySets(boolean stopOnFailure) throws MojoExecutionException { - //add filters in well known order, least specific to most specific + // add filters in well known order, least specific to most specific FilterArtifacts filter = new FilterArtifacts(); - + filter.addFilter( new TransitivityFilter( project.getDependencyArtifacts(), this.excludeTransitive ) ); filter.addFilter( new ScopeFilter( this.includeScope, this.excludeScope ) ); filter.addFilter( new TypeFilter( this.includeTypes, this.excludeTypes ) ); - //start with all artifacts. + // start with all artifacts. Set artifacts = project.getArtifacts(); - //perform filtering + // perform filtering artifacts = filter.filter( artifacts, getLog() ); - //transform artifacts if classifier is set + // transform artifacts if classifier is set DependencyStatusSets status = null; if ( StringUtils.isNotEmpty( classifier ) ) { - status = getClassifierTranslatedDependencies( artifacts, false ); + status = getClassifierTranslatedDependencies( artifacts, stopOnFailure ); } else { @@ -167,8 +184,9 @@ Set resolvedArtifacts = artifacts; DependencyStatusSets status = new DependencyStatusSets(); - //possibly translate artifacts into a new set of artifacts based on the classifier and type - //if this did something, we need to resolve the new artifacts + // possibly translate artifacts into a new set of artifacts based on the + // classifier and type + // if this did something, we need to resolve the new artifacts if ( StringUtils.isNotEmpty( classifier ) ) { ArtifactTranslator translator = new ClassifierTypeTranslator( this.classifier, this.type, this.factory ); @@ -176,20 +194,20 @@ status = filterMarkedDependencies( artifacts ); - //the unskipped artifacts are in the resolved set. + // the unskipped artifacts are in the resolved set. artifacts = status.getResolvedDependencies(); - //resolve the rest of the artifacts + // resolve the rest of the artifacts ArtifactsResolver artifactsResolver = new DefaultArtifactsResolver( this.resolver, this.local, this.remoteRepos, stopOnFailure ); resolvedArtifacts = artifactsResolver.resolve( artifacts, getLog() ); - //calculate the artifacts not resolved. + // calculate the artifacts not resolved. unResolvedArtifacts.addAll( artifacts ); unResolvedArtifacts.removeAll( resolvedArtifacts ); } - //return a bean of all 3 sets. + // return a bean of all 3 sets. status.setResolvedDependencies( resolvedArtifacts ); status.setUnResolvedDependencies( unResolvedArtifacts ); @@ -199,7 +217,7 @@ private DependencyStatusSets filterMarkedDependencies( Set artifacts ) throws MojoExecutionException { - //remove files that have markers already + // remove files that have markers already FilterArtifacts filter = new FilterArtifacts(); filter.clearFilters(); filter.addFilter( new MarkerFileFilter( this.overWriteReleases, this.overWriteSnapshots, this.overWriteIfNewer, @@ -207,7 +225,7 @@ Set unMarkedArtifacts = filter.filter( artifacts, getLog() ); - //calculate the skipped artifacts + // calculate the skipped artifacts Set skippedArtifacts = new HashSet(); skippedArtifacts.addAll( artifacts ); skippedArtifacts.removeAll( unMarkedArtifacts ); @@ -215,5 +233,5 @@ return new DependencyStatusSets( unMarkedArtifacts, null, skippedArtifacts ); } - //TODO: Set marker files. + // TODO: Set marker files. } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java Wed Oct 4 20:06:36 2006 @@ -18,20 +18,21 @@ import java.util.List; import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.dependency.utils.SilentLog; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; -import org.apache.maven.plugin.dependency.utils.SilentLog; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** * @author brianf - * + * */ public abstract class AbstractDependencyMojo extends AbstractMojo { /** * Used to look up Artifacts in the remote repository. + * * @parameter expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}" * @required * @readonly @@ -40,6 +41,7 @@ /** * Used to look up Artifacts in the remote repository. + * * @parameter expression="${component.org.apache.maven.artifact.resolver.ArtifactResolver}" * @required * @readonly @@ -48,6 +50,7 @@ /** * Location of the local repository. + * * @parameter expression="${localRepository}" * @readonly * @required @@ -56,6 +59,7 @@ /** * List of Remote Repositories used by the resolver + * * @parameter expression="${project.remoteArtifactRepositories}" * @readonly * @required @@ -64,15 +68,16 @@ /** * To look up Archiver/UnArchiver implementations - * + * * @parameter expression="${component.org.codehaus.plexus.archiver.manager.ArchiverManager}" * @required * @readonly */ protected ArchiverManager archiverManager; - + /** * POM + * * @parameter expression="${project}" * @readonly * @required @@ -81,18 +86,20 @@ /** * Contains the full list of projects in the reactor. + * * @parameter expression="${reactorProjects}" * @required * @readonly */ protected List reactorProjects; - + /** * If the plugin should be silent. + * * @parameter expression="${silent}" default-value="false" */ protected boolean silent; - + private Log log; /** @@ -100,7 +107,7 @@ */ public Log getLog() { - if (silent) + if ( silent ) { log = new SilentLog(); } @@ -108,7 +115,7 @@ { log = super.getLog(); } - + return this.log; } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java Wed Oct 4 20:06:36 2006 @@ -59,7 +59,7 @@ public void execute() throws MojoExecutionException { - Set artifacts = getDependencies(); + Set artifacts = getDependencies(true); for ( Iterator i = artifacts.iterator(); i.hasNext(); ) { Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java Wed Oct 4 20:06:36 2006 @@ -53,7 +53,7 @@ public void execute() throws MojoExecutionException { - Set artifacts = getDependencies(); + Set artifacts = getDependencies(true); for ( Iterator i = artifacts.iterator(); i.hasNext(); ) { Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolveDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolveDependenciesMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolveDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolveDependenciesMojo.java Wed Oct 4 20:06:36 2006 @@ -49,7 +49,7 @@ throws MojoExecutionException { // get sets of dependencies - results = this.getDependencySets(); + results = this.getDependencySets(false); results.logStatus( getLog(), outputArtifactFilename ); } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java Wed Oct 4 20:06:36 2006 @@ -62,7 +62,7 @@ FileUtils.copyFile( artifact, destFile ); result = true; } - catch ( IOException e ) + catch ( Exception e ) { throw new MojoExecutionException( "Error copying artifact from " + artifact + " to " + destFile, e ); } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ArtifactTranslator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ArtifactTranslator.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ArtifactTranslator.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ArtifactTranslator.java Wed Oct 4 20:06:36 2006 @@ -24,9 +24,9 @@ /** * @author brianf - * + * */ public interface ArtifactTranslator { - public Set translate(Set artifacts, Log log); + public Set translate( Set artifacts, Log log ); } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java Wed Oct 4 20:06:36 2006 @@ -64,10 +64,11 @@ { Artifact artifact = (Artifact) i.next(); - //this translator must pass both type and classifier here so we will use the - //base artifact value if null comes in + // this translator must pass both type and classifier here so we + // will use the + // base artifact value if null comes in String useType = null; - if ( StringUtils.isNotEmpty(this.type) ) + if ( StringUtils.isNotEmpty( this.type ) ) { useType = this.type; } @@ -77,7 +78,7 @@ } String useClassifier = null; - if ( StringUtils.isNotEmpty(this.classifier) ) + if ( StringUtils.isNotEmpty( this.classifier ) ) { useClassifier = this.classifier; } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java Wed Oct 4 20:06:36 2006 @@ -26,10 +26,8 @@ { // required for mojo lookups to work super.setUp(); - // pick random output location - Random a = new Random(); testDir = new File( getBasedir(), "target" + File.separatorChar + "unit-tests" + File.separatorChar - + testDirStr + a.nextLong() + File.separatorChar ); + + testDirStr + File.separatorChar ); testDir.delete(); assertFalse( testDir.exists() ); Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java Wed Oct 4 20:06:36 2006 @@ -1,14 +1,27 @@ package org.apache.maven.plugin.dependency; import java.io.File; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.factory.DefaultArtifactFactory; +import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; +import org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; +import org.apache.maven.artifact.resolver.ArtifactNotFoundException; import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.dependency.stubs.StubArtifactRepository; +import org.apache.maven.plugin.dependency.stubs.StubArtifactResolver; +import org.apache.maven.plugin.dependency.utils.ArtifactStubFactory; +import org.apache.maven.plugin.dependency.utils.DependencyTestUtils; import org.apache.maven.plugin.dependency.utils.DependencyUtil; import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.StringUtils; public class TestCopyDependenciesMojo extends AbstractDependencyMojoTestCase @@ -320,6 +333,100 @@ File file = new File( mojo.outputDirectory, fileName ); assertEquals( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ), file.exists() ); + } + } + + public void testCDMClassifier() + throws Exception + { + dotestCopyDependenciesMojoClassifierType( "jdk14", null ); + } + + public void testCDMType() + throws Exception + { + dotestCopyDependenciesMojoClassifierType( null, "sources" ); + } + + public void testCDMClassifierType() + throws Exception + { + dotestCopyDependenciesMojoClassifierType( "jdk14", "sources" ); + } + + public void dotestCopyDependenciesMojoClassifierType( String testClassifier, String testType ) + throws Exception + { + CopyDependenciesMojo mojo = getNewMojo(); + mojo.classifier = testClassifier; + mojo.type = testType; + + // init classifier things + mojo.factory = DependencyTestUtils.getArtifactFactory(); + mojo.resolver = new StubArtifactResolver( false, false ); + mojo.local = new StubArtifactRepository( this.testDir.getAbsolutePath() ); + + mojo.execute(); + + Iterator iter = mojo.project.getArtifacts().iterator(); + while ( iter.hasNext() ) + { + Artifact artifact = (Artifact) iter.next(); + + String useClassifier = artifact.getClassifier(); + String useType = artifact.getType(); + + if ( StringUtils.isNotEmpty( testClassifier ) ) + { + useClassifier = "-" + testClassifier; + // type is only used if classifier is used. + if ( StringUtils.isNotEmpty( testType ) ) + { + useType = testType; + } + } + String fileName = artifact.getArtifactId() + useClassifier + "-" + artifact.getVersion() + "." + useType; + File file = new File( mojo.outputDirectory, fileName ); + + if ( !file.exists() ) + { + fail( "Can't find:" + file.getAbsolutePath() ); + } + } + } + + public void testArtifactNotFound() + throws Exception + { + dotestArtifactExceptions( false, true ); + } + + public void testArtifactResolutionException() + throws Exception + { + dotestArtifactExceptions( true, false ); + } + + public void dotestArtifactExceptions( boolean are, boolean anfe ) + throws Exception + { + CopyDependenciesMojo mojo = getNewMojo(); + mojo.classifier = "jdk"; + mojo.type = "java-sources"; + + // init classifier things + mojo.factory = DependencyTestUtils.getArtifactFactory(); + mojo.resolver = new StubArtifactResolver( are, anfe ); + mojo.local = new StubArtifactRepository( this.testDir.getAbsolutePath() ); + + try + { + mojo.execute(); + fail( "ExpectedException" ); + } + catch ( MojoExecutionException e ) + { + } } } Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactRepository.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactRepository.java?view=auto&rev=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactRepository.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactRepository.java Wed Oct 4 20:06:36 2006 @@ -0,0 +1,101 @@ +package org.apache.maven.plugin.dependency.stubs; + +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.ArtifactRepositoryPolicy; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; + +public class StubArtifactRepository + implements ArtifactRepository +{ + String baseDir = null; + public StubArtifactRepository(String dir) + { + baseDir = dir; + } + + public String pathOf( Artifact artifact ) + { + // TODO Auto-generated method stub + return null; + } + + public String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata ) + { + // TODO Auto-generated method stub + return null; + } + + public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository ) + { + // TODO Auto-generated method stub + return null; + } + + public String getUrl() + { + // TODO Auto-generated method stub + return null; + } + + public String getBasedir() + { + return baseDir; + } + + public String getProtocol() + { + // TODO Auto-generated method stub + return null; + } + + public String getId() + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactRepositoryPolicy getSnapshots() + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactRepositoryPolicy getReleases() + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactRepositoryLayout getLayout() + { + // TODO Auto-generated method stub + return null; + } + + public String getKey() + { + // TODO Auto-generated method stub + return null; + } + + public boolean isUniqueVersion() + { + // TODO Auto-generated method stub + return false; + } + + public void setBlacklisted( boolean blackListed ) + { + // TODO Auto-generated method stub + + } + + public boolean isBlacklisted() + { + // TODO Auto-generated method stub + return false; + } + +} Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactResolver.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactResolver.java?view=auto&rev=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactResolver.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/stubs/StubArtifactResolver.java Wed Oct 4 20:06:36 2006 @@ -0,0 +1,115 @@ +package org.apache.maven.plugin.dependency.stubs; + +import java.io.File; +import java.util.List; +import java.util.Map; +import java.util.Set; + +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.ArtifactNotFoundException; +import org.apache.maven.artifact.resolver.ArtifactResolutionException; +import org.apache.maven.artifact.resolver.ArtifactResolutionResult; +import org.apache.maven.artifact.resolver.ArtifactResolver; +import org.apache.maven.artifact.resolver.filter.ArtifactFilter; +import org.apache.maven.plugin.dependency.utils.ArtifactStubFactory; + +public class StubArtifactResolver + implements ArtifactResolver +{ + + boolean throwArtifactResolutionException; + boolean throwArtifactNotFoundException; + public StubArtifactResolver(boolean throwArtifactResolutionException, boolean throwArtifactNotFoundException) + { + this.throwArtifactNotFoundException = throwArtifactNotFoundException; + this.throwArtifactResolutionException = throwArtifactResolutionException; + } + + public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + if (!this.throwArtifactNotFoundException && !this.throwArtifactResolutionException) + { + // TODO Auto-generated method stub + ArtifactStubFactory factory = new ArtifactStubFactory(new File(localRepository.getBasedir()),true); + factory.setArtifactFile(artifact); + } + else + { + if (throwArtifactResolutionException) + { + throw new ArtifactResolutionException("Catch!", artifact); + } + else + { + throw new ArtifactNotFoundException("Catch!",artifact); + } + } + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + List remoteRepositories, ArtifactRepository localRepository, + ArtifactMetadataSource source ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + List remoteRepositories, ArtifactRepository localRepository, + ArtifactMetadataSource source, List listeners ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + ArtifactRepository localRepository, List remoteRepositories, + ArtifactMetadataSource source, ArtifactFilter filter ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + Map managedVersions, ArtifactRepository localRepository, + List remoteRepositories, ArtifactMetadataSource source ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + Map managedVersions, ArtifactRepository localRepository, + List remoteRepositories, ArtifactMetadataSource source, + ArtifactFilter filter ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact, + Map managedVersions, ArtifactRepository localRepository, + List remoteRepositories, ArtifactMetadataSource source, + ArtifactFilter filter, List listeners ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + return null; + } + + public void resolveAlways( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository ) + throws ArtifactResolutionException, ArtifactNotFoundException + { + // TODO Auto-generated method stub + + } + +} Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java Wed Oct 4 20:06:36 2006 @@ -53,7 +53,7 @@ return artifact; } - void setArtifactFile( Artifact artifact ) + public void setArtifactFile( Artifact artifact ) { String fileName = DependencyUtil.getFormattedFileName( artifact, false ); Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/DependencyTestUtils.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/DependencyTestUtils.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/DependencyTestUtils.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/DependencyTestUtils.java Wed Oct 4 20:06:36 2006 @@ -2,10 +2,21 @@ import java.io.File; import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import org.apache.maven.artifact.DefaultArtifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.factory.DefaultArtifactFactory; +import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; +import org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory; +import org.apache.maven.artifact.resolver.DefaultArtifactResolver; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.shared.model.fileset.FileSet; import org.apache.maven.shared.model.fileset.util.FileSetManager; +import org.codehaus.plexus.util.ReflectionUtils; public class DependencyTestUtils { @@ -33,5 +44,35 @@ } } + + static public ArtifactFactory getArtifactFactory() throws IllegalAccessException + { + ArtifactFactory artifactFactory; + ArtifactHandlerManager manager = new DefaultArtifactHandlerManager(); + setVariableValueToObject( manager, "artifactHandlers", new HashMap() ); + + artifactFactory = new DefaultArtifactFactory(); + setVariableValueToObject( artifactFactory, "artifactHandlerManager", manager ); + + return artifactFactory; + } + + /** + * convience method to set values to variables in objects that don't have setters + * @param object + * @param variable + * @param value + * @throws IllegalAccessException + */ + public static void setVariableValueToObject( Object object, String variable, Object value ) + throws IllegalAccessException + { + Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses( variable, object.getClass() ); + + field.setAccessible( true ); + + field.set(object, value ); + } + } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestDefaultMarkerFileHandler.java Wed Oct 4 20:06:36 2006 @@ -31,7 +31,9 @@ import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.handler.DefaultArtifactHandler; import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.dependency.utils.DependencyTestUtils; import org.apache.maven.plugin.dependency.utils.SilentLog; import org.apache.maven.plugin.logging.Log; @@ -64,16 +66,15 @@ artifact = new DefaultArtifact( "test", "4", vr, Artifact.SCOPE_RUNTIME, "zip", "", ah, false ); artifacts.add( artifact ); - // pick random output location - Random a = new Random(); - outputFolder = new File( "target/markers" + a.nextLong() + "/" ); + outputFolder = new File( "target/markers/" ); outputFolder.delete(); assertFalse( outputFolder.exists() ); } protected void tearDown() + throws IOException { - outputFolder.delete(); + DependencyTestUtils.removeDirectory( this.outputFolder ); } public void testSetMarker() @@ -96,8 +97,6 @@ assertFalse( handler.isMarkerSet() ); handler.clearMarker(); assertFalse( handler.isMarkerSet() ); - outputFolder.delete(); - assertFalse( outputFolder.exists() ); } public void testMarkerFile() @@ -122,11 +121,34 @@ handler.clearMarker(); assertFalse( handle.exists() ); - - outputFolder.delete(); - assertFalse( outputFolder.exists() ); } + /* + public void testMarkerFileException() + throws IOException, MojoExecutionException + { + DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( (Artifact) artifacts.get( 0 ), + this.outputFolder ); + + File handle = handler.getMarkerFile(); + assertFalse( handle.exists() ); + assertFalse( handler.isMarkerSet() ); + + handle.getParentFile().mkdirs(); + handle.getParentFile().setReadOnly(); + handle. + + try + { + handler.setMarker(); + fail( "Expected an Exception" ); + } + catch ( MojoExecutionException e ) + { + + } + } +*/ public void testMarkerTimeStamp() throws MojoExecutionException, IOException, InterruptedException { @@ -149,8 +171,5 @@ theFile.delete(); handler.clearMarker(); assertFalse( handler.isMarkerSet() ); - outputFolder.delete(); - assertFalse( outputFolder.exists() ); - } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestSourcesMarkerFileHandler.java Wed Oct 4 20:06:36 2006 @@ -196,5 +196,40 @@ assertFalse( outputFolder.exists() ); } - // TODO: create test for timestamps here. + public void testMarkerTimeStampResolved() + throws MojoExecutionException, IOException, InterruptedException + { + doTestMarkerTimeStamp( true ); + } + + public void testMarkerTimeStampUnResolved() + throws MojoExecutionException, IOException, InterruptedException + { + doTestMarkerTimeStamp( false ); + } + + public void doTestMarkerTimeStamp( boolean resolved ) + throws MojoExecutionException, IOException, InterruptedException + { + File theFile = new File( outputFolder, "theFile.jar" ); + outputFolder.mkdirs(); + theFile.createNewFile(); + Artifact theArtifact = (Artifact) artifacts.get( 0 ); + theArtifact.setFile( theFile ); + SourcesFileMarkerHandler handler = new SourcesFileMarkerHandler( (Artifact) artifacts.get( 0 ), + this.outputFolder, resolved ); + assertFalse( handler.isMarkerSet() ); + // if the marker is not set, assume it is infinately older than the + // artifact. + assertTrue( handler.isMarkerOlder( theArtifact ) ); + handler.setMarker(); + assertFalse( handler.isMarkerOlder( theArtifact ) ); + + theFile.setLastModified( theFile.lastModified() + 222 ); + assertTrue( handler.isMarkerOlder( theArtifact ) ); + + theFile.delete(); + handler.clearMarker(); + assertFalse( handler.isMarkerSet() ); + } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java?view=diff&rev=453098&r1=453097&r2=453098 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java Wed Oct 4 20:06:36 2006 @@ -50,147 +50,149 @@ throws Exception { super.setUp(); - + ArtifactHandlerManager manager = new DefaultArtifactHandlerManager(); - this.setVariableValueToObject(manager,"artifactHandlers",new HashMap()); - + this.setVariableValueToObject( manager, "artifactHandlers", new HashMap() ); + artifactFactory = new DefaultArtifactFactory(); - this.setVariableValueToObject(artifactFactory,"artifactHandlerManager",manager); - + this.setVariableValueToObject( artifactFactory, "artifactHandlerManager", manager ); + ArtifactStubFactory factory = new ArtifactStubFactory( null, false ); artifacts = factory.getMixedArtifacts(); } public void testNullClassifier() { - doTestNullEmptyClassifier(null); + doTestNullEmptyClassifier( null ); } + public void testEmptyClassifier() { - doTestNullEmptyClassifier(""); + doTestNullEmptyClassifier( "" ); } - - public void doTestNullEmptyClassifier(String classifier) + + public void doTestNullEmptyClassifier( String classifier ) { String type = "zip"; - - ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); - Set results = at.translate(artifacts,log); - + + ArtifactTranslator at = new ClassifierTypeTranslator( classifier, type, artifactFactory ); + Set results = at.translate( artifacts, log ); + Iterator iter = artifacts.iterator(); - - while (iter.hasNext()) + + while ( iter.hasNext() ) { Artifact artifact = (Artifact) iter.next(); Iterator resultIter = results.iterator(); boolean found = false; - while (!found && resultIter.hasNext() ) + while ( !found && resultIter.hasNext() ) { - Artifact translatedArtifact = (Artifact) resultIter.next(); - if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && - artifact.getGroupId() == translatedArtifact.getGroupId() && - artifact.getScope() == translatedArtifact.getScope()) + Artifact translatedArtifact = (Artifact) resultIter.next(); + if ( artifact.getArtifactId() == translatedArtifact.getArtifactId() + && artifact.getGroupId() == translatedArtifact.getGroupId() + && artifact.getScope() == translatedArtifact.getScope() ) { - //classifier is null, should be the same as the artifact - assertEquals(artifact.getClassifier(),translatedArtifact.getClassifier()); - assertEquals(type,translatedArtifact.getType()); - + // classifier is null, should be the same as the artifact + assertEquals( artifact.getClassifier(), translatedArtifact.getClassifier() ); + assertEquals( type, translatedArtifact.getType() ); + found = true; break; } } - assertTrue(found); - } + assertTrue( found ); + } } - + public void testNullType() { - doTestNullEmptyType(null); + doTestNullEmptyType( null ); } + public void testEmptyType() { - doTestNullEmptyType(""); + doTestNullEmptyType( "" ); } - - public void doTestNullEmptyType(String type) + + public void doTestNullEmptyType( String type ) { String classifier = "jdk5"; - - ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); - Set results = at.translate(artifacts,log); - + + ArtifactTranslator at = new ClassifierTypeTranslator( classifier, type, artifactFactory ); + Set results = at.translate( artifacts, log ); + Iterator iter = artifacts.iterator(); - - while (iter.hasNext()) + + while ( iter.hasNext() ) { Artifact artifact = (Artifact) iter.next(); Iterator resultIter = results.iterator(); boolean found = false; - while (!found && resultIter.hasNext() ) + while ( !found && resultIter.hasNext() ) { - Artifact translatedArtifact = (Artifact) resultIter.next(); - if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && - artifact.getGroupId() == translatedArtifact.getGroupId() && - artifact.getScope() == translatedArtifact.getScope()) + Artifact translatedArtifact = (Artifact) resultIter.next(); + if ( artifact.getArtifactId() == translatedArtifact.getArtifactId() + && artifact.getGroupId() == translatedArtifact.getGroupId() + && artifact.getScope() == translatedArtifact.getScope() ) { - //classifier is null, should be the same as the artifact - assertEquals(classifier,translatedArtifact.getClassifier()); - assertEquals(artifact.getType(),translatedArtifact.getType()); - + // classifier is null, should be the same as the artifact + assertEquals( classifier, translatedArtifact.getClassifier() ); + assertEquals( artifact.getType(), translatedArtifact.getType() ); + found = true; break; } } - assertTrue(found); - } + assertTrue( found ); + } } - + public void testClassifierAndType() { String classifier = "jdk14"; String type = "sources"; - ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); - Set results = at.translate(artifacts,log); - + ArtifactTranslator at = new ClassifierTypeTranslator( classifier, type, artifactFactory ); + Set results = at.translate( artifacts, log ); + Iterator iter = artifacts.iterator(); - - while (iter.hasNext()) + + while ( iter.hasNext() ) { Artifact artifact = (Artifact) iter.next(); Iterator resultIter = results.iterator(); boolean found = false; - while (!found && resultIter.hasNext() ) + while ( !found && resultIter.hasNext() ) { - Artifact translatedArtifact = (Artifact) resultIter.next(); - if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && - artifact.getGroupId() == translatedArtifact.getGroupId() && - artifact.getScope() == translatedArtifact.getScope()) + Artifact translatedArtifact = (Artifact) resultIter.next(); + if ( artifact.getArtifactId() == translatedArtifact.getArtifactId() + && artifact.getGroupId() == translatedArtifact.getGroupId() + && artifact.getScope() == translatedArtifact.getScope() ) { - assertEquals(translatedArtifact.getClassifier(),classifier); - assertEquals(translatedArtifact.getType(),type); - + assertEquals( translatedArtifact.getClassifier(), classifier ); + assertEquals( translatedArtifact.getType(), type ); + found = true; break; } } - assertTrue(found); - } + assertTrue( found ); + } } public void testGetterSetter() { String classifier = "class"; String type = "type"; - ClassifierTypeTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); - - assertEquals(classifier,at.getClassifier()); - assertEquals(type,at.getType()); - - at.setClassifier(type); - at.setType(classifier); - - assertEquals(type,at.getClassifier()); - assertEquals(classifier,at.getType()); - + ClassifierTypeTranslator at = new ClassifierTypeTranslator( classifier, type, artifactFactory ); + + assertEquals( classifier, at.getClassifier() ); + assertEquals( type, at.getType() ); + + at.setClassifier( type ); + at.setType( classifier ); + + assertEquals( type, at.getClassifier() ); + assertEquals( classifier, at.getType() ); + } }