You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/08/24 20:25:41 UTC

svn commit: r434459 - in /maven/plugins/trunk/maven-assembly-plugin: ./ src/it/dependency-sets/including-pom-dependency/ src/it/dependency-sets/including-sar-dependency/ src/it/dependency-sets/including-sar-dependency/src/ src/it/dependency-sets/includ...

Author: jdcasey
Date: Thu Aug 24 11:25:39 2006
New Revision: 434459

URL: http://svn.apache.org/viewvc?rev=434459&view=rev
Log:
Adding aliasing for sar dependencies, along with simple copying of pom deps

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java   (with props)
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java   (with props)
Modified:
    maven/plugins/trunk/maven-assembly-plugin/pom.xml
    maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java

Modified: maven/plugins/trunk/maven-assembly-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/pom.xml?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/pom.xml Thu Aug 24 11:25:39 2006
@@ -208,7 +208,7 @@
             </configuration>
           </plugin>
           <plugin>
-            <artifactId>maven-plugin-test-plugin</artifactId>
+            <artifactId>maven-plugin-management-plugin</artifactId>
             <executions>
               <execution>
                 <id>handle-plugin-staging</id>

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-pom-dependency/verify.bsh Thu Aug 24 11:25:39 2006
@@ -7,8 +7,8 @@
 result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/classworlds.jar" ).exists();
 result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/junit.jar" ).exists();
 
-// verify that the POM dep wasn't included.
-result = result && !new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-container-default.pom" ).exists();
+// verify that the POM dep was included without extracting.
+result = result && new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-container-default.pom" ).exists();
 
 // verify that the jar associated with the POM dep wasn't included either.
 result = result && !new File( basedir, "target/including-pom-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-container-default.jar" ).exists();

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt Thu Aug 24 11:25:39 2006
@@ -0,0 +1,2 @@
+clean
+assembly:directory

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml Thu Aug 24 11:25:39 2006
@@ -0,0 +1,30 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test</groupId>
+  <artifactId>including-sar-dependency</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-appserver-service-xmlrpc</artifactId>
+      <version>2.0-alpha-3</version>
+      <type>sar</type>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/assemble/bin.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml Thu Aug 24 11:25:39 2006
@@ -0,0 +1,14 @@
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <dependencySets>
+    <dependencySet>
+      <outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
+      <outputDirectory>lib</outputDirectory>
+      <unpack>false</unpack>
+    </dependencySet>
+  </dependencySets>
+</assembly>

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/assemble/bin.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java Thu Aug 24 11:25:39 2006
@@ -0,0 +1,13 @@
+package com.nf.ass;
+
+/**
+ * Hello world!
+ *
+ */
+public class App 
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/src/main/java/com/nf/ass/App.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/dependency-sets/including-sar-dependency/verify.bsh Thu Aug 24 11:25:39 2006
@@ -0,0 +1,12 @@
+import java.io.*;
+
+boolean result = true;
+
+// verify that transitive deps of the POM dep were included.
+result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/xmlrpc.jar" ).exists();
+result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-xmlrpc.jar" ).exists();
+
+// verify that the POM dep was included without extracting.
+result = result && new File( basedir, "target/including-sar-dependency-1.0-SNAPSHOT-bin.dir/lib/plexus-appserver-service-xmlrpc.sar" ).exists();
+
+return result;

