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 [6/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/fromConfiguration/TestCopyMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java?view=diff&rev=552524&r1=552523&r2=552524
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java Mon Jul 2 09:06:19 2007
@@ -1,664 +1,664 @@
-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.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
-import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
-import org.apache.maven.plugin.dependency.utils.DependencyUtil;
-import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
-import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
-import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
-import org.apache.maven.project.MavenProject;
-
-public class TestCopyMojo
- extends AbstractDependencyMojoTestCase
-{
-
- CopyMojo mojo;
-
- public TestCopyMojo()
- {
- super();
- }
-
- protected void setUp()
- throws Exception
- {
- super.setUp( "copy", false );
-
- File testPom = new File( getBasedir(), "target/test-classes/unit/copy-test/plugin-config.xml" );
- mojo = (CopyMojo) lookupMojo( "copy", testPom );
- mojo.setOutputDirectory( new File( this.testDir, "outputDirectory" ) );
- mojo.silent = true;
-
- assertNotNull( mojo );
- assertNotNull( mojo.getProject() );
- // MavenProject project = mojo.getProject();
- // init classifier things
- mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
- mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) );
- mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
- mojo.setArtifactCollector( new StubArtifactCollector() );
-
- }
-
- public ArtifactItem getSingleArtifactItem( boolean removeVersion )
- throws MojoExecutionException
- {
- ArrayList list = mojo.getProcessedArtifactItems( removeVersion );
- return (ArtifactItem) list.get( 0 );
- }
-
- public void testGetArtifactItems()
- throws MojoExecutionException
- {
-
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifact" );
- item.setGroupId( "groupId" );
- item.setVersion( "1.0" );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- ArtifactItem result = getSingleArtifactItem( false );
- assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() );
-
- File output = new File( mojo.getOutputDirectory(), "override" );
- item.setOutputDirectory( output );
- result = getSingleArtifactItem( false );
- assertEquals( output, result.getOutputDirectory() );
- }
-
- public void assertFilesExist( Collection items, boolean exist )
- {
- Iterator iter = items.iterator();
- while ( iter.hasNext() )
- {
- assertFileExists( (ArtifactItem) iter.next(), exist );
- }
- }
-
- public void assertFileExists( ArtifactItem item, boolean exist )
- {
- File file = new File( item.getOutputDirectory(), item.getDestFileName() );
- assertEquals( exist, file.exists() );
- }
-
- public void testMojoDefaults()
- {
- CopyMojo themojo = new CopyMojo();
-
- assertFalse( themojo.isStripVersion() );
- }
-
- public void testCopyFile()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertFilesExist( list, true );
- }
-
- public void testCopyFileNoOverwrite()
- throws IOException, MojoExecutionException
- {
-
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
-
- Iterator iter = list.iterator();
- while ( iter.hasNext() )
- {
- ArtifactItem item = (ArtifactItem) iter.next();
-
- // make sure that we copy even if false is set - MDEP-80
- item.setOverWrite( "false" );
- }
-
- mojo.setArtifactItems( list );
- mojo.execute();
-
- assertFilesExist( list, true );
- }
-
- public void testCopyToLocation()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
- ArtifactItem item = (ArtifactItem) list.get( 0 );
- item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertFilesExist( list, true );
- }
-
- public void testCopyStripVersionSetInMojo()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
- ArtifactItem item = (ArtifactItem) list.get( 0 );
- item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
- mojo.setStripVersion( true );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
- assertEquals( DependencyUtil.getFormattedFileName( item.getArtifact(), true ), item.getDestFileName() );
-
- assertFilesExist( list, true );
- }
-
- public void testNonClassifierStrip()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() );
- mojo.setStripVersion( true );
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertFilesExist( list, true );
- }
-
- public void testNonClassifierNoStrip()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertFilesExist( list, true );
- }
-
- public void testMissingVersionNotFound()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- try
- {
- mojo.execute();
- fail( "Expected Exception Here." );
- }
- catch ( MojoExecutionException e )
- {
- // caught the expected exception.
- }
- }
-
- public List getDependencyList( ArtifactItem item )
- {
- Dependency dep = new Dependency();
- dep.setArtifactId( item.getArtifactId() );
- dep.setClassifier( item.getClassifier() );
- dep.setGroupId( item.getGroupId() );
- dep.setType( item.getType() );
- dep.setVersion( "2.0-SNAPSHOT" );
-
- Dependency dep2 = new Dependency();
- dep2.setArtifactId( item.getArtifactId() );
- dep2.setClassifier( "classifier" );
- dep2.setGroupId( item.getGroupId() );
- dep2.setType( item.getType() );
- dep2.setVersion( "2.1" );
-
- List list = new ArrayList( 2 );
- list.add( dep2 );
- list.add( dep );
-
- return list;
- }
-
- public void testMissingVersionFromDependencies()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- mojo.execute();
- this.assertFileExists( item, true );
- assertEquals( "2.0-SNAPSHOT", item.getVersion() );
- }
-
- public void testMissingVersionFromDependenciesLooseMatch()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item.setClassifier( "sources" );
- item.setType( "jar" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.execute();
- this.assertFileExists( item, true );
- assertEquals( "2.1", item.getVersion() );
- }
-
- public void testMissingVersionFromDependenciesWithClassifier()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- mojo.execute();
- this.assertFileExists( item, true );
- assertEquals( "2.1", item.getVersion() );
- }
-
- public List getDependencyMgtList( ArtifactItem item )
- {
- Dependency dep = new Dependency();
- dep.setArtifactId( item.getArtifactId() );
- dep.setClassifier( item.getClassifier() );
- dep.setGroupId( item.getGroupId() );
- dep.setType( item.getType() );
- dep.setVersion( "3.0-SNAPSHOT" );
-
- Dependency dep2 = new Dependency();
- dep2.setArtifactId( item.getArtifactId() );
- dep2.setClassifier( "classifier" );
- dep2.setGroupId( item.getGroupId() );
- dep2.setType( item.getType() );
- dep2.setVersion( "3.1" );
-
- List list = new ArrayList( 2 );
- list.add( dep2 );
- list.add( dep );
-
- return list;
- }
-
- public void testMissingVersionFromDependencyMgt()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item = new ArtifactItem();
-
- item.setArtifactId( "artifactId-2" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
-
- mojo.execute();
-
- this.assertFileExists( item, true );
- assertEquals( "3.0-SNAPSHOT", item.getVersion() );
- }
-
- public void testMissingVersionFromDependencyMgtLooseMatch()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item = new ArtifactItem();
-
- item.setArtifactId( "artifactId-2" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
-
- item.setType( "jar" );
- mojo.execute();
-
- this.assertFileExists( item, true );
- assertEquals( "3.1", item.getVersion() );
- }
-
- public void testMissingVersionFromDependencyMgtWithClassifier()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item = new ArtifactItem();
-
- item.setArtifactId( "artifactId-2" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
-
- mojo.execute();
-
- this.assertFileExists( item, true );
- assertEquals( "3.1", item.getVersion() );
- }
-
- 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
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
- item.setVersion( "1.0" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- // 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 )
- {
- if ( are )
- {
- assertEquals( "Unable to resolve artifact.", e.getMessage() );
- }
- else
- {
- assertEquals( "Unable to find artifact.", e.getMessage() );
- }
- }
- }
-
- public void testNoArtifactItems()
- {
- try
- {
- mojo.getProcessedArtifactItems( false );
- fail( "Expected Exception" );
- }
- catch ( MojoExecutionException e )
- {
- assertEquals( "There are no artifactItems configured.", e.getMessage() );
- }
-
- }
-
- public void testCopyDontOverWriteReleases()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( release );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
-
- mojo.execute();
-
- File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
-
- Thread.sleep( 100 );
- // round up to the next second
- long time = System.currentTimeMillis() + 1000;
- time = time - ( time % 1000 );
- copiedFile.setLastModified( time );
- Thread.sleep( 100 );
-
- mojo.execute();
-
- assertEquals( time, copiedFile.lastModified() );
- }
-
- public void testCopyDontOverWriteSnapshots()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
-
- mojo.execute();
-
- File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
-
- Thread.sleep( 100 );
- // round up to the next second
- long time = System.currentTimeMillis() + 1000;
- time = time - ( time % 1000 );
- copiedFile.setLastModified( time );
- Thread.sleep( 100 );
-
- mojo.execute();
-
- assertEquals( time, copiedFile.lastModified() );
- }
-
- public void testCopyOverWriteReleases()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( release );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
- mojo.setOverWriteReleases( true );
- mojo.execute();
-
- File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
-
- // round up to the next second
- long time = System.currentTimeMillis() - 2000;
- copiedFile.setLastModified( time );
-
- mojo.execute();
-
- assertTrue( time < copiedFile.lastModified() );
- }
-
- public void testCopyOverWriteSnapshot()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
- mojo.setOverWriteReleases( false );
- mojo.setOverWriteSnapshots( true );
- mojo.execute();
-
- File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
-
- // round up to the next second
- long time = System.currentTimeMillis() - 2000;
- copiedFile.setLastModified( time );
-
- mojo.execute();
-
- assertTrue( time < copiedFile.lastModified() );
- }
-
- public void testCopyOverWriteIfNewer()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
- mojo.setOverWriteIfNewer( true );
- mojo.execute();
-
- File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
-
- // set dest to be old
- long time = System.currentTimeMillis() - 10000;
- time = time - ( time % 1000 );
- copiedFile.setLastModified( time );
-
- // set source to be newer
- artifact.getFile().setLastModified( time + 4000 );
- mojo.execute();
-
- assertTrue( time < copiedFile.lastModified() );
- }
-
-}
+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.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
+import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
+import org.apache.maven.plugin.dependency.utils.DependencyUtil;
+import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
+import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
+import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
+import org.apache.maven.project.MavenProject;
+
+public class TestCopyMojo
+ extends AbstractDependencyMojoTestCase
+{
+
+ CopyMojo mojo;
+
+ public TestCopyMojo()
+ {
+ super();
+ }
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp( "copy", false );
+
+ File testPom = new File( getBasedir(), "target/test-classes/unit/copy-test/plugin-config.xml" );
+ mojo = (CopyMojo) lookupMojo( "copy", testPom );
+ mojo.setOutputDirectory( new File( this.testDir, "outputDirectory" ) );
+ mojo.silent = true;
+
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ // MavenProject project = mojo.getProject();
+ // init classifier things
+ mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
+ mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) );
+ mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
+ mojo.setArtifactCollector( new StubArtifactCollector() );
+
+ }
+
+ public ArtifactItem getSingleArtifactItem( boolean removeVersion )
+ throws MojoExecutionException
+ {
+ ArrayList list = mojo.getProcessedArtifactItems( removeVersion );
+ return (ArtifactItem) list.get( 0 );
+ }
+
+ public void testGetArtifactItems()
+ throws MojoExecutionException
+ {
+
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifact" );
+ item.setGroupId( "groupId" );
+ item.setVersion( "1.0" );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ ArtifactItem result = getSingleArtifactItem( false );
+ assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() );
+
+ File output = new File( mojo.getOutputDirectory(), "override" );
+ item.setOutputDirectory( output );
+ result = getSingleArtifactItem( false );
+ assertEquals( output, result.getOutputDirectory() );
+ }
+
+ public void assertFilesExist( Collection items, boolean exist )
+ {
+ Iterator iter = items.iterator();
+ while ( iter.hasNext() )
+ {
+ assertFileExists( (ArtifactItem) iter.next(), exist );
+ }
+ }
+
+ public void assertFileExists( ArtifactItem item, boolean exist )
+ {
+ File file = new File( item.getOutputDirectory(), item.getDestFileName() );
+ assertEquals( exist, file.exists() );
+ }
+
+ public void testMojoDefaults()
+ {
+ CopyMojo themojo = new CopyMojo();
+
+ assertFalse( themojo.isStripVersion() );
+ }
+
+ public void testCopyFile()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertFilesExist( list, true );
+ }
+
+ public void testCopyFileNoOverwrite()
+ throws IOException, MojoExecutionException
+ {
+
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+
+ Iterator iter = list.iterator();
+ while ( iter.hasNext() )
+ {
+ ArtifactItem item = (ArtifactItem) iter.next();
+
+ // make sure that we copy even if false is set - MDEP-80
+ item.setOverWrite( "false" );
+ }
+
+ mojo.setArtifactItems( list );
+ mojo.execute();
+
+ assertFilesExist( list, true );
+ }
+
+ public void testCopyToLocation()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+ ArtifactItem item = (ArtifactItem) list.get( 0 );
+ item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertFilesExist( list, true );
+ }
+
+ public void testCopyStripVersionSetInMojo()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+ ArtifactItem item = (ArtifactItem) list.get( 0 );
+ item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
+ mojo.setStripVersion( true );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+ assertEquals( DependencyUtil.getFormattedFileName( item.getArtifact(), true ), item.getDestFileName() );
+
+ assertFilesExist( list, true );
+ }
+
+ public void testNonClassifierStrip()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() );
+ mojo.setStripVersion( true );
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertFilesExist( list, true );
+ }
+
+ public void testNonClassifierNoStrip()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getReleaseAndSnapshotArtifacts() );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertFilesExist( list, true );
+ }
+
+ public void testMissingVersionNotFound()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ try
+ {
+ mojo.execute();
+ fail( "Expected Exception Here." );
+ }
+ catch ( MojoExecutionException e )
+ {
+ // caught the expected exception.
+ }
+ }
+
+ public List getDependencyList( ArtifactItem item )
+ {
+ Dependency dep = new Dependency();
+ dep.setArtifactId( item.getArtifactId() );
+ dep.setClassifier( item.getClassifier() );
+ dep.setGroupId( item.getGroupId() );
+ dep.setType( item.getType() );
+ dep.setVersion( "2.0-SNAPSHOT" );
+
+ Dependency dep2 = new Dependency();
+ dep2.setArtifactId( item.getArtifactId() );
+ dep2.setClassifier( "classifier" );
+ dep2.setGroupId( item.getGroupId() );
+ dep2.setType( item.getType() );
+ dep2.setVersion( "2.1" );
+
+ List list = new ArrayList( 2 );
+ list.add( dep2 );
+ list.add( dep );
+
+ return list;
+ }
+
+ public void testMissingVersionFromDependencies()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ mojo.execute();
+ this.assertFileExists( item, true );
+ assertEquals( "2.0-SNAPSHOT", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependenciesLooseMatch()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item.setClassifier( "sources" );
+ item.setType( "jar" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+ this.assertFileExists( item, true );
+ assertEquals( "2.1", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependenciesWithClassifier()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ mojo.execute();
+ this.assertFileExists( item, true );
+ assertEquals( "2.1", item.getVersion() );
+ }
+
+ public List getDependencyMgtList( ArtifactItem item )
+ {
+ Dependency dep = new Dependency();
+ dep.setArtifactId( item.getArtifactId() );
+ dep.setClassifier( item.getClassifier() );
+ dep.setGroupId( item.getGroupId() );
+ dep.setType( item.getType() );
+ dep.setVersion( "3.0-SNAPSHOT" );
+
+ Dependency dep2 = new Dependency();
+ dep2.setArtifactId( item.getArtifactId() );
+ dep2.setClassifier( "classifier" );
+ dep2.setGroupId( item.getGroupId() );
+ dep2.setType( item.getType() );
+ dep2.setVersion( "3.1" );
+
+ List list = new ArrayList( 2 );
+ list.add( dep2 );
+ list.add( dep );
+
+ return list;
+ }
+
+ public void testMissingVersionFromDependencyMgt()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId-2" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
+
+ mojo.execute();
+
+ this.assertFileExists( item, true );
+ assertEquals( "3.0-SNAPSHOT", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependencyMgtLooseMatch()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId-2" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
+
+ item.setType( "jar" );
+ mojo.execute();
+
+ this.assertFileExists( item, true );
+ assertEquals( "3.1", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependencyMgtWithClassifier()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId-2" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
+
+ mojo.execute();
+
+ this.assertFileExists( item, true );
+ assertEquals( "3.1", item.getVersion() );
+ }
+
+ 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
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+ item.setVersion( "1.0" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ // 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 )
+ {
+ if ( are )
+ {
+ assertEquals( "Unable to resolve artifact.", e.getMessage() );
+ }
+ else
+ {
+ assertEquals( "Unable to find artifact.", e.getMessage() );
+ }
+ }
+ }
+
+ public void testNoArtifactItems()
+ {
+ try
+ {
+ mojo.getProcessedArtifactItems( false );
+ fail( "Expected Exception" );
+ }
+ catch ( MojoExecutionException e )
+ {
+ assertEquals( "There are no artifactItems configured.", e.getMessage() );
+ }
+
+ }
+
+ public void testCopyDontOverWriteReleases()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( release );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+
+ mojo.execute();
+
+ File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
+
+ Thread.sleep( 100 );
+ // round up to the next second
+ long time = System.currentTimeMillis() + 1000;
+ time = time - ( time % 1000 );
+ copiedFile.setLastModified( time );
+ Thread.sleep( 100 );
+
+ mojo.execute();
+
+ assertEquals( time, copiedFile.lastModified() );
+ }
+
+ public void testCopyDontOverWriteSnapshots()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+
+ mojo.execute();
+
+ File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
+
+ Thread.sleep( 100 );
+ // round up to the next second
+ long time = System.currentTimeMillis() + 1000;
+ time = time - ( time % 1000 );
+ copiedFile.setLastModified( time );
+ Thread.sleep( 100 );
+
+ mojo.execute();
+
+ assertEquals( time, copiedFile.lastModified() );
+ }
+
+ public void testCopyOverWriteReleases()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( release );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+ mojo.setOverWriteReleases( true );
+ mojo.execute();
+
+ File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
+
+ // round up to the next second
+ long time = System.currentTimeMillis() - 2000;
+ copiedFile.setLastModified( time );
+
+ mojo.execute();
+
+ assertTrue( time < copiedFile.lastModified() );
+ }
+
+ public void testCopyOverWriteSnapshot()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+ mojo.setOverWriteReleases( false );
+ mojo.setOverWriteSnapshots( true );
+ mojo.execute();
+
+ File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
+
+ // round up to the next second
+ long time = System.currentTimeMillis() - 2000;
+ copiedFile.setLastModified( time );
+
+ mojo.execute();
+
+ assertTrue( time < copiedFile.lastModified() );
+ }
+
+ public void testCopyOverWriteIfNewer()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+ mojo.setOverWriteIfNewer( true );
+ mojo.execute();
+
+ File copiedFile = new File( item.getOutputDirectory(), item.getDestFileName() );
+
+ // set dest to be old
+ long time = System.currentTimeMillis() - 10000;
+ time = time - ( time % 1000 );
+ copiedFile.setLastModified( time );
+
+ // set source to be newer
+ artifact.getFile().setLastModified( time + 4000 );
+ mojo.execute();
+
+ assertTrue( time < copiedFile.lastModified() );
+ }
+
+}
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.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/fromConfiguration/TestUnpackMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java?view=diff&rev=552524&r1=552523&r2=552524
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java Mon Jul 2 09:06:19 2007
@@ -1,554 +1,554 @@
-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.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
-import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
-import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
-import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
-import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
-import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
-import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
-import org.apache.maven.project.MavenProject;
-
-public class TestUnpackMojo
- extends AbstractDependencyMojoTestCase
-{
-
- UnpackMojo mojo;
-
- public TestUnpackMojo()
- {
- super();
- }
-
- protected void setUp()
- throws Exception
- {
- super.setUp( "unpack", true );
-
- File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-test/plugin-config.xml" );
- mojo = (UnpackMojo) lookupMojo( "unpack", testPom );
- mojo.setOutputDirectory( new File( this.testDir, "outputDirectory" ) );
- mojo.setMarkersDirectory( new File( this.testDir, "markers" ) );
- mojo.silent = true;
-
- assertNotNull( mojo );
- assertNotNull( mojo.getProject() );
- // MavenProject project = mojo.getProject();
- // init classifier things
- // 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
- + "target/test-classes/unit/unpack-dependencies-test/test.txt" ) );
-
- mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
- mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) );
- mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
- mojo.setArtifactCollector( new StubArtifactCollector() );
- }
-
- public ArtifactItem getSingleArtifactItem( boolean removeVersion )
- throws MojoExecutionException
- {
- ArrayList list = mojo.getProcessedArtifactItems( removeVersion );
- return (ArtifactItem) list.get( 0 );
- }
-
- public void testGetArtifactItems()
- throws MojoExecutionException
- {
-
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifact" );
- item.setGroupId( "groupId" );
- item.setVersion( "1.0" );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- ArtifactItem result = getSingleArtifactItem( false );
- assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() );
-
- File output = new File( mojo.getOutputDirectory(), "override" );
- item.setOutputDirectory( output );
- result = getSingleArtifactItem( false );
- assertEquals( output, result.getOutputDirectory() );
- }
-
- public void assertMarkerFiles( Collection items, boolean exist )
- {
- Iterator iter = items.iterator();
- while ( iter.hasNext() )
- {
- assertMarkerFile( exist, (ArtifactItem) iter.next() );
- }
- }
-
- public void assertMarkerFile( boolean val, ArtifactItem item )
- {
- DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( item.getArtifact(), mojo.getMarkersDirectory() );
- try
- {
- assertEquals( val, handle.isMarkerSet() );
- }
- catch ( MojoExecutionException e )
- {
- fail( e.getLongMessage() );
- }
- }
-
- public void testUnpackFile()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertMarkerFiles( list, true );
- }
-
- public void testUnpackToLocation()
- throws IOException, MojoExecutionException
- {
- ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
- ArtifactItem item = (ArtifactItem) list.get( 0 );
- item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
-
- mojo.setArtifactItems( list );
-
- mojo.execute();
-
- assertMarkerFiles( list, true );
- }
-
- public void testMissingVersionNotFound()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- try
- {
- mojo.execute();
- fail( "Expected Exception Here." );
- }
- catch ( MojoExecutionException e )
- {
- // caught the expected exception.
- }
- }
-
- public List getDependencyList( ArtifactItem item )
- {
- Dependency dep = new Dependency();
- dep.setArtifactId( item.getArtifactId() );
- dep.setClassifier( item.getClassifier() );
- dep.setGroupId( item.getGroupId() );
- dep.setType( item.getType() );
- dep.setVersion( "2.0-SNAPSHOT" );
-
- Dependency dep2 = new Dependency();
- dep2.setArtifactId( item.getArtifactId() );
- dep2.setClassifier( "classifier" );
- dep2.setGroupId( item.getGroupId() );
- dep2.setType( item.getType() );
- dep2.setVersion( "2.1" );
-
- List list = new ArrayList( 2 );
- list.add( dep2 );
- list.add( dep );
-
- return list;
- }
-
- public void testMissingVersionFromDependencies()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "jar" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- mojo.execute();
- assertMarkerFile( true, item );
- assertEquals( "2.0-SNAPSHOT", item.getVersion() );
- }
-
- public void testMissingVersionFromDependenciesWithClassifier()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "war" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- mojo.execute();
- assertMarkerFile( true, item );
- assertEquals( "2.1", item.getVersion() );
- }
-
- public List getDependencyMgtList( ArtifactItem item )
- {
- Dependency dep = new Dependency();
- dep.setArtifactId( item.getArtifactId() );
- dep.setClassifier( item.getClassifier() );
- dep.setGroupId( item.getGroupId() );
- dep.setType( item.getType() );
- dep.setVersion( "3.0-SNAPSHOT" );
-
- Dependency dep2 = new Dependency();
- dep2.setArtifactId( item.getArtifactId() );
- dep2.setClassifier( "classifier" );
- dep2.setGroupId( item.getGroupId() );
- dep2.setType( item.getType() );
- dep2.setVersion( "3.1" );
-
- List list = new ArrayList( 2 );
- list.add( dep2 );
- list.add( dep );
-
- return list;
- }
-
- public void testMissingVersionFromDependencyMgt()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "jar" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item = new ArtifactItem();
-
- item.setArtifactId( "artifactId-2" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "jar" );
-
- ArrayList list = new ArrayList();
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
-
- mojo.execute();
- assertMarkerFile( true, item );
- assertEquals( "3.0-SNAPSHOT", item.getVersion() );
- }
-
- public void testMissingVersionFromDependencyMgtWithClassifier()
- throws MojoExecutionException
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "jar" );
-
- MavenProject project = mojo.getProject();
- project.setDependencies( getDependencyList( item ) );
-
- item = new ArtifactItem();
-
- item.setArtifactId( "artifactId-2" );
- item.setClassifier( "classifier" );
- item.setGroupId( "groupId" );
- item.setType( "jar" );
-
- ArrayList list = new ArrayList();
- list.add( item );
-
- mojo.setArtifactItems( list );
-
- project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
-
- mojo.execute();
-
- assertMarkerFile( true, item );
- assertEquals( "3.1", item.getVersion() );
- }
-
- 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
- {
- ArtifactItem item = new ArtifactItem();
-
- item.setArtifactId( "artifactId" );
- item.setClassifier( "" );
- item.setGroupId( "groupId" );
- item.setType( "type" );
- item.setVersion( "1.0" );
-
- ArrayList list = new ArrayList();
- list.add( item );
- mojo.setArtifactItems( list );
-
- // 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 )
- {
- if ( are )
- {
- assertEquals( "Unable to resolve artifact.", e.getMessage() );
- }
- else
- {
- assertEquals( "Unable to find artifact.", e.getMessage() );
- }
- }
- }
-
- public void testNoArtifactItems()
- {
- try
- {
- mojo.getProcessedArtifactItems( false );
- fail( "Expected Exception" );
- }
- catch ( MojoExecutionException e )
- {
- assertEquals( "There are no artifactItems configured.", e.getMessage() );
- }
-
- }
-
- public void testUnpackDontOverWriteReleases()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( release );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
-
- mojo.execute();
-
- assertUnpacked( item, false );
- }
-
- public void testUnpackDontOverWriteSnapshots()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
-
- mojo.execute();
-
- assertUnpacked( item, false );
- }
-
- public void testUnpackOverWriteReleases()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact release = stubFactory.getReleaseArtifact();
- release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( release );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
- mojo.setOverWriteReleases( true );
- mojo.execute();
-
- assertUnpacked( item, true );
- }
-
- public void testUnpackOverWriteSnapshot()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
-
- mojo.setOverWriteIfNewer( false );
- mojo.setOverWriteReleases( false );
- mojo.setOverWriteSnapshots( true );
- mojo.execute();
-
- assertUnpacked( item, true );
- }
-
- public void testUnpackOverWriteIfNewer()
- throws IOException, MojoExecutionException, InterruptedException
- {
- stubFactory.setCreateFiles( true );
- Artifact artifact = stubFactory.getSnapshotArtifact();
- artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
-
- ArtifactItem item = new ArtifactItem( artifact );
-
- ArrayList list = new ArrayList( 1 );
- list.add( item );
- mojo.setArtifactItems( list );
- mojo.setOverWriteIfNewer( true );
- mojo.execute();
- File unpackedFile = getUnpackedFile( item );
-
- // round down to the last second
- long time = System.currentTimeMillis();
- time = time - ( time % 1000 );
- // go back 10 more seconds for linux
- time -= 10000;
- // set to known value
- unpackedFile.setLastModified( time );
- // set source to be newer
- artifact.getFile().setLastModified( time + 4000 );
-
- // manually set markerfile (must match getMarkerFile in
- // DefaultMarkerFileHandler)
- File marker = new File( mojo.getMarkersDirectory(), artifact.getId().replace( ':', '-' ) + ".marker" );
- marker.setLastModified( time );
-
- assertTrue( time == unpackedFile.lastModified() );
- mojo.execute();
- assertTrue( time != unpackedFile.lastModified() );
- }
-
- public void assertUnpacked( ArtifactItem item, boolean overWrite )
- throws InterruptedException, MojoExecutionException
- {
-
- File unpackedFile = getUnpackedFile( item );
-
- Thread.sleep( 100 );
- // round down to the last second
- long time = System.currentTimeMillis();
- time = time - ( time % 1000 );
- unpackedFile.setLastModified( time );
-
- assertEquals( time, unpackedFile.lastModified() );
- mojo.execute();
-
- if ( overWrite )
- {
- assertTrue( time != unpackedFile.lastModified() );
- }
- else
- {
- assertEquals( time, unpackedFile.lastModified() );
- }
- }
-
- public File getUnpackedFile( ArtifactItem item )
- {
- File unpackedFile = new File( item.getOutputDirectory(), DependencyArtifactStubFactory.getUnpackableFileName( item
- .getArtifact() ) );
-
- assertTrue( unpackedFile.exists() );
- return unpackedFile;
-
- }
-}
+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.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase;
+import org.apache.maven.plugin.dependency.testUtils.DependencyArtifactStubFactory;
+import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
+import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
+import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
+import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
+import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
+import org.apache.maven.project.MavenProject;
+
+public class TestUnpackMojo
+ extends AbstractDependencyMojoTestCase
+{
+
+ UnpackMojo mojo;
+
+ public TestUnpackMojo()
+ {
+ super();
+ }
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp( "unpack", true );
+
+ File testPom = new File( getBasedir(), "target/test-classes/unit/unpack-test/plugin-config.xml" );
+ mojo = (UnpackMojo) lookupMojo( "unpack", testPom );
+ mojo.setOutputDirectory( new File( this.testDir, "outputDirectory" ) );
+ mojo.setMarkersDirectory( new File( this.testDir, "markers" ) );
+ mojo.silent = true;
+
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ // MavenProject project = mojo.getProject();
+ // init classifier things
+ // 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
+ + "target/test-classes/unit/unpack-dependencies-test/test.txt" ) );
+
+ mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
+ mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) );
+ mojo.setLocal( new StubArtifactRepository( this.testDir.getAbsolutePath() ) );
+ mojo.setArtifactCollector( new StubArtifactCollector() );
+ }
+
+ public ArtifactItem getSingleArtifactItem( boolean removeVersion )
+ throws MojoExecutionException
+ {
+ ArrayList list = mojo.getProcessedArtifactItems( removeVersion );
+ return (ArtifactItem) list.get( 0 );
+ }
+
+ public void testGetArtifactItems()
+ throws MojoExecutionException
+ {
+
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifact" );
+ item.setGroupId( "groupId" );
+ item.setVersion( "1.0" );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ ArtifactItem result = getSingleArtifactItem( false );
+ assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() );
+
+ File output = new File( mojo.getOutputDirectory(), "override" );
+ item.setOutputDirectory( output );
+ result = getSingleArtifactItem( false );
+ assertEquals( output, result.getOutputDirectory() );
+ }
+
+ public void assertMarkerFiles( Collection items, boolean exist )
+ {
+ Iterator iter = items.iterator();
+ while ( iter.hasNext() )
+ {
+ assertMarkerFile( exist, (ArtifactItem) iter.next() );
+ }
+ }
+
+ public void assertMarkerFile( boolean val, ArtifactItem item )
+ {
+ DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( item.getArtifact(), mojo.getMarkersDirectory() );
+ try
+ {
+ assertEquals( val, handle.isMarkerSet() );
+ }
+ catch ( MojoExecutionException e )
+ {
+ fail( e.getLongMessage() );
+ }
+ }
+
+ public void testUnpackFile()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertMarkerFiles( list, true );
+ }
+
+ public void testUnpackToLocation()
+ throws IOException, MojoExecutionException
+ {
+ ArrayList list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() );
+ ArtifactItem item = (ArtifactItem) list.get( 0 );
+ item.setOutputDirectory( new File( mojo.getOutputDirectory(), "testOverride" ) );
+
+ mojo.setArtifactItems( list );
+
+ mojo.execute();
+
+ assertMarkerFiles( list, true );
+ }
+
+ public void testMissingVersionNotFound()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ try
+ {
+ mojo.execute();
+ fail( "Expected Exception Here." );
+ }
+ catch ( MojoExecutionException e )
+ {
+ // caught the expected exception.
+ }
+ }
+
+ public List getDependencyList( ArtifactItem item )
+ {
+ Dependency dep = new Dependency();
+ dep.setArtifactId( item.getArtifactId() );
+ dep.setClassifier( item.getClassifier() );
+ dep.setGroupId( item.getGroupId() );
+ dep.setType( item.getType() );
+ dep.setVersion( "2.0-SNAPSHOT" );
+
+ Dependency dep2 = new Dependency();
+ dep2.setArtifactId( item.getArtifactId() );
+ dep2.setClassifier( "classifier" );
+ dep2.setGroupId( item.getGroupId() );
+ dep2.setType( item.getType() );
+ dep2.setVersion( "2.1" );
+
+ List list = new ArrayList( 2 );
+ list.add( dep2 );
+ list.add( dep );
+
+ return list;
+ }
+
+ public void testMissingVersionFromDependencies()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "jar" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ mojo.execute();
+ assertMarkerFile( true, item );
+ assertEquals( "2.0-SNAPSHOT", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependenciesWithClassifier()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "war" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ mojo.execute();
+ assertMarkerFile( true, item );
+ assertEquals( "2.1", item.getVersion() );
+ }
+
+ public List getDependencyMgtList( ArtifactItem item )
+ {
+ Dependency dep = new Dependency();
+ dep.setArtifactId( item.getArtifactId() );
+ dep.setClassifier( item.getClassifier() );
+ dep.setGroupId( item.getGroupId() );
+ dep.setType( item.getType() );
+ dep.setVersion( "3.0-SNAPSHOT" );
+
+ Dependency dep2 = new Dependency();
+ dep2.setArtifactId( item.getArtifactId() );
+ dep2.setClassifier( "classifier" );
+ dep2.setGroupId( item.getGroupId() );
+ dep2.setType( item.getType() );
+ dep2.setVersion( "3.1" );
+
+ List list = new ArrayList( 2 );
+ list.add( dep2 );
+ list.add( dep );
+
+ return list;
+ }
+
+ public void testMissingVersionFromDependencyMgt()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "jar" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId-2" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "jar" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
+
+ mojo.execute();
+ assertMarkerFile( true, item );
+ assertEquals( "3.0-SNAPSHOT", item.getVersion() );
+ }
+
+ public void testMissingVersionFromDependencyMgtWithClassifier()
+ throws MojoExecutionException
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "jar" );
+
+ MavenProject project = mojo.getProject();
+ project.setDependencies( getDependencyList( item ) );
+
+ item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId-2" );
+ item.setClassifier( "classifier" );
+ item.setGroupId( "groupId" );
+ item.setType( "jar" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+
+ mojo.setArtifactItems( list );
+
+ project.getDependencyManagement().setDependencies( getDependencyMgtList( item ) );
+
+ mojo.execute();
+
+ assertMarkerFile( true, item );
+ assertEquals( "3.1", item.getVersion() );
+ }
+
+ 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
+ {
+ ArtifactItem item = new ArtifactItem();
+
+ item.setArtifactId( "artifactId" );
+ item.setClassifier( "" );
+ item.setGroupId( "groupId" );
+ item.setType( "type" );
+ item.setVersion( "1.0" );
+
+ ArrayList list = new ArrayList();
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ // 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 )
+ {
+ if ( are )
+ {
+ assertEquals( "Unable to resolve artifact.", e.getMessage() );
+ }
+ else
+ {
+ assertEquals( "Unable to find artifact.", e.getMessage() );
+ }
+ }
+ }
+
+ public void testNoArtifactItems()
+ {
+ try
+ {
+ mojo.getProcessedArtifactItems( false );
+ fail( "Expected Exception" );
+ }
+ catch ( MojoExecutionException e )
+ {
+ assertEquals( "There are no artifactItems configured.", e.getMessage() );
+ }
+
+ }
+
+ public void testUnpackDontOverWriteReleases()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( release );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+
+ mojo.execute();
+
+ assertUnpacked( item, false );
+ }
+
+ public void testUnpackDontOverWriteSnapshots()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+
+ mojo.execute();
+
+ assertUnpacked( item, false );
+ }
+
+ public void testUnpackOverWriteReleases()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact release = stubFactory.getReleaseArtifact();
+ release.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( release );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+ mojo.setOverWriteReleases( true );
+ mojo.execute();
+
+ assertUnpacked( item, true );
+ }
+
+ public void testUnpackOverWriteSnapshot()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+
+ mojo.setOverWriteIfNewer( false );
+ mojo.setOverWriteReleases( false );
+ mojo.setOverWriteSnapshots( true );
+ mojo.execute();
+
+ assertUnpacked( item, true );
+ }
+
+ public void testUnpackOverWriteIfNewer()
+ throws IOException, MojoExecutionException, InterruptedException
+ {
+ stubFactory.setCreateFiles( true );
+ Artifact artifact = stubFactory.getSnapshotArtifact();
+ artifact.getFile().setLastModified( System.currentTimeMillis() - 2000 );
+
+ ArtifactItem item = new ArtifactItem( artifact );
+
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+ mojo.setOverWriteIfNewer( true );
+ mojo.execute();
+ File unpackedFile = getUnpackedFile( item );
+
+ // round down to the last second
+ long time = System.currentTimeMillis();
+ time = time - ( time % 1000 );
+ // go back 10 more seconds for linux
+ time -= 10000;
+ // set to known value
+ unpackedFile.setLastModified( time );
+ // set source to be newer
+ artifact.getFile().setLastModified( time + 4000 );
+
+ // manually set markerfile (must match getMarkerFile in
+ // DefaultMarkerFileHandler)
+ File marker = new File( mojo.getMarkersDirectory(), artifact.getId().replace( ':', '-' ) + ".marker" );
+ marker.setLastModified( time );
+
+ assertTrue( time == unpackedFile.lastModified() );
+ mojo.execute();
+ assertTrue( time != unpackedFile.lastModified() );
+ }
+
+ public void assertUnpacked( ArtifactItem item, boolean overWrite )
+ throws InterruptedException, MojoExecutionException
+ {
+
+ File unpackedFile = getUnpackedFile( item );
+
+ Thread.sleep( 100 );
+ // round down to the last second
+ long time = System.currentTimeMillis();
+ time = time - ( time % 1000 );
+ unpackedFile.setLastModified( time );
+
+ assertEquals( time, unpackedFile.lastModified() );
+ mojo.execute();
+
+ if ( overWrite )
+ {
+ assertTrue( time != unpackedFile.lastModified() );
+ }
+ else
+ {
+ assertEquals( time, unpackedFile.lastModified() );
+ }
+ }
+
+ public File getUnpackedFile( ArtifactItem item )
+ {
+ File unpackedFile = new File( item.getOutputDirectory(), DependencyArtifactStubFactory.getUnpackableFileName( item
+ .getArtifact() ) );
+
+ assertTrue( unpackedFile.exists() );
+ return unpackedFile;
+
+ }
+}
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jul 2 09:06:19 2007
@@ -1 +1 @@
-Author Date Id HeadURL Revision
+Author Date Id Revision