You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2012/01/24 15:57:42 UTC

svn commit: r1235290 - in /maven/shared/trunk/maven-archiver/src: main/java/org/apache/maven/archiver/MavenArchiver.java test/java/org/apache/maven/archiver/MavenArchiverTest.java test/resources/dummy.dot-1.5.jar

Author: krosenvold
Date: Tue Jan 24 14:57:41 2012
New Revision: 1235290

URL: http://svn.apache.org/viewvc?rev=1235290&view=rev
Log:
[MSHARED-134] Using -Extention-Name in MANIFEST file can create invalid MANIFEST files

Patch by Sridhar Komandur, testcase by me.

Added:
    maven/shared/trunk/maven-archiver/src/test/resources/dummy.dot-1.5.jar
Modified:
    maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
    maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

Modified: maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=1235290&r1=1235289&r2=1235290&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java (original)
+++ maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Tue Jan 24 14:57:41 2012
@@ -418,14 +418,15 @@ public class MavenArchiver
                 Artifact artifact = (Artifact) iter.next();
                 if ( "jar".equals( artifact.getType() ) )
                 {
-                    String ename = artifact.getArtifactId() + "-Extension-Name";
+                    String artifactId = artifact.getArtifactId().replace('.', '_');
+                    String ename = artifactId + "-Extension-Name";
                     addManifestAttribute( m, entries, ename, artifact.getArtifactId() );
-                    String iname = artifact.getArtifactId() + "-Implementation-Version";
+                    String iname = artifactId + "-Implementation-Version";
                     addManifestAttribute( m, entries, iname, artifact.getVersion() );
 
                     if ( artifact.getRepository() != null )
                     {
-                        iname = artifact.getArtifactId() + "-Implementation-URL";
+                        iname = artifactId + "-Implementation-URL";
                         String url = artifact.getRepository().getUrl() + "/" + artifact.toString();
                         addManifestAttribute( m, entries, iname, url );
                     }

Modified: maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java?rev=1235290&r1=1235289&r2=1235290&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java (original)
+++ maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java Tue Jan 24 14:57:41 2012
@@ -21,6 +21,7 @@ package org.apache.maven.archiver;
 
 import junit.framework.TestCase;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -34,18 +35,29 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
+import org.codehaus.plexus.archiver.jar.ManifestException;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
+import java.io.IOException;
 import java.net.URI;
 import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeSet;
 import java.util.jar.Attributes;
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
-@SuppressWarnings("ResultOfMethodCallIgnored")
+@SuppressWarnings( "ResultOfMethodCallIgnored" )
 public class MavenArchiverTest
     extends TestCase
 {
@@ -93,12 +105,13 @@ public class MavenArchiverTest
 
         assertNotNull( manifest.getMainAttributes() );
 
-        for (Map.Entry<String, Attributes> entry : manifest.getEntries().entrySet()) {
-            System.out.println( entry.getKey() + " " + entry.getValue().getValue("Extension-List") );
+        for ( Map.Entry<String, Attributes> entry : manifest.getEntries().entrySet() )
+        {
+            System.out.println( entry.getKey() + " " + entry.getValue().getValue( "Extension-List" ) );
 
         }
 
-        assertEquals( null, manifest.getMainAttributes().getValue("Extension-List") );
+        assertEquals( null, manifest.getMainAttributes().getValue( "Extension-List" ) );
 
         MockArtifact artifact1 = new MockArtifact();
         artifact1.setGroupId( "org.apache.dummy" );
@@ -111,7 +124,7 @@ public class MavenArchiverTest
 
         manifest = archiver.getManifest( session, project, config );
 
-        assertEquals( null, manifest.getMainAttributes().getValue("Extension-List") );
+        assertEquals( null, manifest.getMainAttributes().getValue( "Extension-List" ) );
 
         MockArtifact artifact2 = new MockArtifact();
         artifact2.setGroupId( "org.apache.dummy" );
@@ -124,7 +137,7 @@ public class MavenArchiverTest
 
         manifest = archiver.getManifest( session, project, config );
 
-        assertEquals( "dummy2", manifest.getMainAttributes().getValue("Extension-List") );
+        assertEquals( "dummy2", manifest.getMainAttributes().getValue( "Extension-List" ) );
 
         MockArtifact artifact3 = new MockArtifact();
         artifact3.setGroupId( "org.apache.dummy" );
@@ -137,7 +150,7 @@ public class MavenArchiverTest
 
         manifest = archiver.getManifest( session, project, config );
 
-        assertEquals( "dummy2", manifest.getMainAttributes().getValue("Extension-List") );
+        assertEquals( "dummy2", manifest.getMainAttributes().getValue( "Extension-List" ) );
 
         MockArtifact artifact4 = new MockArtifact();
         artifact4.setGroupId( "org.apache.dummy" );
@@ -150,7 +163,7 @@ public class MavenArchiverTest
 
         manifest = archiver.getManifest( session, project, config );
 
-        assertEquals( "dummy2 dummy4", manifest.getMainAttributes().getValue("Extension-List") );
+        assertEquals( "dummy2 dummy4", manifest.getMainAttributes().getValue( "Extension-List" ) );
     }
 
     public void testMultiClassPath()
@@ -190,10 +203,9 @@ public class MavenArchiverTest
 
             Manifest manifest = archiver.getManifest( session, project, archiveConfiguration );
             String classPath = manifest.getMainAttributes().getValue( "Class-Path" );
-            assertTrue( "User specified Class-Path entry was not added to manifest",
-                    classPath.contains("help/"));
+            assertTrue( "User specified Class-Path entry was not added to manifest", classPath.contains( "help/" ) );
             assertTrue( "Class-Path generated by addClasspath was not added to manifest",
-                    classPath.contains(tempFile.getName()));
+                        classPath.contains( tempFile.getName() ) );
         }
         finally
         {
@@ -206,13 +218,9 @@ public class MavenArchiverTest
         throws Exception
     {
         File jarFile = new File( "target/test/dummy.jar" );
-        deleteAndAssertNotPresent(jarFile);
-        JarArchiver jarArchiver = new JarArchiver();
-        jarArchiver.setDestFile( jarFile );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-        MavenArchiver archiver = new MavenArchiver();
-        archiver.setArchiver( jarArchiver );
-        archiver.setOutputFile( jarArchiver.getDestFile() );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
         MavenSession session = getDummySession();
         MavenProject project = getDummyProject();
@@ -227,9 +235,10 @@ public class MavenArchiverTest
         long time = jarFile.lastModified();
 
         List files = FileUtils.getFiles( new File( "target/maven-archiver" ), "**/**", null, true );
-        for (Object file : files) {
+        for ( Object file : files )
+        {
             File f = (File) file;
-            f.setLastModified(time);
+            f.setLastModified( time );
         }
 
         archiver.createArchive( session, project, config );
@@ -247,13 +256,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenSession session = getDummySession();
             MavenProject project = getDummyProject();
@@ -285,13 +290,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenSession session = getDummySession();
             MavenProject project = getDummyProject();
@@ -322,6 +323,43 @@ public class MavenArchiverTest
         }
     }
 
+    private MavenArchiver getMavenArchiver( JarArchiver jarArchiver )
+    {
+        MavenArchiver archiver = new MavenArchiver();
+        archiver.setArchiver( jarArchiver );
+        archiver.setOutputFile( jarArchiver.getDestFile() );
+        return archiver;
+    }
+
+    public void testDashesInClassPath_MSHARED_134()
+        throws IOException, ManifestException, DependencyResolutionRequiredException
+    {
+        File jarFile = new File( "target/test/dummyWithDashes.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
+
+        MavenSession session = getDummySession();
+        MavenProject project = getDummyProject();
+
+        Set<Artifact> artifacts = getArtifacts( getMockArtifact1(), getArtifactWithDot(),
+                                                getMockArtifact2(), getMockArtifact3() );
+
+        project.setArtifacts( artifacts );
+
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( false );
+
+        final ManifestConfiguration mftConfig = config.getManifest();
+        mftConfig.setMainClass( "org.apache.maven.Foo" );
+        mftConfig.setAddClasspath( true );
+        mftConfig.setAddExtensions( true );
+        mftConfig.setClasspathPrefix( "./lib/" );
+
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+    }
+
     public void testCarriageReturnInManifestEntry()
         throws Exception
     {
@@ -329,13 +367,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenSession session = getDummySession();
             MavenProject project = getDummyProject();
@@ -377,13 +411,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenProject project = getDummyProject();
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
@@ -429,13 +459,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenSession session = getDummySession();
             MavenProject project = getDummyProject();
@@ -506,13 +532,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenSession session = getDummySessionWithoutMavenVersion();
             MavenProject project = getDummyProject();
@@ -560,15 +582,15 @@ public class MavenArchiverTest
 
         Manifest manifest = archiver.getManifest( session, project, config );
 
-        Attributes section = manifest.getAttributes("SectionOne");
+        Attributes section = manifest.getAttributes( "SectionOne" );
         assertNotNull( "The section is not present in the manifest as it should be.", section );
 
-        String attribute = section.getValue("key");
+        String attribute = section.getValue( "key" );
         assertNotNull( "The attribute we are looking for is not present in the section.", attribute );
         assertEquals( "The value of the attribute is wrong.", "value", attribute );
     }
 
-    @SuppressWarnings("ResultOfMethodCallIgnored")
+    @SuppressWarnings( "ResultOfMethodCallIgnored" )
     public void testDefaultClassPathValue()
         throws Exception
     {
@@ -578,13 +600,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -613,13 +631,14 @@ public class MavenArchiverTest
         }
     }
 
-    @SuppressWarnings("ResultOfMethodCallIgnored")
-    private void deleteAndAssertNotPresent(File jarFile) {
+    @SuppressWarnings( "ResultOfMethodCallIgnored" )
+    private void deleteAndAssertNotPresent( File jarFile )
+    {
         jarFile.delete();
         assertFalse( jarFile.exists() );
     }
 
-    @SuppressWarnings("ResultOfMethodCallIgnored")
+    @SuppressWarnings( "ResultOfMethodCallIgnored" )
     public void testDefaultClassPathValue_WithSnapshot()
         throws Exception
     {
@@ -629,13 +648,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -673,13 +688,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -694,7 +705,7 @@ public class MavenArchiverTest
 
             Manifest manifest = archiver.getManifest( session, project, config );
             String[] classPathEntries =
-                StringUtils.split( new String( manifest.getMainAttributes().getValue("Class-Path").getBytes() ),
+                StringUtils.split( new String( manifest.getMainAttributes().getValue( "Class-Path" ).getBytes() ),
                                    " " );
             assertEquals( "org/apache/dummy/dummy1/1.0/dummy1-1.0.jar", classPathEntries[0] );
             assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
@@ -726,13 +737,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -747,7 +754,7 @@ public class MavenArchiverTest
 
             Manifest manifest = archiver.getManifest( session, project, config );
             String[] classPathEntries =
-                StringUtils.split( new String( manifest.getMainAttributes().getValue("Class-Path").getBytes() ),
+                StringUtils.split( new String( manifest.getMainAttributes().getValue( "Class-Path" ).getBytes() ),
                                    " " );
             assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/dummy1-1.1-20081022.112233-1.jar",
                           classPathEntries[0] );
@@ -781,13 +788,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -804,7 +807,7 @@ public class MavenArchiverTest
 
             Manifest manifest = archiver.getManifest( session, project, config );
             String[] classPathEntries =
-                StringUtils.split( new String( manifest.getMainAttributes().getValue("Class-Path").getBytes() ),
+                StringUtils.split( new String( manifest.getMainAttributes().getValue( "Class-Path" ).getBytes() ),
                                    " " );
             assertEquals( "org/apache/dummy/dummy1/1.0/TEST-dummy1-1.0.jar", classPathEntries[0] );
             assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
@@ -836,13 +839,8 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
-
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -893,13 +891,9 @@ public class MavenArchiverTest
         try
         {
             File jarFile = new File( "target/test/dummy.jar" );
-            deleteAndAssertNotPresent(jarFile);
-            JarArchiver jarArchiver = new JarArchiver();
-            jarArchiver.setDestFile( jarFile );
+            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = new MavenArchiver();
-            archiver.setArchiver( jarArchiver );
-            archiver.setOutputFile( jarArchiver.getDestFile() );
+            MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
             MavenArchiveConfiguration config = new MavenArchiveConfiguration();
             config.setForced( true );
@@ -916,7 +910,7 @@ public class MavenArchiverTest
 
             Manifest manifest = archiver.getManifest( session, project, config );
             String[] classPathEntries =
-                StringUtils.split( new String( manifest.getMainAttributes().getValue("Class-Path").getBytes() ),
+                StringUtils.split( new String( manifest.getMainAttributes().getValue( "Class-Path" ).getBytes() ),
                                    " " );
             assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-SNAPSHOT.jar", classPathEntries[0] );
             assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
@@ -939,24 +933,21 @@ public class MavenArchiverTest
         }
     }
 
+    private JarArchiver getCleanJarArciver( File jarFile )
+    {
+        deleteAndAssertNotPresent( jarFile );
+        JarArchiver jarArchiver = new JarArchiver();
+        jarArchiver.setDestFile( jarFile );
+        return jarArchiver;
+    }
+
     // ----------------------------------------
     // common methods for testing
     // ----------------------------------------
 
     private MavenProject getDummyProject()
     {
-        Model model = new Model();
-        model.setGroupId( "org.apache.dummy" );
-        model.setArtifactId( "dummy" );
-        model.setVersion( "0.1" );
-        MavenProject project = new MavenProject( model );
-
-        project.setPluginArtifacts( Collections.EMPTY_SET );
-        project.setReportArtifacts( Collections.EMPTY_SET );
-        project.setExtensionArtifacts( Collections.EMPTY_SET );
-        project.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
-        project.setPluginArtifactRepositories( Collections.EMPTY_LIST );
-
+        MavenProject project = getMavenProject();
         File pomFile = new File( "src/test/resources/pom.xml" );
         pomFile.setLastModified( System.currentTimeMillis() - 60000L );
         project.setFile( pomFile );
@@ -976,100 +967,44 @@ public class MavenArchiverTest
         artifact.setArtifactHandler( new DefaultArtifactHandler( "jar" ) );
         project.setArtifact( artifact );
 
-        ArtifactHandler artifactHandler = new ArtifactHandler()
-        {
-
-            public String getClassifier()
-            {
-                return null;
-            }
-
-            public String getDirectory()
-            {
-                return null;
-            }
-
-            public String getExtension()
-            {
-                return "jar";
-            }
-
-            public String getLanguage()
-            {
-                return null;
-            }
-
-            public String getPackaging()
-            {
-                return null;
-            }
-
-            public boolean isAddedToClasspath()
-            {
-                return true;
-            }
-
-            public boolean isIncludesDependencies()
-            {
-                return false;
-            }
-
-        };
-
-        Set<Artifact> artifacts = new TreeSet<Artifact>( new ArtifactComparator() );
-
-        MockArtifact artifact1 = new MockArtifact();
-        artifact1.setGroupId( "org.apache.dummy" );
-        artifact1.setArtifactId( "dummy1" );
-        artifact1.setVersion( "1.0" );
-        artifact1.setType( "jar" );
-        artifact1.setScope( "runtime" );
-        artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
-
-        artifact1.setArtifactHandler( artifactHandler );
-
-        artifacts.add( artifact1 );
-
-        MockArtifact artifact2 = new MockArtifact();
-        artifact2.setGroupId( "org.apache.dummy.foo" );
-        artifact2.setArtifactId( "dummy2" );
-        artifact2.setVersion( "1.5" );
-        artifact2.setType( "jar" );
-        artifact2.setScope( "runtime" );
-        artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion() + ".jar" ) );
-
-        artifact2.setArtifactHandler( artifactHandler );
-        artifacts.add( artifact2 );
-
-        MockArtifact artifact3 = new MockArtifact();
-        artifact3.setGroupId( "org.apache.dummy.bar" );
-        artifact3.setArtifactId( "dummy3" );
-        artifact3.setVersion( "2.0" );
-        artifact3.setScope( "runtime" );
-        artifact3.setType( "jar" );
-        artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion() + ".jar" ) );
-        artifact3.setArtifactHandler( artifactHandler );
-        artifacts.add( artifact3 );
-
+        Set<Artifact> artifacts = getArtifacts( getMockArtifact1Release(), getMockArtifact2(), getMockArtifact3() );
         project.setArtifacts( artifacts );
 
         return project;
     }
 
-    private MavenProject getDummyProjectWithSnapshot()
+    private MavenProject getMavenProject()
     {
         Model model = new Model();
         model.setGroupId( "org.apache.dummy" );
         model.setArtifactId( "dummy" );
         model.setVersion( "0.1" );
-        MavenProject project = new MavenProject( model );
 
+        final MavenProject project = new MavenProject( model );
         project.setPluginArtifacts( Collections.EMPTY_SET );
         project.setReportArtifacts( Collections.EMPTY_SET );
         project.setExtensionArtifacts( Collections.EMPTY_SET );
         project.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
         project.setPluginArtifactRepositories( Collections.EMPTY_LIST );
+        return project;
+    }
+
+
+    private MockArtifact getMockArtifact3()
+    {
+        MockArtifact artifact3 = new MockArtifact();
+        artifact3.setGroupId( "org.apache.dummy.bar" );
+        artifact3.setArtifactId( "dummy3" );
+        artifact3.setVersion( "2.0" );
+        artifact3.setScope( "runtime" );
+        artifact3.setType( "jar" );
+        artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion() + ".jar" ) );
+        return artifact3;
+    }
 