Added: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java Thu Aug 24 11:25:39 2006
@@ -0,0 +1,89 @@
+package org.apache.maven.plugin.assembly.archive.archiver;
+
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+
+public class NoOpUnArchiver
+    extends AbstractLogEnabled
+    implements UnArchiver
+{
+
+    private File destDir;
+    private File destFile;
+    
+    private boolean overwrite = false;
+    
+    private File sourceFile;
+
+    public void extract()
+        throws ArchiverException, IOException
+    {
+        if ( sourceFile == null || !sourceFile.exists() )
+        {
+            throw new ArchiverException( "Source file is not available: " + sourceFile );
+        }
+        
+        if ( destFile == null )
+        {
+            if ( destDir != null )
+            {
+                String filename = sourceFile.getName();
+                
+                destFile = new File( destDir, filename );
+            }
+            else
+            {
+                throw new ArchiverException( "No destination configured. Please set either destDirectory or destFile property for source file: " + sourceFile );
+            }
+        }
+        
+        if ( !overwrite && destFile.exists() )
+        {
+            getLogger().debug( "Destination file: " + destFile + " already exists. Not overwriting." );
+            return;
+        }
+        
+        FileUtils.copyFile( sourceFile, destFile );
+    }
+
+    public File getDestDirectory()
+    {
+        return null;
+    }
+
+    public File getDestFile()
+    {
+        return null;
+    }
+
+    public File getSourceFile()
+    {
+        return null;
+    }
+
+    public void setDestDirectory( File destDir )
+    {
+        this.destDir = destDir;
+    }
+
+    public void setDestFile( File destFile )
+    {
+        this.destFile = destFile;
+    }
+
+    public void setOverwrite( boolean overwrite )
+    {
+        this.overwrite = overwrite;
+    }
+
+    public void setSourceFile( File sourceFile )
+    {
+        this.sourceFile = sourceFile;
+    }
+
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiver.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTask.java Thu Aug 24 11:25:39 2006
@@ -75,12 +75,6 @@
         {
             Artifact depArtifact = ( Artifact ) j.next();
             
-            if ( "pom".equals( depArtifact.getType() ) )
-            {
-                logger.info( "Skipping POM artifact (found among dependencies for " + project.getId() + "): " + depArtifact.getId() );
-                continue;
-            }
-
             MavenProject depProject;
             try
             {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/resources/META-INF/plexus/components.xml Thu Aug 24 11:25:39 2006
@@ -18,36 +18,18 @@
 
 <component-set>
   <components>
+    <!-- UnArchiver -->
     <component>
-      <role>org.apache.maven.plugin.assembly.repository.RepositoryAssembler</role>
-      <implementation>org.apache.maven.plugin.assembly.repository.DefaultRepositoryAssembler</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
-          <field-name>artifactFactory</field-name>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
-          <field-name>artifactResolver</field-name>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role>
-          <field-name>repositoryLayout</field-name>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
-          <field-name>artifactRepositoryFactory</field-name>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
-          <role-hint>maven</role-hint>
-          <field-name>metadataSource</field-name>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.project.MavenProjectBuilder</role>
-          <field-name>projectBuilder</field-name>
-        </requirement>
-      </requirements>
+      <role>org.codehaus.plexus.archiver.UnArchiver</role>
+      <role-hint>pom</role-hint>
+      <implementation>org.apache.maven.plugin.assembly.archive.archiver.NoOpUnArchiver</implementation>
+      <instantiation-strategy>per-lookup</instantiation-strategy>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.archiver.UnArchiver</role>
+      <role-hint>sar</role-hint>
+      <implementation>org.codehaus.plexus.archiver.zip.ZipUnArchiver</implementation>
+      <instantiation-strategy>per-lookup</instantiation-strategy>
     </component>
   </components>
 </component-set>

Added: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java?rev=434459&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java (added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java Thu Aug 24 11:25:39 2006
@@ -0,0 +1,159 @@
+package org.apache.maven.plugin.assembly.archive.archiver;
+
+import org.apache.maven.plugin.assembly.testutils.TestFileManager;
+import org.apache.maven.plugin.assembly.testutils.TestUtils;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.UnArchiver;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class NoOpUnArchiverTest
+    extends TestCase
+{
+
+    private TestFileManager fileManager = new TestFileManager( "no-op-unarchiver.test.", "" );
+
+    public void tearDown()
+        throws IOException
+    {
+        fileManager.cleanUp();
+    }
+
+    public void testShouldFailWhenDestDirAndDestFileAreMissing()
+        throws IOException
+    {
+        UnArchiver unarch = new NoOpUnArchiver();
+
+        File testFile = fileManager.createTempFile();
+
+        unarch.setSourceFile( testFile );
+
+        try
+        {
+            unarch.extract();
+
+            fail( "Should fail when no destination is set." );
+        }
+        catch ( ArchiverException e )
+        {
+            // expected
+        }
+    }
+
+    public void testShouldFailWhenSourceIsMissing()
+        throws IOException
+    {
+        UnArchiver unarch = new NoOpUnArchiver();
+
+        File testFile = fileManager.createTempFile();
+
+        unarch.setDestFile( testFile );
+
+        try
+        {
+            unarch.extract();
+
+            fail( "Should fail when no source is set." );
+        }
+        catch ( ArchiverException e )
+        {
+            // expected
+        }
+    }
+
+    public void testShouldCopyFromSourceFileToDestDirUsingSourceFilename()
+        throws IOException, ArchiverException
+    {
+        UnArchiver unarch = new NoOpUnArchiver();
+
+        File destDir = fileManager.createTempDir();
+
+        String testContent = "This is a test.";
+
+        File sourceFile = fileManager.createFile( "test.txt", testContent );
+
+        unarch.setDestDirectory( destDir );
+        unarch.setSourceFile( sourceFile );
+
+        unarch.extract();
+
+        String content = TestUtils.readFile( new File( destDir, "test.txt" ) );
+
+        assertEquals( testContent, content );
+    }
+
+    public void testShouldCopyFromSourceFileToDestFile()
+        throws IOException, ArchiverException
+    {
+        UnArchiver unarch = new NoOpUnArchiver();
+
+        File destFile = fileManager.createTempFile();
+
+        destFile.delete();
+
+        String testContent = "This is a test.";
+
+        File sourceFile = fileManager.createFile( "test.txt", testContent );
+
+        unarch.setDestFile( destFile );
+        unarch.setSourceFile( sourceFile );
+
+        unarch.extract();
+
+        String content = TestUtils.readFile( destFile );
+
+        assertEquals( testContent, content );
+    }
+
+    public void testShouldNotCopyWhenDestFileExistsAndOverwriteIsFalse()
+        throws IOException, ArchiverException
+    {
+        NoOpUnArchiver unarch = new NoOpUnArchiver();
+
+        unarch.enableLogging( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+
+        File destFile = fileManager.createTempFile();
+
+        String testContent = "This is a test.";
+
+        File sourceFile = fileManager.createFile( "test.txt", testContent );
+
+        unarch.setDestFile( destFile );
+        unarch.setSourceFile( sourceFile );
+        unarch.setOverwrite( false );
+
+        unarch.extract();
+
+        String content = TestUtils.readFile( destFile ).trim();
+
+        assertEquals( "", content );
+    }
+
+    public void testShouldCopyWhenDestFileExistsAndOverwriteIsTrue()
+        throws IOException, ArchiverException
+    {
+        UnArchiver unarch = new NoOpUnArchiver();
+
+        File destFile = fileManager.createTempFile();
+
+        String testContent = "This is a test.";
+
+        File sourceFile = fileManager.createFile( "test.txt", testContent );
+
+        unarch.setDestFile( destFile );
+        unarch.setSourceFile( sourceFile );
+        unarch.setOverwrite( true );
+
+        unarch.extract();
+
+        String content = TestUtils.readFile( destFile );
+
+        assertEquals( testContent, content );
+    }
+
+}

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/archiver/NoOpUnArchiverTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/DependencySetAssemblyPhaseTest.java Thu Aug 24 11:25:39 2006
@@ -54,7 +54,6 @@
         MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
 
         macTask.expectArtifactGetFile();
-        macTask.expectArtifactGetType( "jar" );
         macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
         macTask.expectGetClassifier( null );
         macTask.expectIsSnapshot( false );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java Thu Aug 24 11:25:39 2006
@@ -227,7 +227,6 @@
         macDepArtifact.expectGetArtifactHandler();
         macDepArtifact.expectGetArtifactId( "dep" );
         macDepArtifact.expectGetScope( Artifact.SCOPE_COMPILE );
-        macDepArtifact.expectGetType( "jar" );
         macDepArtifact.expectGetFile();
 
         macTask.expectAddFile( macDepArtifact.artifactFile, "out/dep", Integer.parseInt( "777", 8 ) );
@@ -295,7 +294,6 @@
         macDepArtifact.expectGetArtifactHandler();
         macDepArtifact.expectGetArtifactId( "dep" );
         macDepArtifact.expectGetScope( Artifact.SCOPE_COMPILE );
-        macDepArtifact.expectGetType( "jar" );
         macDepArtifact.expectGetFile();
 
         macTask.expectAddFile( macDepArtifact.artifactFile, "out/dep", Integer.parseInt( "777", 8 ) );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddDependencySetsTaskTest.java Thu Aug 24 11:25:39 2006
@@ -84,7 +84,6 @@
         MockAndControlForAddArtifactTask macTask = new MockAndControlForAddArtifactTask( mockManager );
 
         macTask.expectArtifactGetFile();
-        macTask.expectArtifactGetType( "jar" );
         macTask.expectArtifactGetScope( Artifact.SCOPE_COMPILE );
         macTask.expectGetClassifier( null );
         macTask.expectIsSnapshot( false );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java?rev=434459&r1=434458&r2=434459&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java Thu Aug 24 11:25:39 2006
@@ -25,26 +25,27 @@
     private final String baseFilename;
 
     private final String fileSuffix;
-    
+
     private StackTraceElement callerInfo;
-    
+
     private Thread cleanupWarning;
-    
+
     private boolean warnAboutCleanup = false;
 
     public TestFileManager( String baseFilename, String fileSuffix )
     {
         this.baseFilename = baseFilename;
         this.fileSuffix = fileSuffix;
-        
+
         initializeCleanupMonitoring();
     }
 
     private void initializeCleanupMonitoring()
     {
         callerInfo = new NullPointerException().getStackTrace()[2];
-        
-        Runnable warning = new Runnable(){
+
+        Runnable warning = new Runnable()
+        {
 
             public void run()
             {
@@ -52,12 +53,12 @@
             }
 
         };
-        
+
         cleanupWarning = new Thread( warning );
-        
+
         Runtime.getRuntime().addShutdownHook( cleanupWarning );
     }
-    
+
     private void maybeWarnAboutCleanUp()
     {
         if ( warnAboutCleanup )
@@ -105,7 +106,7 @@
     {
         for ( Iterator it = filesToDelete.iterator(); it.hasNext(); )
         {
-            File file = (File) it.next();
+            File file = ( File ) it.next();
 
             if ( file.exists() )
             {
@@ -121,7 +122,7 @@
 
             it.remove();
         }
-        
+
         warnAboutCleanup = false;
     }
 
@@ -182,7 +183,7 @@
         {
             IOUtil.close( writer );
         }
-        
+
         markForDeletion( file );
 
         return file;
@@ -192,23 +193,23 @@
         throws IOException
     {
         String result = null;
-        
+
         FileReader reader = null;
         try
         {
             reader = new FileReader( file );
-            
+
             StringWriter writer = new StringWriter();
-            
+
             IOUtil.copy( reader, writer );
-            
+
             result = writer.toString();
         }
         finally
         {
             IOUtil.close( reader );
         }
-        
+
         return result;
     }
 
@@ -216,8 +217,15 @@
         throws Throwable
     {
         maybeWarnAboutCleanUp();
-        
+
         super.finalize();
+    }
+
+    public File createFile( String filename, String content )
+        throws IOException
+    {
+        File dir = createTempDir();
+        return createFile( dir, filename, content );
     }
 
 }