You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2007/07/02 18:06:24 UTC
svn commit: r552524 [5/9] - in /maven/plugins/trunk/maven-dependency-plugin:
./ src/changes/ src/it/copy-dependencies/ src/it/copy-dependencies2/
src/it/mdep-27/ src/it/mdep-50/ src/it/mdep-61/ src/it/mdep-66/
src/it/mdep-67/ src/main/java/org/apache/m...
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java?view=diff&rev=552524&r1=552523&r2=552524
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java Mon Jul 2 09:06:19 2007
@@ -1,672 +1,672 @@
-package org.apache.maven.plugin.dependency;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
-import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
-import org.apache.maven.plugin.dependency.utils.DependencyUtil;
-import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
-import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
-import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.StringUtils;
-
-public class TestUnpackDependenciesMojo
- extends AbstractDependencyMojoTestCase
-{
-
- private final String UNPACKABLE_FILE = "test.txt";
-
- private final String UNPACKABLE_FILE_PATH = "target/test-classes/unit/unpack-dependencies-test/" + UNPACKABLE_FILE;
-
- UnpackDependenciesMojo mojo;
-
- protected void setUp()
- throws Exception
- {
- // required for mojo lookups to work
- super.setUp( "unpack-dependencies", true );
-
- File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-dependencies-test/plugin-config.xml" );
- mojo = (UnpackDependenciesMojo) lookupMojo( "unpack-dependencies", testPom );
- mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
- // mojo.silent = true;
-
- // it needs to get the archivermanager
- stubFactory.setUnpackableFile( mojo.getArchiverManager() );
- // i'm using one file repeatedly to archive so I can test the name
- // programmatically.
- stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar + UNPACKABLE_FILE_PATH ) );
-
- assertNotNull( mojo );
- assertNotNull( mojo.getProject() );
- MavenProject project = mojo.getProject();
-
- Set artifacts = this.stubFactory.getScopedArtifacts();
- Set directArtifacts = this.stubFactory.getReleaseAndSnapshotArtifacts();
- artifacts.addAll( directArtifacts );
-
- project.setArtifacts( artifacts );
- project.setDependencyArtifacts( directArtifacts );
- mojo.markersDirectory = new File( this.testDir, "markers" );
-
- }
-
- protected void tearDown()
- {
- super.tearDown();
-
- mojo = null;
- System.gc();
- }
-
- public void assertUnpacked( Artifact artifact )
- {
- assertUnpacked( true, artifact );
- }
-
- public void assertUnpacked( boolean val, Artifact artifact )
- {
- File folder = DependencyUtil.getFormattedOutputDirectory( mojo.useSubDirectoryPerType,
- mojo.useSubDirectoryPerArtifact,
- mojo.useRepositoryLayout, mojo.stripVersion,
- mojo.outputDirectory, artifact );
-
- File destFile = new File( folder, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
-
- assertEquals( val, destFile.exists() );
- assertMarkerFile( val, artifact );
- }
-
- public void assertMarkerFile( boolean val, Artifact artifact )
- {
- DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( artifact, mojo.markersDirectory );
- try
- {
- assertEquals( val, handle.isMarkerSet() );
- }
- catch ( MojoExecutionException e )
- {
- fail( e.getLongMessage() );
- }
- }
-
- public void testMojo()
- throws Exception
- {
- mojo.execute();
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testNoTransitive()
- throws Exception
- {
- mojo.excludeTransitive = true;
- mojo.execute();
- Iterator iter = mojo.project.getDependencyArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testExcludeType()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeTypes = "jar";
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
-
- assertUnpacked( !artifact.getType().equalsIgnoreCase( "jar" ), artifact );
- }
- }
-
- public void testExcludeProvidedScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeScope = "provided";
- // mojo.silent = false;
-
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !artifact.getScope().equals( "provided" ), artifact );
- }
-
- }
-
- public void testExcludeSystemScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeScope = "system";
- // mojo.silent = false;
-
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !artifact.getScope().equals( "system" ), artifact );
- }
-
- }
-
- public void testExcludeCompileScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeScope = "compile";
- mojo.execute();
- ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !saf.include( artifact ), artifact );
- }
- }
-
- public void testExcludeTestScope()
- throws IOException
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeScope = "test";
-
- try
- {
- mojo.execute();
- fail( "expected an exception" );
- }
- catch ( MojoExecutionException e )
- {
-
- }
-
- }
-
- public void testExcludeRuntimeScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeScope = "runtime";
- mojo.execute();
- ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !saf.include( artifact ), artifact );
- }
- }
-
- public void testIncludeType()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
-
- mojo.includeTypes = "jar";
- mojo.excludeTypes = "jar";
- //shouldn't get anything
-
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
-
- assertUnpacked( false, artifact );
- }
-
- mojo.excludeTypes = "";
- mojo.execute();
-
- iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
-
- assertUnpacked( artifact.getType().equalsIgnoreCase( "jar" ), artifact );
- }
- }
-
- public void testSubPerType()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.useSubDirectoryPerType = true;
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testSubPerArtifact()
- throws Exception
- {
- mojo.useSubDirectoryPerArtifact = true;
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testSubPerArtifactAndType()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.useSubDirectoryPerArtifact = true;
- mojo.useSubDirectoryPerType = true;
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testSubPerArtifactRemoveVersion()
- throws Exception
- {
- mojo.useSubDirectoryPerArtifact = true;
- mojo.stripVersion = true;
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testSubPerArtifactAndTypeRemoveVersion()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.useSubDirectoryPerArtifact = true;
- mojo.useSubDirectoryPerType = true;
- mojo.stripVersion = true;
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact );
- }
- }
-
- public void testIncludeCompileScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeScope = "compile";
- mojo.execute();
- ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( saf.include( artifact ), artifact );
- }
- }
-
- public void testIncludeTestScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeScope = "test";
-
- mojo.execute();
- ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( saf.include( artifact ), artifact );
- }
- }
-
- public void testIncludeRuntimeScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeScope = "runtime";
- mojo.execute();
- ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( saf.include( artifact ), artifact );
- }
- }
-
- public void testIncludeprovidedScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeScope = "provided";
-
- mojo.execute();
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( Artifact.SCOPE_PROVIDED.equals( artifact.getScope() ), artifact );
- }
- }
-
- public void testIncludesystemScope()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeScope = "system";
-
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ), artifact );
- }
- }
-
- public void testIncludeArtifactId()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getArtifactArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
-
- mojo.includeArtifactIds = "one";
- mojo.excludeArtifactIds = "one";
- //shouldn't get anything
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( false, artifact );
- }
- mojo.excludeArtifactIds ="";
- mojo.execute();
-
- iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( artifact.getArtifactId().equals( "one" ), artifact );
- }
-
- }
-
- public void testExcludeArtifactId()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getArtifactArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeArtifactIds = "one";
- mojo.execute();
-
- // test - get all direct dependencies and verify that they exist if they
- // do not have a classifier of "one"
- // then delete the file and at the end, verify the folder is empty.
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !artifact.getArtifactId().equals( "one" ), artifact );
- }
- }
-
- public void testExcludeGroupId()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getGroupIdArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.excludeGroupIds = "one";
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- assertUnpacked( !artifact.getGroupId().equals( "one" ), artifact );
- }
- }
-
- public void testIncludeGroupId()
- throws Exception
- {
- mojo.project.setArtifacts( stubFactory.getGroupIdArtifacts() );
- mojo.project.setDependencyArtifacts( new HashSet() );
- mojo.includeGroupIds = "one";
- mojo.excludeGroupIds = "one";
- //shouldn't get anything
-
- mojo.execute();
-
- Iterator iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- // Testing with artifact id because group id is not in filename
- assertUnpacked( false, artifact );
- }
-
- mojo.excludeGroupIds = "";
- mojo.execute();
-
- iter = mojo.project.getArtifacts().iterator();
- while ( iter.hasNext() )
- {
- Artifact artifact = (Artifact) iter.next();
- // Testing with artifact id because group id is not in filename
- assertUnpacked( artifact.getGroupId().equals( "one" ), artifact );
- }
-
- }
-
- public void testCDMClassifier()
- throws Exception
- {
- dotestClassifierType( "jdk14", null );
- }
-
- public void testCDMType()
- throws Exception
- {
- dotestClassifierType( null, "zip" );
- }
-
- public void testCDMClassifierType()
- throws Exception
- {
- dotestClassifierType( "jdk14", "war" );
- }
-
- public void dotestClassifierType( String testClassifier, String testType )
- throws Exception
- {
- mojo.classifier = testClassifier;
- mojo.type = testType;
- mojo.factory = DependencyTestUtils.getArtifactFactory();
- mojo.resolver = new StubArtifactResolver( stubFactory, 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;
- }
- }
- Artifact unpacked = stubFactory.createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact
- .getVersion(), Artifact.SCOPE_COMPILE, useType, useClassifier );
- assertUnpacked( unpacked );
- }
- }
-
- 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
- {
- mojo.classifier = "jdk";
- mojo.type = "java-sources";
- // init classifier things
- mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
- mojo.setResolver( new StubArtifactResolver( null, are, anfe ) );
- mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
-
- try
- {
- mojo.execute();
- fail( "ExpectedException" );
- }
- catch ( MojoExecutionException e )
- {
- }
- }
-
- public File getUnpackedFile( Artifact artifact )
- {
- File destDir = DependencyUtil.getFormattedOutputDirectory( mojo.isUseSubDirectoryPerType(), mojo
- .isUseSubDirectoryPerArtifact(), mojo.useRepositoryLayout, mojo.stripVersion, mojo.getOutputDirectory(),
- artifact );
- File unpacked = new File( destDir, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
- assertTrue( unpacked.exists() );
- return unpacked;
- }
-
- public DefaultFileMarkerHandler getUnpackedMarkerHandler( Artifact artifact )
- {
- return new DefaultFileMarkerHandler( artifact, mojo.getMarkersDirectory() );
- }
-
-
- public void assertUnpacked( Artifact artifact, boolean overWrite )
- throws InterruptedException, MojoExecutionException
- {
- File unpackedFile = getUnpackedFile( artifact );
-
- Thread.sleep( 100 );
- // round down to the last second
- long time = System.currentTimeMillis();
- time = time - ( time % 1000 );
- unpackedFile.setLastModified( time );
- // wait at least a second for filesystems that only record to the
- // nearest second.
- Thread.sleep( 1000 );
-
- assertEquals( time, unpackedFile.lastModified() );
- mojo.execute();
-
- if ( overWrite )
- {
- assertTrue( time != unpackedFile.lastModified() );
- }
- else
- {
- assertEquals( time, unpackedFile.lastModified() );
- }
- }
-}
+package org.apache.maven.plugin.dependency;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
+import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
+import org.apache.maven.plugin.dependency.utils.DependencyUtil;
+import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
+import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
+import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
+
+public class TestUnpackDependenciesMojo
+ extends AbstractDependencyMojoTestCase
+{
+
+ private final String UNPACKABLE_FILE = "test.txt";
+
+ private final String UNPACKABLE_FILE_PATH = "target/test-classes/unit/unpack-dependencies-test/" + UNPACKABLE_FILE;
+
+ UnpackDependenciesMojo mojo;
+
+ protected void setUp()
+ throws Exception
+ {
+ // required for mojo lookups to work
+ super.setUp( "unpack-dependencies", true );
+
+ File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-dependencies-test/plugin-config.xml" );
+ mojo = (UnpackDependenciesMojo) lookupMojo( "unpack-dependencies", testPom );
+ mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
+ // mojo.silent = true;
+
+ // it needs to get the archivermanager
+ stubFactory.setUnpackableFile( mojo.getArchiverManager() );
+ // i'm using one file repeatedly to archive so I can test the name
+ // programmatically.
+ stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar + UNPACKABLE_FILE_PATH ) );
+
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ MavenProject project = mojo.getProject();
+
+ Set artifacts = this.stubFactory.getScopedArtifacts();
+ Set directArtifacts = this.stubFactory.getReleaseAndSnapshotArtifacts();
+ artifacts.addAll( directArtifacts );
+
+ project.setArtifacts( artifacts );
+ project.setDependencyArtifacts( directArtifacts );
+ mojo.markersDirectory = new File( this.testDir, "markers" );
+
+ }
+
+ protected void tearDown()
+ {
+ super.tearDown();
+
+ mojo = null;
+ System.gc();
+ }
+
+ public void assertUnpacked( Artifact artifact )
+ {
+ assertUnpacked( true, artifact );
+ }
+
+ public void assertUnpacked( boolean val, Artifact artifact )
+ {
+ File folder = DependencyUtil.getFormattedOutputDirectory( mojo.useSubDirectoryPerType,
+ mojo.useSubDirectoryPerArtifact,
+ mojo.useRepositoryLayout, mojo.stripVersion,
+ mojo.outputDirectory, artifact );
+
+ File destFile = new File( folder, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
+
+ assertEquals( val, destFile.exists() );
+ assertMarkerFile( val, artifact );
+ }
+
+ public void assertMarkerFile( boolean val, Artifact artifact )
+ {
+ DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( artifact, mojo.markersDirectory );
+ try
+ {
+ assertEquals( val, handle.isMarkerSet() );
+ }
+ catch ( MojoExecutionException e )
+ {
+ fail( e.getLongMessage() );
+ }
+ }
+
+ public void testMojo()
+ throws Exception
+ {
+ mojo.execute();
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testNoTransitive()
+ throws Exception
+ {
+ mojo.excludeTransitive = true;
+ mojo.execute();
+ Iterator iter = mojo.project.getDependencyArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testExcludeType()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeTypes = "jar";
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+
+ assertUnpacked( !artifact.getType().equalsIgnoreCase( "jar" ), artifact );
+ }
+ }
+
+ public void testExcludeProvidedScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeScope = "provided";
+ // mojo.silent = false;
+
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !artifact.getScope().equals( "provided" ), artifact );
+ }
+
+ }
+
+ public void testExcludeSystemScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeScope = "system";
+ // mojo.silent = false;
+
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !artifact.getScope().equals( "system" ), artifact );
+ }
+
+ }
+
+ public void testExcludeCompileScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeScope = "compile";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !saf.include( artifact ), artifact );
+ }
+ }
+
+ public void testExcludeTestScope()
+ throws IOException
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeScope = "test";
+
+ try
+ {
+ mojo.execute();
+ fail( "expected an exception" );
+ }
+ catch ( MojoExecutionException e )
+ {
+
+ }
+
+ }
+
+ public void testExcludeRuntimeScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeScope = "runtime";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !saf.include( artifact ), artifact );
+ }
+ }
+
+ public void testIncludeType()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+
+ mojo.includeTypes = "jar";
+ mojo.excludeTypes = "jar";
+ //shouldn't get anything
+
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+
+ assertUnpacked( false, artifact );
+ }
+
+ mojo.excludeTypes = "";
+ mojo.execute();
+
+ iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+
+ assertUnpacked( artifact.getType().equalsIgnoreCase( "jar" ), artifact );
+ }
+ }
+
+ public void testSubPerType()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.useSubDirectoryPerType = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testSubPerArtifact()
+ throws Exception
+ {
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testSubPerArtifactAndType()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.useSubDirectoryPerType = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testSubPerArtifactRemoveVersion()
+ throws Exception
+ {
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.stripVersion = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testSubPerArtifactAndTypeRemoveVersion()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getTypedArchiveArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.useSubDirectoryPerArtifact = true;
+ mojo.useSubDirectoryPerType = true;
+ mojo.stripVersion = true;
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact );
+ }
+ }
+
+ public void testIncludeCompileScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "compile";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( saf.include( artifact ), artifact );
+ }
+ }
+
+ public void testIncludeTestScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "test";
+
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( saf.include( artifact ), artifact );
+ }
+ }
+
+ public void testIncludeRuntimeScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "runtime";
+ mojo.execute();
+ ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.includeScope );
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( saf.include( artifact ), artifact );
+ }
+ }
+
+ public void testIncludeprovidedScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "provided";
+
+ mojo.execute();
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( Artifact.SCOPE_PROVIDED.equals( artifact.getScope() ), artifact );
+ }
+ }
+
+ public void testIncludesystemScope()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getScopedArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeScope = "system";
+
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ), artifact );
+ }
+ }
+
+ public void testIncludeArtifactId()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getArtifactArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+
+ mojo.includeArtifactIds = "one";
+ mojo.excludeArtifactIds = "one";
+ //shouldn't get anything
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( false, artifact );
+ }
+ mojo.excludeArtifactIds ="";
+ mojo.execute();
+
+ iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( artifact.getArtifactId().equals( "one" ), artifact );
+ }
+
+ }
+
+ public void testExcludeArtifactId()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getArtifactArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeArtifactIds = "one";
+ mojo.execute();
+
+ // test - get all direct dependencies and verify that they exist if they
+ // do not have a classifier of "one"
+ // then delete the file and at the end, verify the folder is empty.
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !artifact.getArtifactId().equals( "one" ), artifact );
+ }
+ }
+
+ public void testExcludeGroupId()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getGroupIdArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.excludeGroupIds = "one";
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ assertUnpacked( !artifact.getGroupId().equals( "one" ), artifact );
+ }
+ }
+
+ public void testIncludeGroupId()
+ throws Exception
+ {
+ mojo.project.setArtifacts( stubFactory.getGroupIdArtifacts() );
+ mojo.project.setDependencyArtifacts( new HashSet() );
+ mojo.includeGroupIds = "one";
+ mojo.excludeGroupIds = "one";
+ //shouldn't get anything
+
+ mojo.execute();
+
+ Iterator iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ // Testing with artifact id because group id is not in filename
+ assertUnpacked( false, artifact );
+ }
+
+ mojo.excludeGroupIds = "";
+ mojo.execute();
+
+ iter = mojo.project.getArtifacts().iterator();
+ while ( iter.hasNext() )
+ {
+ Artifact artifact = (Artifact) iter.next();
+ // Testing with artifact id because group id is not in filename
+ assertUnpacked( artifact.getGroupId().equals( "one" ), artifact );
+ }
+
+ }
+
+ public void testCDMClassifier()
+ throws Exception
+ {
+ dotestClassifierType( "jdk14", null );
+ }
+
+ public void testCDMType()
+ throws Exception
+ {
+ dotestClassifierType( null, "zip" );
+ }
+
+ public void testCDMClassifierType()
+ throws Exception
+ {
+ dotestClassifierType( "jdk14", "war" );
+ }
+
+ public void dotestClassifierType( String testClassifier, String testType )
+ throws Exception
+ {
+ mojo.classifier = testClassifier;
+ mojo.type = testType;
+ mojo.factory = DependencyTestUtils.getArtifactFactory();
+ mojo.resolver = new StubArtifactResolver( stubFactory, 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;
+ }
+ }
+ Artifact unpacked = stubFactory.createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact
+ .getVersion(), Artifact.SCOPE_COMPILE, useType, useClassifier );
+ assertUnpacked( unpacked );
+ }
+ }
+
+ 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
+ {
+ mojo.classifier = "jdk";
+ mojo.type = "java-sources";
+ // init classifier things
+ mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
+ mojo.setResolver( new StubArtifactResolver( null, are, anfe ) );
+ mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
+
+ try
+ {
+ mojo.execute();
+ fail( "ExpectedException" );
+ }
+ catch ( MojoExecutionException e )
+ {
+ }
+ }
+
+ public File getUnpackedFile( Artifact artifact )
+ {
+ File destDir = DependencyUtil.getFormattedOutputDirectory( mojo.isUseSubDirectoryPerType(), mojo
+ .isUseSubDirectoryPerArtifact(), mojo.useRepositoryLayout, mojo.stripVersion, mojo.getOutputDirectory(),
+ artifact );
+ File unpacked = new File( destDir, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
+ assertTrue( unpacked.exists() );
+ return unpacked;
+ }
+
+ public DefaultFileMarkerHandler getUnpackedMarkerHandler( Artifact artifact )
+ {
+ return new DefaultFileMarkerHandler( artifact, mojo.getMarkersDirectory() );
+ }
+
+
+ public void assertUnpacked( Artifact artifact, boolean overWrite )
+ throws InterruptedException, MojoExecutionException
+ {
+ File unpackedFile = getUnpackedFile( artifact );
+
+ Thread.sleep( 100 );
+ // round down to the last second
+ long time = System.currentTimeMillis();
+ time = time - ( time % 1000 );
+ unpackedFile.setLastModified( time );
+ // wait at least a second for filesystems that only record to the
+ // nearest second.
+ Thread.sleep( 1000 );
+
+ assertEquals( time, unpackedFile.lastModified() );
+ mojo.execute();
+
+ if ( overWrite )
+ {
+ assertTrue( time != unpackedFile.lastModified() );
+ }
+ else
+ {
+ assertEquals( time, unpackedFile.lastModified() );
+ }
+ }
+}
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jul 2 09:06:19 2007
@@ -1 +1 @@
-Author Date Id HeadURL Revision
+Author Date Id Revision
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java?view=diff&rev=552524&r1=552523&r2=552524
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java Mon Jul 2 09:06:19 2007
@@ -1,250 +1,250 @@
-package org.apache.maven.plugin.dependency;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
-import org.apache.maven.plugin.dependency.utils.DependencyUtil;
-import org.apache.maven.project.MavenProject;
-
-public class TestUnpackDependenciesMojo2
- extends AbstractDependencyMojoTestCase
-{
-
- private final String UNPACKABLE_FILE = "test.txt";
-
- private final String UNPACKABLE_FILE_PATH = "target/test-classes/unit/unpack-dependencies-test/" + UNPACKABLE_FILE;
-
- UnpackDependenciesMojo mojo;
-
- protected void setUp()
- throws Exception
- {
- // required for mojo lookups to work
- super.setUp( "unpack-dependencies", true );
-
- File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-dependencies-test/plugin-config.xml" );
- mojo = (UnpackDependenciesMojo) lookupMojo( "unpack-dependencies", testPom );
- mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
- // mojo.silent = true;
-
- // it needs to get the archivermanager
- stubFactory.setUnpackableFile( mojo.getArchiverManager() );
- // i'm using one file repeatedly to archive so I can test the name
- // programmatically.
- stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar + UNPACKABLE_FILE_PATH ) );
-
- assertNotNull( mojo );
- assertNotNull( mojo.getProject() );
- MavenProject project = mojo.getProject();
-
- Set artifacts = this.stubFactory.getScopedArtifacts();
- Set directArtifacts = this.stubFactory.getReleaseAndSnapshotArtifacts();
- artifacts.addAll( directArtifacts );
-
- project.setArtifacts( artifacts );
- project.setDependencyArtifacts( directArtifacts );
- mojo.markersDirectory = new File( this.testDir, "markers" );
-
- }
-
- protected void tearDown()
- {
- super.tearDown();
-
- mojo = null;
- System.gc();
- }
-
- public File getUnpackedFile( Artifact artifact )
- {
- File destDir = DependencyUtil.getFormattedOutputDirectory( mojo.isUseSubDirectoryPerType(), mojo
- .isUseSubDirectoryPerArtifact(), mojo.useRepositoryLayout, mojo.stripVersion, mojo.getOutputDirectory(),
- artifact );
- File unpacked = new File( destDir, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
- assertTrue( unpacked.exists() );
- return unpacked;
- }
-
- public void testDontOverWriteRelease()
- throws MojoExecutionException, InterruptedException, IOException
- {
-
- Set artifacts = new HashSet();
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- artifacts.add( release );
-
- mojo.project.setArtifacts( artifacts );
- mojo.project.setDependencyArtifacts( artifacts );
-
- mojo.overWriteIfNewer = false;
-
- mojo.execute();
-
- assertUnpacked( release, false );
- }
-
- public void testOverWriteRelease()
- throws MojoExecutionException, InterruptedException, IOException
- {
-
- Set artifacts = new HashSet();
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- artifacts.add( release );
-
- mojo.project.setArtifacts( artifacts );
- mojo.project.setDependencyArtifacts( artifacts );
-
- mojo.overWriteReleases = true;
- mojo.overWriteIfNewer = false;
-
- mojo.execute();
-
- assertUnpacked( release, true );
- }
-
- public void testDontOverWriteSnap()
- throws MojoExecutionException, InterruptedException, IOException
- {
-
- Set artifacts = new HashSet();
- Artifact snap = stubFactory.getSnapshotArtifact();
- snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- artifacts.add( snap );
-
- mojo.project.setArtifacts( artifacts );
- mojo.project.setDependencyArtifacts( artifacts );
-
- mojo.overWriteReleases = false;
- mojo.overWriteSnapshots = false;
- mojo.overWriteIfNewer = false;
-
- mojo.execute();
-
- assertUnpacked( snap, false );
- }
-
- public void testOverWriteSnap()
- throws MojoExecutionException, InterruptedException, IOException
- {
-
- Set artifacts = new HashSet();
- Artifact snap = stubFactory.getSnapshotArtifact();
- snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- artifacts.add( snap );
-
- mojo.project.setArtifacts( artifacts );
- mojo.project.setDependencyArtifacts( artifacts );
-
- mojo.overWriteReleases = false;
- mojo.overWriteSnapshots = true;
- mojo.overWriteIfNewer = false;
-
- mojo.execute();
-
- assertUnpacked( snap, true );
-
- }
-
- public void testOverWriteIfNewer()
- throws MojoExecutionException, InterruptedException, IOException
- {
-
- Set artifacts = new HashSet();
- Artifact snap = stubFactory.getSnapshotArtifact();
- snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- artifacts.add( snap );
-
- mojo.project.setArtifacts( artifacts );
- mojo.project.setDependencyArtifacts( artifacts );
-
- mojo.overWriteReleases = false;
- mojo.overWriteSnapshots = false;
- mojo.overWriteIfNewer = false;
-
- mojo.execute();
-
- File unpackedFile = getUnpackedFile( snap );
-
- // round down to the last second
- long time = System.currentTimeMillis();
- time = time - ( time % 1000 );
- // set source to be newer and dest to be a known value.
- snap.getFile().setLastModified( time + 3000 );
- unpackedFile.setLastModified( time );
- // wait at least a second for filesystems that only record to the
- // nearest second.
- Thread.sleep( 1000 );
-
- assertEquals( time, unpackedFile.lastModified() );
- mojo.execute();
- System.gc();
- // make sure it didn't overwrite
- assertEquals( time, unpackedFile.lastModified() );
-
- mojo.overWriteIfNewer = true;
-
- mojo.execute();
-
- assertTrue( time != unpackedFile.lastModified() );
-
- System.gc();
- }
-
- public void assertUnpacked( Artifact artifact, boolean overWrite )
- throws InterruptedException, MojoExecutionException
- {
- File unpackedFile = getUnpackedFile( artifact );
-
- Thread.sleep( 100 );
- // round down to the last second
- long time = System.currentTimeMillis();
- time = time - ( time % 1000 );
- unpackedFile.setLastModified( time );
- // wait at least a second for filesystems that only record to the
- // nearest second.
- Thread.sleep( 1000 );
-
- assertEquals( time, unpackedFile.lastModified() );
- mojo.execute();
-
- if ( overWrite )
- {
- assertTrue( time != unpackedFile.lastModified() );
- }
- else
- {
- assertEquals( time, unpackedFile.lastModified() );
- }
- }
-}
+package org.apache.maven.plugin.dependency;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
+import org.apache.maven.plugin.dependency.utils.DependencyUtil;
+import org.apache.maven.project.MavenProject;
+
+public class TestUnpackDependenciesMojo2
+ extends AbstractDependencyMojoTestCase
+{
+
+ private final String UNPACKABLE_FILE = "test.txt";
+
+ private final String UNPACKABLE_FILE_PATH = "target/test-classes/unit/unpack-dependencies-test/" + UNPACKABLE_FILE;
+
+ UnpackDependenciesMojo mojo;
+
+ protected void setUp()
+ throws Exception
+ {
+ // required for mojo lookups to work
+ super.setUp( "unpack-dependencies", true );
+
+ File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-dependencies-test/plugin-config.xml" );
+ mojo = (UnpackDependenciesMojo) lookupMojo( "unpack-dependencies", testPom );
+ mojo.outputDirectory = new File( this.testDir, "outputDirectory" );
+ // mojo.silent = true;
+
+ // it needs to get the archivermanager
+ stubFactory.setUnpackableFile( mojo.getArchiverManager() );
+ // i'm using one file repeatedly to archive so I can test the name
+ // programmatically.
+ stubFactory.setSrcFile( new File( getBasedir() + File.separatorChar + UNPACKABLE_FILE_PATH ) );
+
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ MavenProject project = mojo.getProject();
+
+ Set artifacts = this.stubFactory.getScopedArtifacts();
+ Set directArtifacts = this.stubFactory.getReleaseAndSnapshotArtifacts();
+ artifacts.addAll( directArtifacts );
+
+ project.setArtifacts( artifacts );
+ project.setDependencyArtifacts( directArtifacts );
+ mojo.markersDirectory = new File( this.testDir, "markers" );
+
+ }
+
+ protected void tearDown()
+ {
+ super.tearDown();
+
+ mojo = null;
+ System.gc();
+ }
+
+ public File getUnpackedFile( Artifact artifact )
+ {
+ File destDir = DependencyUtil.getFormattedOutputDirectory( mojo.isUseSubDirectoryPerType(), mojo
+ .isUseSubDirectoryPerArtifact(), mojo.useRepositoryLayout, mojo.stripVersion, mojo.getOutputDirectory(),
+ artifact );
+ File unpacked = new File( destDir, DependencyArtifactStubFactory.getUnpackableFileName( artifact ) );
+ assertTrue( unpacked.exists() );
+ return unpacked;
+ }
+
+ public void testDontOverWriteRelease()
+ throws MojoExecutionException, InterruptedException, IOException
+ {
+
+ Set artifacts = new HashSet();
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ artifacts.add( release );
+
+ mojo.project.setArtifacts( artifacts );
+ mojo.project.setDependencyArtifacts( artifacts );
+
+ mojo.overWriteIfNewer = false;
+
+ mojo.execute();
+
+ assertUnpacked( release, false );
+ }
+
+ public void testOverWriteRelease()
+ throws MojoExecutionException, InterruptedException, IOException
+ {
+
+ Set artifacts = new HashSet();
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ artifacts.add( release );
+
+ mojo.project.setArtifacts( artifacts );
+ mojo.project.setDependencyArtifacts( artifacts );
+
+ mojo.overWriteReleases = true;
+ mojo.overWriteIfNewer = false;
+
+ mojo.execute();
+
+ assertUnpacked( release, true );
+ }
+
+ public void testDontOverWriteSnap()
+ throws MojoExecutionException, InterruptedException, IOException
+ {
+
+ Set artifacts = new HashSet();
+ Artifact snap = stubFactory.getSnapshotArtifact();
+ snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ artifacts.add( snap );
+
+ mojo.project.setArtifacts( artifacts );
+ mojo.project.setDependencyArtifacts( artifacts );
+
+ mojo.overWriteReleases = false;
+ mojo.overWriteSnapshots = false;
+ mojo.overWriteIfNewer = false;
+
+ mojo.execute();
+
+ assertUnpacked( snap, false );
+ }
+
+ public void testOverWriteSnap()
+ throws MojoExecutionException, InterruptedException, IOException
+ {
+
+ Set artifacts = new HashSet();
+ Artifact snap = stubFactory.getSnapshotArtifact();
+ snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ artifacts.add( snap );
+
+ mojo.project.setArtifacts( artifacts );
+ mojo.project.setDependencyArtifacts( artifacts );
+
+ mojo.overWriteReleases = false;
+ mojo.overWriteSnapshots = true;
+ mojo.overWriteIfNewer = false;
+
+ mojo.execute();
+
+ assertUnpacked( snap, true );
+
+ }
+
+ public void testOverWriteIfNewer()
+ throws MojoExecutionException, InterruptedException, IOException
+ {
+
+ Set artifacts = new HashSet();
+ Artifact snap = stubFactory.getSnapshotArtifact();
+ snap.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ artifacts.add( snap );
+
+ mojo.project.setArtifacts( artifacts );
+ mojo.project.setDependencyArtifacts( artifacts );
+
+ mojo.overWriteReleases = false;
+ mojo.overWriteSnapshots = false;
+ mojo.overWriteIfNewer = false;
+
+ mojo.execute();
+
+ File unpackedFile = getUnpackedFile( snap );
+
+ // round down to the last second
+ long time = System.currentTimeMillis();
+ time = time - ( time % 1000 );
+ // set source to be newer and dest to be a known value.
+ snap.getFile().setLastModified( time + 3000 );
+ unpackedFile.setLastModified( time );
+ // wait at least a second for filesystems that only record to the
+ // nearest second.
+ Thread.sleep( 1000 );
+
+ assertEquals( time, unpackedFile.lastModified() );
+ mojo.execute();
+ System.gc();
+ // make sure it didn't overwrite
+ assertEquals( time, unpackedFile.lastModified() );
+
+ mojo.overWriteIfNewer = true;
+
+ mojo.execute();
+
+ assertTrue( time != unpackedFile.lastModified() );
+
+ System.gc();
+ }
+
+ public void assertUnpacked( Artifact artifact, boolean overWrite )
+ throws InterruptedException, MojoExecutionException
+ {
+ File unpackedFile = getUnpackedFile( artifact );
+
+ Thread.sleep( 100 );
+ // round down to the last second
+ long time = System.currentTimeMillis();
+ time = time - ( time % 1000 );
+ unpackedFile.setLastModified( time );
+ // wait at least a second for filesystems that only record to the
+ // nearest second.
+ Thread.sleep( 1000 );
+
+ assertEquals( time, unpackedFile.lastModified() );
+ mojo.execute();
+
+ if ( overWrite )
+ {
+ assertTrue( time != unpackedFile.lastModified() );
+ }
+ else
+ {
+ assertEquals( time, unpackedFile.lastModified() );
+ }
+ }
+}
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestUnpackDependenciesMojo2.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java?view=diff&rev=552524&r1=552523&r2=552524
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java Mon Jul 2 09:06:19 2007
@@ -1,59 +1,59 @@
-package org.apache.maven.plugin.dependency.fromConfiguration;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.io.IOException;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
-
-public class TestArtifactItem
- extends AbstractDependencyMojoTestCase
-{
-
- protected void setUp()
- throws Exception
- {
- setUp( "artifactItems", false );
- }
-
- public void testArtifactItemConstructor()
- throws IOException
- {
- Artifact artifact = stubFactory.createArtifact( "g", "a", "1.0", Artifact.SCOPE_COMPILE, "jar", "one" );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- assertEquals( item.getArtifact(), artifact );
- assertEquals( item.getArtifactId(), artifact.getArtifactId() );
- assertEquals( item.getGroupId(), artifact.getGroupId() );
- assertEquals( item.getVersion(), artifact.getVersion() );
- assertEquals( item.getClassifier(), artifact.getClassifier() );
- assertEquals( item.getType(), artifact.getType() );
- }
-
- public void testArtifactItemDefaultType()
- {
- ArtifactItem item = new ArtifactItem();
- // check type default
- assertEquals( "jar", item.getType() );
- }
-
-}
+package org.apache.maven.plugin.dependency.fromConfiguration;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
+
+public class TestArtifactItem
+ extends AbstractDependencyMojoTestCase
+{
+
+ protected void setUp()
+ throws Exception
+ {
+ setUp( "artifactItems", false );
+ }
+
+ public void testArtifactItemConstructor()
+ throws IOException
+ {
+ Artifact artifact = stubFactory.createArtifact( "g", "a", "1.0", Artifact.SCOPE_COMPILE, "jar", "one" );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ assertEquals( item.getArtifact(), artifact );
+ assertEquals( item.getArtifactId(), artifact.getArtifactId() );
+ assertEquals( item.getGroupId(), artifact.getGroupId() );
+ assertEquals( item.getVersion(), artifact.getVersion() );
+ assertEquals( item.getClassifier(), artifact.getClassifier() );
+ assertEquals( item.getType(), artifact.getType() );
+ }
+
+ public void testArtifactItemDefaultType()
+ {
+ ArtifactItem item = new ArtifactItem();
+ // check type default
+ assertEquals( "jar", item.getType() );
+ }
+
+}
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestArtifactItem.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jul 2 09:06:19 2007
@@ -1 +1 @@
-Author Date Id HeadURL Revision
+Author Date Id Revision