+    private MavenProject getDummyProjectWithSnapshot()
+    {
+        MavenProject project = getMavenProject();
         File pomFile = new File( "src/test/resources/pom.xml" );
         pomFile.setLastModified( System.currentTimeMillis() - 60000L );
         project.setFile( pomFile );
@@ -1081,6 +1016,7 @@ public class MavenArchiverTest
         Organization organization = new Organization();
         organization.setName( "Apache" );
         project.setOrganization( organization );
+
         MockArtifact artifact = new MockArtifact();
         artifact.setGroupId( "org.apache.dummy" );
         artifact.setArtifactId( "dummy" );
@@ -1089,7 +1025,16 @@ public class MavenArchiverTest
         artifact.setArtifactHandler( new DefaultArtifactHandler( "jar" ) );
         project.setArtifact( artifact );
 
-        ArtifactHandler artifactHandler = new ArtifactHandler()
+        Set<Artifact> artifacts = getArtifacts( getMockArtifact1(), getMockArtifact2(), getMockArtifact3() );
+
+        project.setArtifacts( artifacts );
+
+        return project;
+    }
+
+    private ArtifactHandler getMockArtifactHandler()
+    {
+        return new ArtifactHandler()
         {
 
             public String getClassifier()
@@ -1128,21 +1073,10 @@ public class MavenArchiverTest
             }
 
         };
