You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/07/19 04:35:54 UTC
svn commit: r557464 - in
/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src:
main/java/org/apache/maven/plugin/dependency/
main/java/org/apache/maven/plugin/dependency/fromConfiguration/
main/java/org/apache/maven/plugin/dependency/utils/marke...
Author: brianf
Date: Wed Jul 18 19:35:53 2007
New Revision: 557464
URL: http://svn.apache.org/viewvc?view=rev&rev=557464
Log:
applied patch from Damian Bradicich for MDEP-47
Added:
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/utils/markers/UnpackFileMarkerHandler.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/TestIncludeExcludeUnpackMojo.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/testUtils/stubs/StubUnpackFileMarkerHandler.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestUnpackMarkerFileHandler.java
Modified:
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-artifacts.apt
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-project-dependencies.apt
maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyMojo.java Wed Jul 18 19:35:53 2007
@@ -147,22 +147,6 @@
*/
protected boolean outputAbsoluteArtifactFilename;
- /**
- * A set of file patterns to include when unpacking the
- * artifact.
- *
- * @parameter expression="${mdep.unpack.includes}"
- */
- private String includes;
-
- /**
- * A set of file patterns to exclude when unpacking the
- * artifact.
- *
- * @parameter expression="${mdep.unpack.excludes}"
- */
- private String excludes;
-
private Log log;
/**
@@ -216,6 +200,12 @@
throw new MojoExecutionException( "Error copying artifact from " + artifact + " to " + destFile, e );
}
}
+
+ protected void unpack ( File file, File location )
+ throws MojoExecutionException
+ {
+ unpack( file, location, null, null);
+ }
/**
* Unpacks the archive file.
@@ -223,8 +213,12 @@
* @param file File to be unpacked.
* @param location Location where to put the unpacked
* files.
+ * @param includes Comma separated list of file patterns to include
+ * i.e. **\/*.xml, **\/*.properties
+ * @param excludes Comma separated list of file patterns to exclude
+ * i.e. **\/*.xml, **\/*.properties
*/
- protected void unpack ( File file, File location )
+ protected void unpack ( File file, File location, String includes, String excludes )
throws MojoExecutionException
{
@@ -254,7 +248,7 @@
if ( StringUtils.isNotEmpty( includes ) )
{
- selectors[0].setIncludes( this.includes.split( "," ) );
+ selectors[0].setIncludes( includes.split( "," ) );
}
unArchiver.setFileSelectors( selectors );
@@ -410,21 +404,5 @@
public void setArtifactMetadataSource ( ArtifactMetadataSource theArtifactMetadataSource )
{
this.artifactMetadataSource = theArtifactMetadataSource;
- }
-
- /**
- * @param excludes The items to exclude
- */
- public void setExcludes ( String excludes )
- {
- this.excludes = excludes;
- }
-
- /**
- * @param includes The items to include
- */
- public void setIncludes ( String includes )
- {
- this.includes = includes;
}
}
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/UnpackDependenciesMojo.java Wed Jul 18 19:35:53 2007
@@ -45,8 +45,23 @@
public class UnpackDependenciesMojo
extends AbstractFromDependenciesMojo
{
+ /**
+ * A comma separated list of file patterns to include when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.unpack.includes}"
+ */
+ private String includes;
/**
+ * A comma separated list of file patterns to exclude when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.unpack.excludes}"
+ */
+ private String excludes;
+
+ /**
* Main entry into mojo. This method gets the dependencies and iterates
* through each one passing it to DependencyUtil.unpackFile().
*
@@ -70,7 +85,7 @@
destDir = DependencyUtil.getFormattedOutputDirectory( useSubDirectoryPerType, useSubDirectoryPerArtifact,
useRepositoryLayout, stripVersion, outputDirectory,
artifact );
- unpack( artifact.getFile(), destDir );
+ unpack( artifact.getFile(), destDir, getIncludes(), getExcludes() );
DefaultFileMarkerHandler handler = new DefaultFileMarkerHandler( artifact, this.markersDirectory );
handler.setMarker();
}
@@ -87,5 +102,41 @@
{
return new MarkerFileFilter( this.overWriteReleases, this.overWriteSnapshots, this.overWriteIfNewer,
new DefaultFileMarkerHandler( this.markersDirectory ) );
+ }
+
+ /**
+ * @return Returns a comma separated list of excluded items
+ */
+ public String getExcludes ()
+ {
+ return this.excludes;
+ }
+
+ /**
+ * @param excludes
+ * A comma separated list of items to exclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setExcludes ( String excludes )
+ {
+ this.excludes = excludes;
+ }
+
+ /**
+ * @return Returns a comma seperated list of included items
+ */
+ public String getIncludes()
+ {
+ return this.includes;
+ }
+
+ /**
+ * @param includes
+ * A comma seperated list of items to inmclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setIncludes ( String includes )
+ {
+ this.includes = includes;
}
}
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java Wed Jul 18 19:35:53 2007
@@ -100,6 +100,22 @@
* Artifact Item
*/
private Artifact artifact;
+
+ /**
+ * A comma separated list of file patterns to include when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.artifact.item.unpack.includes}"
+ */
+ private String includes;
+
+ /**
+ * A comma separated list of file patterns to exclude when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.artifact.item.unpack.excludes}"
+ */
+ private String excludes;
public ArtifactItem()
{
@@ -309,5 +325,41 @@
public void setArtifact( Artifact artifact )
{
this.artifact = artifact;
+ }
+
+ /**
+ * @return Returns a comma separated list of excluded items
+ */
+ public String getExcludes ()
+ {
+ return this.excludes;
+ }
+
+ /**
+ * @param excludes
+ * A comma seperated list of items to exclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setExcludes ( String excludes )
+ {
+ this.excludes = excludes;
+ }
+
+ /**
+ * @return Returns a comma seperated list of included items
+ */
+ public String getIncludes()
+ {
+ return this.includes;
+ }
+
+ /**
+ * @param includes
+ * A comma seperated list of items to inmclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setIncludes ( String includes )
+ {
+ this.includes = includes;
}
}
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java Wed Jul 18 19:35:53 2007
@@ -28,10 +28,11 @@
import org.apache.maven.plugin.dependency.utils.DependencyUtil;
import org.apache.maven.plugin.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.plugin.dependency.utils.filters.MarkerFileFilter;
-import org.apache.maven.plugin.dependency.utils.markers.DefaultFileMarkerHandler;
import org.apache.maven.plugin.dependency.utils.markers.MarkerHandler;
+import org.apache.maven.plugin.dependency.utils.markers.UnpackFileMarkerHandler;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.util.StringUtils;
/**
* Goal that retrieves a list of artifacts from the repository and unpacks them
@@ -53,6 +54,22 @@
* @parameter expression="${project.build.directory}/dependency-maven-plugin-markers"
*/
private File markersDirectory;
+
+ /**
+ * A comma separated list of file patterns to include when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.unpack.includes}"
+ */
+ private String includes;
+
+ /**
+ * A comma separated list of file patterns to exclude when unpacking the
+ * artifact.
+ *
+ * @parameter expression="${mdep.unpack.excludes}"
+ */
+ private String excludes;
/**
* Main entry into mojo. This method gets the ArtifactItems and iterates
@@ -100,18 +117,30 @@
private void unpackArtifact( ArtifactItem artifactItem )
throws MojoExecutionException
{
- Artifact artifact = artifactItem.getArtifact();
-
- MarkerHandler handler = new DefaultFileMarkerHandler( artifact, this.markersDirectory );
+ MarkerHandler handler = new UnpackFileMarkerHandler( artifactItem, this.markersDirectory );
- unpack( artifact.getFile(), artifactItem.getOutputDirectory() );
+ //Allow the artifactItem includes/excludes to override the global includes/excludes
+ String includes = getIncludes();
+ String excludes = getExcludes();
+
+ if ( StringUtils.isNotEmpty(artifactItem.getIncludes()) )
+ {
+ includes = artifactItem.getIncludes();
+ }
+
+ if ( StringUtils.isNotEmpty(artifactItem.getExcludes()) )
+ {
+ excludes = artifactItem.getExcludes();
+ }
+
+ unpack( artifactItem.getArtifact().getFile(), artifactItem.getOutputDirectory(), includes, excludes );
handler.setMarker();
}
ArtifactItemFilter getMarkedArtifactFilter( ArtifactItem item )
{
- MarkerHandler handler = new DefaultFileMarkerHandler( item.getArtifact(), this.markersDirectory );
+ MarkerHandler handler = new UnpackFileMarkerHandler( item, this.markersDirectory );
return new MarkerFileFilter( this.isOverWriteReleases(), this.isOverWriteSnapshots(),
this.isOverWriteIfNewer(), handler );
@@ -132,5 +161,42 @@
public void setMarkersDirectory( File theMarkersDirectory )
{
this.markersDirectory = theMarkersDirectory;
+ }
+
+
+ /**
+ * @return Returns a comma separated list of excluded items
+ */
+ public String getExcludes ()
+ {
+ return this.excludes;
+ }
+
+ /**
+ * @param excludes
+ * A comma seperated list of items to exclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setExcludes ( String excludes )
+ {
+ this.excludes = excludes;
+ }
+
+ /**
+ * @return Returns a comma seperated list of included items
+ */
+ public String getIncludes()
+ {
+ return this.includes;
+ }
+
+ /**
+ * @param includes
+ * A comma seperated list of items to inmclude
+ * i.e. **\/*.xml, **\/*.properties
+ */
+ public void setIncludes ( String includes )
+ {
+ this.includes = includes;
}
}
Added: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/utils/markers/UnpackFileMarkerHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/utils/markers/UnpackFileMarkerHandler.java?view=auto&rev=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/utils/markers/UnpackFileMarkerHandler.java (added)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/main/java/org/apache/maven/plugin/dependency/utils/markers/UnpackFileMarkerHandler.java Wed Jul 18 19:35:53 2007
@@ -0,0 +1,95 @@
+package org.apache.maven.plugin.dependency.utils.markers;
+
+/*
+ * 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 org.apache.maven.plugin.dependency.fromConfiguration.ArtifactItem;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * @author <a href="mailto:dbradicich@comcast.net">Damian Bradicich</a>
+ * @version $Id: UnpackFileMarkerHandler.java 552528 2007-07-02 16:12:47 +0000 (Mon, 02 Jul 2007) markh $
+ */
+public class UnpackFileMarkerHandler extends DefaultFileMarkerHandler
+{
+ protected ArtifactItem artifactItem;
+
+ public UnpackFileMarkerHandler( File markerFilesDirectory )
+ {
+ super( markerFilesDirectory );
+ }
+
+ public UnpackFileMarkerHandler( ArtifactItem artifactItem, File markerFilesDirectory )
+ {
+ this( markerFilesDirectory );
+ setArtifactItem( artifactItem );
+ }
+
+ protected File getMarkerFile()
+ {
+ /**
+ * Build a hash of all include/exclude strings, to determine
+ * if an artifactItem has been unpacked using the include/exclude
+ * parameters, this will allow an artifact to be included multiple
+ * times with different include/exclude parameters
+ */
+ File markerFile = null;
+ if ( this.artifactItem == null
+ || ( StringUtils.isEmpty( this.artifactItem.getIncludes() )
+ && StringUtils.isEmpty( this.artifactItem.getExcludes() ) ) )
+ {
+ markerFile = super.getMarkerFile();
+ }
+ else
+ {
+ int includeExcludeHash = 0;
+
+ if ( StringUtils.isNotEmpty( this.artifactItem.getIncludes() ) )
+ {
+ includeExcludeHash += this.artifactItem.getIncludes().hashCode();
+ }
+
+ if ( StringUtils.isNotEmpty( this.artifactItem.getExcludes() ) )
+ {
+ includeExcludeHash += this.artifactItem.getExcludes().hashCode();
+ }
+
+ markerFile = new File( this.markerFilesDirectory, this.artifact.getId().replace( ':', '-' ) + includeExcludeHash );
+ }
+
+ return markerFile;
+ }
+
+ public void setArtifactItem( ArtifactItem artifactItem )
+ {
+ this.artifactItem = artifactItem;
+
+ if (this.artifactItem != null)
+ {
+ setArtifact( this.artifactItem.getArtifact() );
+ }
+ }
+
+ public ArtifactItem getArtifactItem( )
+ {
+ return this.artifactItem;
+ }
+}
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-artifacts.apt
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-artifacts.apt?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-artifacts.apt (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-artifacts.apt Wed Jul 18 19:35:53 2007
@@ -58,6 +58,12 @@
<destFileName>optional-new-name.jar</destFileName>
</artifactItem>
</artifactItems>
+ <includes>
+ <include>**/*.class</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ </excludes>
<outputDirectory>${project.build.directory}/wars</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
@@ -113,6 +119,7 @@
[...]
</project>
+---+
+
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-project-dependencies.apt
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-project-dependencies.apt?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-project-dependencies.apt (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/site/apt/examples/unpacking-project-dependencies.apt Wed Jul 18 19:35:53 2007
@@ -48,6 +48,12 @@
<goal>unpack-dependencies</goal>
</goals>
<configuration>
+ <includes>
+ <include>**/*.class</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.properties</exclude>
+ </excludes>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
@@ -60,5 +66,6 @@
[...]
</project>
+---+
+
Added: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/TestIncludeExcludeUnpackMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/TestIncludeExcludeUnpackMojo.java?view=auto&rev=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/TestIncludeExcludeUnpackMojo.java (added)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/TestIncludeExcludeUnpackMojo.java Wed Jul 18 19:35:53 2007
@@ -0,0 +1,250 @@
+package org.apache.maven.plugin.dependency;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.fromConfiguration.ArtifactItem;
+import org.apache.maven.plugin.dependency.fromConfiguration.UnpackMojo;
+import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
+import org.apache.maven.plugin.dependency.utils.markers.UnpackFileMarkerHandler;
+import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
+import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
+import org.apache.maven.project.MavenProject;
+
+public class TestIncludeExcludeUnpackMojo
+ extends AbstractDependencyMojoTestCase
+{
+ private final String PACKED_FILE = "test.zip";
+
+ private final String UNPACKED_FILE_PREFIX = "test";
+ private final String UNPACKED_FILE_SUFFIX = ".txt";
+
+ private final String PACKED_FILE_PATH = "target/test-classes/unit/unpack-dependencies-test/" + PACKED_FILE;
+
+ UnpackMojo mojo;
+
+ protected void setUp()
+ throws Exception
+ {
+ // required for mojo lookups to work
+ 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.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 + PACKED_FILE_PATH ) );
+ Artifact artifact = stubFactory.createArtifact( "test", "test", "1.0", Artifact.SCOPE_COMPILE, "jar", null );
+ ArtifactItem item = stubFactory.getArtifactItem( artifact );
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ MavenProject project = mojo.getProject();
+
+ mojo.setFactory( DependencyTestUtils.getArtifactFactory() );
+ mojo.setResolver( new StubArtifactResolver( stubFactory, false, false ) );
+ mojo.setMarkersDirectory( new File( this.testDir, "markers" ) );
+ mojo.setArtifactCollector( new StubArtifactCollector() );
+ mojo.setArtifactItems( list );
+ }
+
+ protected void tearDown()
+ {
+ super.tearDown();
+
+ mojo = null;
+ System.gc();
+ }
+
+ 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 )
+ {
+ UnpackFileMarkerHandler handle = new UnpackFileMarkerHandler( item, mojo.getMarkersDirectory() );
+ try
+ {
+ assertEquals( val, handle.isMarkerSet() );
+ }
+ catch ( MojoExecutionException e )
+ {
+ fail( e.getLongMessage() );
+ }
+ }
+
+ private void assertUnpacked(boolean unpacked, String fileName)
+ {
+ File destFile = new File( mojo.getOutputDirectory().getAbsolutePath() , fileName );
+ assertEquals(unpacked, destFile.exists());
+ }
+
+ /**
+ * This test will validate that only the 1 and 11 files get unpacked
+ * @throws Exception
+ */
+ public void testUnpackIncludesManyFiles()
+ throws Exception
+ {
+ mojo.setIncludes("**/*1" + UNPACKED_FILE_SUFFIX);
+ mojo.execute();
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ /**
+ * This test will verify only the 2 file gets unpacked
+ * @throws Exception
+ */
+ public void testUnpackIncludesSingleFile()
+ throws Exception
+ {
+ mojo.setIncludes("**/test2" + UNPACKED_FILE_SUFFIX);
+ mojo.execute();
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ /**
+ * This test will verify all files get unpacked
+ * @throws Exception
+ */
+ public void testUnpackIncludesAllFiles()
+ throws Exception
+ {
+ mojo.setIncludes("**/*");
+ mojo.execute();
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ /**
+ * This test will validate that only the 2 and 3 files get unpacked
+ * @throws Exception
+ */
+ public void testUnpackExcludesManyFiles()
+ throws Exception
+ {
+ mojo.setExcludes("**/*1" + UNPACKED_FILE_SUFFIX);
+ mojo.execute();
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ /**
+ * This test will verify only the 1, 11 & 3 files get unpacked
+ * @throws Exception
+ */
+ public void testUnpackExcludesSingleFile()
+ throws Exception
+ {
+ mojo.setExcludes("**/test2" + UNPACKED_FILE_SUFFIX);
+ mojo.execute();
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ /**
+ * This test will verify no files get unpacked
+ * @throws Exception
+ */
+ public void testUnpackExcludesAllFiles()
+ throws Exception
+ {
+ mojo.setExcludes("**/*");
+ mojo.execute();
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(false, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ public void testNoIncludeExcludes()
+ throws Exception
+ {
+ mojo.execute();
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX);
+ assertUnpacked(true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX);
+ }
+
+ public void testIncludeArtifactItemOverride()
+ throws Exception
+ {
+ Artifact artifact = stubFactory.createArtifact( "test", "test", "1.0", Artifact.SCOPE_COMPILE, "jar", null );
+ ArtifactItem item = stubFactory.getArtifactItem( artifact );
+ item.setIncludes("**/*");
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+ mojo.setIncludes( "**/test2" + UNPACKED_FILE_SUFFIX );
+ mojo.execute();
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX );
+ }
+
+ public void testExcludeArtifactItemOverride()
+ throws Exception
+ {
+ Artifact artifact = stubFactory.createArtifact( "test", "test", "1.0", Artifact.SCOPE_COMPILE, "jar", null );
+ ArtifactItem item = stubFactory.getArtifactItem( artifact );
+ item.setExcludes("**/*");
+ ArrayList list = new ArrayList( 1 );
+ list.add( item );
+ mojo.setArtifactItems( list );
+ mojo.setExcludes( "**/test2" + UNPACKED_FILE_SUFFIX );
+ mojo.execute();
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX );
+ }
+
+ public void testIncludeArtifactItemMultipleMarker()
+ throws Exception
+ {
+ ArrayList list = new ArrayList();
+ Artifact artifact = stubFactory.createArtifact( "test", "test", "1.0", Artifact.SCOPE_COMPILE, "jar", null );
+ ArtifactItem item = stubFactory.getArtifactItem( artifact );
+ item.setIncludes("**/test2" + UNPACKED_FILE_SUFFIX);
+ list.add( item );
+ item = stubFactory.getArtifactItem( artifact );
+ item.setIncludes("**/test3" + UNPACKED_FILE_SUFFIX);
+ list.add( item );
+ mojo.setArtifactItems( list );
+ mojo.execute();
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 1 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( false, UNPACKED_FILE_PREFIX + 11 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 2 + UNPACKED_FILE_SUFFIX );
+ assertUnpacked( true, UNPACKED_FILE_PREFIX + 3 + UNPACKED_FILE_SUFFIX );
+ assertMarkerFiles( mojo.getArtifactItems(), true );
+ }
+}
Modified: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java?view=diff&rev=557464&r1=557463&r2=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java (original)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestUnpackMojo.java Wed Jul 18 19:35:53 2007
@@ -32,7 +32,7 @@
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.dependency.utils.markers.UnpackFileMarkerHandler;
import org.apache.maven.plugin.testing.stubs.StubArtifactCollector;
import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
@@ -119,7 +119,7 @@
public void assertMarkerFile( boolean val, ArtifactItem item )
{
- DefaultFileMarkerHandler handle = new DefaultFileMarkerHandler( item.getArtifact(), mojo.getMarkersDirectory() );
+ UnpackFileMarkerHandler handle = new UnpackFileMarkerHandler( item, mojo.getMarkersDirectory() );
try
{
assertEquals( val, handle.isMarkerSet() );
Added: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/testUtils/stubs/StubUnpackFileMarkerHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/testUtils/stubs/StubUnpackFileMarkerHandler.java?view=auto&rev=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/testUtils/stubs/StubUnpackFileMarkerHandler.java (added)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/testUtils/stubs/StubUnpackFileMarkerHandler.java Wed Jul 18 19:35:53 2007
@@ -0,0 +1,45 @@
+package org.apache.maven.plugin.dependency.testUtils.stubs;
+
+import java.io.File;
+
+import org.apache.maven.plugin.dependency.fromConfiguration.ArtifactItem;
+import org.apache.maven.plugin.dependency.utils.markers.UnpackFileMarkerHandler;
+import org.codehaus.plexus.util.StringUtils;
+
+public class StubUnpackFileMarkerHandler
+ extends UnpackFileMarkerHandler
+{
+ public StubUnpackFileMarkerHandler( ArtifactItem artifactItem, File markerFilesDirectory )
+ {
+ super( artifactItem, markerFilesDirectory );
+ }
+
+ protected File getMarkerFile()
+ {
+ File markerFile = null;
+ if ( this.artifactItem == null
+ || ( StringUtils.isEmpty( this.artifactItem.getIncludes() )
+ && StringUtils.isEmpty( this.artifactItem.getExcludes() ) ) )
+ {
+ markerFile = new StubMarkerFile( this.markerFilesDirectory, this.artifact.getId().replace( ':', '-' ) + ".marker" );
+ }
+ else
+ {
+ int includeExcludeHash = 0;
+
+ if ( StringUtils.isNotEmpty( this.artifactItem.getIncludes() ) )
+ {
+ includeExcludeHash += this.artifactItem.getIncludes().hashCode();
+ }
+
+ if ( StringUtils.isNotEmpty( this.artifactItem.getExcludes() ) )
+ {
+ includeExcludeHash += this.artifactItem.getExcludes().hashCode();
+ }
+
+ markerFile = new StubMarkerFile( this.markerFilesDirectory, this.artifact.getId().replace( ':', '-' ) + includeExcludeHash );
+ }
+
+ return markerFile;
+ }
+}
Added: maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestUnpackMarkerFileHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestUnpackMarkerFileHandler.java?view=auto&rev=557464
==============================================================================
--- maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestUnpackMarkerFileHandler.java (added)
+++ maven/plugins/branches/maven-dependency-plugin-MDEP-47/src/test/java/org/apache/maven/plugin/dependency/utils/markers/TestUnpackMarkerFileHandler.java Wed Jul 18 19:35:53 2007
@@ -0,0 +1,259 @@
+package org.apache.maven.plugin.dependency.utils.markers;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.dependency.fromConfiguration.ArtifactItem;
+import org.apache.maven.plugin.dependency.testUtils.DependencyTestUtils;
+import org.apache.maven.plugin.dependency.testUtils.stubs.StubUnpackFileMarkerHandler;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugin.testing.SilentLog;
+
+public class TestUnpackMarkerFileHandler
+ extends TestCase
+{
+ List artifactItems = new ArrayList();
+
+ Log log = new SilentLog();
+
+ File outputFolder;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ArtifactHandler ah = new DefaultArtifactHandler();
+ VersionRange vr = VersionRange.createFromVersion( "1.1" );
+ Artifact artifact = new DefaultArtifact( "test", "1", vr, Artifact.SCOPE_COMPILE, "jar", "", ah, false );
+ ArtifactItem artifactItem = new ArtifactItem( artifact );
+ artifactItems.add( artifactItem );
+ artifact = new DefaultArtifact( "test", "2", vr, Artifact.SCOPE_PROVIDED, "war", "", ah, false );
+ artifactItem = new ArtifactItem( artifact );
+ artifactItem.setIncludes( "**/*.xml" );
+ artifactItems.add( artifactItem );
+ artifact = new DefaultArtifact( "test", "3", vr, Artifact.SCOPE_TEST, "sources", "", ah, false );
+ artifactItem = new ArtifactItem( artifact );
+ artifactItem.setExcludes( "**/*.class" );
+ artifactItems.add( artifactItem );
+ artifact = new DefaultArtifact( "test", "4", vr, Artifact.SCOPE_RUNTIME, "zip", "", ah, false );
+ artifactItem = new ArtifactItem( artifact );
+ artifactItem.setIncludes( "**/*.xml" );
+ artifactItem.setExcludes( "**/*.class" );
+ artifactItems.add( artifactItem );
+
+ outputFolder = new File( "target/markers/" );
+ DependencyTestUtils.removeDirectory( this.outputFolder );
+ assertFalse( outputFolder.exists() );
+ }
+
+ protected void tearDown()
+ throws IOException
+ {
+ DependencyTestUtils.removeDirectory( this.outputFolder );
+ }
+
+ /**
+ *
+ * Assert that default functionallity still exists
+ *
+ */
+
+ public void testSetMarker()
+ throws MojoExecutionException
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 0 ),
+ this.outputFolder );
+ assertFalse( handler.isMarkerSet() );
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ handler.clearMarker();
+ assertFalse( handler.isMarkerSet() );
+
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+
+ handler.clearMarker();
+ assertFalse( handler.isMarkerSet() );
+ handler.clearMarker();
+ assertFalse( handler.isMarkerSet() );
+ }
+
+ public void testMarkerFile()
+ throws MojoExecutionException, IOException
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 0 ),
+ this.outputFolder );
+
+ File handle = handler.getMarkerFile();
+ assertFalse( handle.exists() );
+ assertFalse( handler.isMarkerSet() );
+
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ assertTrue( handle.exists() );
+
+ handle.delete();
+ assertFalse( handler.isMarkerSet() );
+
+ handle.createNewFile();
+ assertTrue( handler.isMarkerSet() );
+
+ handler.clearMarker();
+ assertFalse( handle.exists() );
+ }
+
+ public void testMarkerTimeStamp()
+ throws MojoExecutionException, IOException, InterruptedException
+ {
+ File theFile = new File( outputFolder, "theFile.jar" );
+ outputFolder.mkdirs();
+ theFile.createNewFile();
+ ArtifactItem theArtifactItem = (ArtifactItem) artifactItems.get( 0 );
+ Artifact theArtifact = theArtifactItem.getArtifact();
+ theArtifact.setFile( theFile );
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( theArtifactItem, this.outputFolder );
+ assertFalse( handler.isMarkerSet() );
+ // if the marker is not set, assume it is infinately older than the
+ // artifact.
+ assertTrue( handler.isMarkerOlder( theArtifact ) );
+ handler.setMarker();
+ assertFalse( handler.isMarkerOlder( theArtifact ) );
+
+ theFile.setLastModified( theFile.lastModified() + 60000 );
+ assertTrue( handler.isMarkerOlder( theArtifact ) );
+
+ theFile.delete();
+ handler.clearMarker();
+ assertFalse( handler.isMarkerSet() );
+ }
+
+ public void testMarkerFileException()
+ {
+ // this stub wraps the file with an object to throw exceptions
+ StubUnpackFileMarkerHandler handler = new StubUnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 0 ),
+ this.outputFolder );
+ try
+ {
+ handler.setMarker();
+ fail( "Expected an Exception here" );
+ }
+ catch ( MojoExecutionException e )
+ {
+
+ }
+ }
+
+ public void testGetterSetter()
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( null, null );
+ assertTrue( handler.getArtifactItem() == null );
+ assertTrue( handler.getArtifact() == null );
+ handler.setArtifactItem( (ArtifactItem) artifactItems.get( 0 ) );
+ assertSame( artifactItems.get( 0 ), handler.getArtifactItem() );
+ assertSame( ((ArtifactItem) artifactItems.get( 0 )).getArtifact(), handler.getArtifact() );
+
+ assertTrue( handler.getMarkerFilesDirectory() == null );
+ handler.setMarkerFilesDirectory( outputFolder );
+ assertSame( outputFolder, handler.getMarkerFilesDirectory() );
+ }
+
+ public void testNullParent()
+ throws MojoExecutionException
+ {
+ // the parent isn't set so this will create the marker in the local
+ // folder. We must clear the
+ // marker to avoid leaving test droppings in root.
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( null, null );
+ handler.setArtifactItem( (ArtifactItem) artifactItems.get( 0 ) );
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ handler.clearMarker();
+ assertFalse( handler.isMarkerSet() );
+ }
+
+ public void testIncludesMarker()
+ throws MojoExecutionException, IOException
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 1 ), outputFolder );
+ File handle = handler.getMarkerFile();
+ assertFalse( handle.exists() );
+ assertFalse( handler.isMarkerSet() );
+
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ assertTrue( handle.exists() );
+ String hashCode = "" + ( 0 + "**/*.xml".hashCode() );
+ assertTrue( handle.getName().indexOf( hashCode ) > -1 );
+
+ handle.delete();
+ assertFalse( handler.isMarkerSet() );
+
+ handle.createNewFile();
+ assertTrue( handler.isMarkerSet() );
+
+ handler.clearMarker();
+ assertFalse( handle.exists() );
+ }
+
+ public void testExcludesMarker()
+ throws MojoExecutionException, IOException
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 2 ), outputFolder );
+ File handle = handler.getMarkerFile();
+ assertFalse( handle.exists() );
+ assertFalse( handler.isMarkerSet() );
+
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ assertTrue( handle.exists() );
+ String hashCode = "" + ( 0 + "**/*.class".hashCode() );
+ assertTrue( handle.getName().indexOf( hashCode ) > -1 );
+
+ handle.delete();
+ assertFalse( handler.isMarkerSet() );
+
+ handle.createNewFile();
+ assertTrue( handler.isMarkerSet() );
+
+ handler.clearMarker();
+ assertFalse( handle.exists() );
+ }
+
+ public void testIncludesExcludesMarker()
+ throws MojoExecutionException, IOException
+ {
+ UnpackFileMarkerHandler handler = new UnpackFileMarkerHandler( (ArtifactItem) artifactItems.get( 3 ), outputFolder );
+ File handle = handler.getMarkerFile();
+ assertFalse( handle.exists() );
+ assertFalse( handler.isMarkerSet() );
+
+ handler.setMarker();
+ assertTrue( handler.isMarkerSet() );
+ assertTrue( handle.exists() );
+ String hashCode = "" + ( 0 + "**/*.class".hashCode() + "**/*.xml".hashCode() );
+ assertTrue( handle.getName().indexOf( hashCode ) > -1 );
+
+ handle.delete();
+ assertFalse( handler.isMarkerSet() );
+
+ handle.createNewFile();
+ assertTrue( handler.isMarkerSet() );
+
+ handler.clearMarker();
+ assertFalse( handle.exists() );
+ }
+}
+