+    }
 
-        Set<Artifact> artifacts = new TreeSet<Artifact>( new ArtifactComparator() );
-
-        MockArtifact artifact1 = new MockArtifact();
-        artifact1.setGroupId( "org.apache.dummy" );
-        artifact1.setArtifactId( "dummy1" );
-        artifact1.setSnapshotVersion( "1.1-20081022.112233-1", "1.1-SNAPSHOT" );
-        artifact1.setType( "jar" );
-        artifact1.setScope( "runtime" );
-        artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
-
-        artifact1.setArtifactHandler( artifactHandler );
-
-        artifacts.add( artifact1 );
-
+    private MockArtifact getMockArtifact2()
+    {
         MockArtifact artifact2 = new MockArtifact();
         artifact2.setGroupId( "org.apache.dummy.foo" );
         artifact2.setArtifactId( "dummy2" );
@@ -1150,23 +1084,43 @@ public class MavenArchiverTest
         artifact2.setType( "jar" );
         artifact2.setScope( "runtime" );
         artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion() + ".jar" ) );
+        return artifact2;
+    }
 
-        artifact2.setArtifactHandler( artifactHandler );
-        artifacts.add( artifact2 );
-
-        MockArtifact artifact3 = new MockArtifact();
-        artifact3.setGroupId( "org.apache.dummy.bar" );
-        artifact3.setArtifactId( "dummy3" );
-        artifact3.setVersion( "2.0" );
-        artifact3.setScope( "runtime" );
-        artifact3.setType( "jar" );
-        artifact3.setFile( getClasspathFile( artifact3.getArtifactId() + "-" + artifact3.getVersion() + ".jar" ) );
-        artifact3.setArtifactHandler( artifactHandler );
-        artifacts.add( artifact3 );
+    private MockArtifact getArtifactWithDot()
+    {
+        MockArtifact artifact2 = new MockArtifact();
+        artifact2.setGroupId( "org.apache.dummy.foo" );
+        artifact2.setArtifactId( "dummy.dot" );
+        artifact2.setVersion( "1.5" );
+        artifact2.setType( "jar" );
+        artifact2.setScope( "runtime" );
+        artifact2.setFile( getClasspathFile( artifact2.getArtifactId() + "-" + artifact2.getVersion() + ".jar" ) );
+        return artifact2;
+    }
 
-        project.setArtifacts( artifacts );
+    private MockArtifact getMockArtifact1()
+    {
+        MockArtifact artifact1 = new MockArtifact();
+        artifact1.setGroupId( "org.apache.dummy" );
+        artifact1.setArtifactId( "dummy1" );
+        artifact1.setSnapshotVersion( "1.1-20081022.112233-1", "1.1-SNAPSHOT" );
+        artifact1.setType( "jar" );
+        artifact1.setScope( "runtime" );
+        artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
+        return artifact1;
+    }
 
-        return project;
+    private MockArtifact getMockArtifact1Release()
+    {
+        MockArtifact artifact1 = new MockArtifact();
+        artifact1.setGroupId( "org.apache.dummy" );
+        artifact1.setArtifactId( "dummy1" );
+        artifact1.setVersion( "1.0" );
+        artifact1.setType( "jar" );
+        artifact1.setScope( "runtime" );
+        artifact1.setFile( getClasspathFile( artifact1.getArtifactId() + "-" + artifact1.getVersion() + ".jar" ) );
+        return artifact1;
     }
 
     private File getClasspathFile( String file )
@@ -1206,8 +1160,19 @@ public class MavenArchiverTest
         String executionRootDir = null;
         Date startTime = new Date();
 
-        return new MavenSession( container, settings, localRepo, eventDispatcher, reactorManager, goals, executionRootDir,
-                          executionProperties, startTime );
+        return new MavenSession( container, settings, localRepo, eventDispatcher, reactorManager, goals,
+                                 executionRootDir, executionProperties, startTime );
     }
 
+    private Set<Artifact> getArtifacts( Artifact... artifacts )
+    {
+        final ArtifactHandler mockArtifactHandler = getMockArtifactHandler();
+        Set<Artifact> result = new TreeSet<Artifact>( new ArtifactComparator() );
+        for ( Artifact artifact : artifacts )
+        {
+            artifact.setArtifactHandler( mockArtifactHandler );
+            result.add( artifact );
+        }
+        return result;
+    }
 }

Added: maven/shared/trunk/maven-archiver/src/test/resources/dummy.dot-1.5.jar
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/test/resources/dummy.dot-1.5.jar?rev=1235290&view=auto
==============================================================================
Files maven/shared/trunk/maven-archiver/src/test/resources/dummy.dot-1.5.jar (added) and maven/shared/trunk/maven-archiver/src/test/resources/dummy.dot-1.5.jar Tue Jan 24 14:57:41 2012 differ