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:58:36 UTC

svn commit: r1235291 - /maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

Author: krosenvold
Date: Tue Jan 24 14:58:36 2012
New Revision: 1235291

URL: http://svn.apache.org/viewvc?rev=1235291&view=rev
Log:
[MSHARED-182] Added testcase that verifies problem no longer exists

Modified:
    maven/shared/trunk/maven-archiver/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

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=1235291&r1=1235290&r2=1235291&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:58:36 2012
@@ -342,8 +342,8 @@ public class MavenArchiverTest
         MavenSession session = getDummySession();
         MavenProject project = getDummyProject();
 
-        Set<Artifact> artifacts = getArtifacts( getMockArtifact1(), getArtifactWithDot(),
-                                                getMockArtifact2(), getMockArtifact3() );
+        Set<Artifact> artifacts =
+            getArtifacts( getMockArtifact1(), getArtifactWithDot(), getMockArtifact2(), getMockArtifact3() );
 
         project.setArtifacts( artifacts );
 
@@ -360,204 +360,186 @@ public class MavenArchiverTest
         assertTrue( jarFile.exists() );
     }
 
+    public void testDashesInClassPath_MSHARED_182()
+        throws IOException, ManifestException, DependencyResolutionRequiredException
+    {
+        File jarFile = new File( "target/test/dummy.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/" );
+        config.addManifestEntry( "Key1", "value1" );
+        config.addManifestEntry( "key2", "value2" );
+
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+        final Attributes mainAttributes = getJarFileManifest( jarFile ).getMainAttributes();
+        assertEquals( "value1", mainAttributes.getValue( "Key1" ) );
+        assertEquals( "value2", mainAttributes.getValue( "Key2" ) );
+    }
+
     public void testCarriageReturnInManifestEntry()
         throws Exception
     {
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenSession session = getDummySession();
-            MavenProject project = getDummyProject();
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            String ls = System.getProperty( "line.separator" );
-            project.setDescription( "foo " + ls + " bar " );
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.addManifestEntry( "Description", project.getDescription() );
-            // config.addManifestEntry( "EntryWithTab", " foo tab " + ( '\u0009' ) + ( '\u0009' ) + " bar tab" + (
-            // '\u0009' ) );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
+        MavenSession session = getDummySession();
+        MavenProject project = getDummyProject();
 
-            jar = new JarFile( jarFile );
+        String ls = System.getProperty( "line.separator" );
+        project.setDescription( "foo " + ls + " bar " );
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.addManifestEntry( "Description", project.getDescription() );
+        // config.addManifestEntry( "EntryWithTab", " foo tab " + ( '\u0009' ) + ( '\u0009' ) + " bar tab" + (
+        // '\u0009' ) );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
 
-            Attributes attributes = jar.getManifest().getMainAttributes();
-            assertTrue( project.getDescription().indexOf( ls ) > 0 );
-            Attributes.Name description = new Attributes.Name( "Description" );
-            String value = attributes.getValue( description );
-            assertNotNull( value );
-            assertFalse( value.indexOf( ls ) > 0 );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        final Manifest manifest = getJarFileManifest( jarFile );
+        Attributes attributes = manifest.getMainAttributes();
+        assertTrue( project.getDescription().indexOf( ls ) > 0 );
+        Attributes.Name description = new Attributes.Name( "Description" );
+        String value = attributes.getValue( description );
+        assertNotNull( value );
+        assertFalse( value.indexOf( ls ) > 0 );
     }
 
     public void testDeprecatedCreateArchiveAPI()
         throws Exception
     {
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            MavenProject project = getDummyProject();
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-
-            //noinspection deprecation
-            archiver.createArchive( project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenProject project = getDummyProject();
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
 
-            Attributes manifest = jar.getManifest().getMainAttributes();
+        //noinspection deprecation
+        archiver.createArchive( project, config );
+        assertTrue( jarFile.exists() );
+        Attributes manifest = getJarFileManifest( jarFile ).getMainAttributes();
 
-            assertEquals( "Apache Maven", manifest.get( new Attributes.Name( "Created-By" ) ) ); // no version number
+        assertEquals( "Apache Maven", manifest.get( new Attributes.Name( "Created-By" ) ) ); // no version number
 
-            assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
-            assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
-            assertEquals( "Apache", manifest.get( Attributes.Name.SPECIFICATION_VENDOR ) );
+        assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
+        assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
+        assertEquals( "Apache", manifest.get( Attributes.Name.SPECIFICATION_VENDOR ) );
 
-            assertEquals( "archiver test", manifest.get( Attributes.Name.IMPLEMENTATION_TITLE ) );
-            assertEquals( "0.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );
-            assertEquals( "org.apache.dummy", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR_ID ) );
-            assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
+        assertEquals( "archiver test", manifest.get( Attributes.Name.IMPLEMENTATION_TITLE ) );
+        assertEquals( "0.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );
+        assertEquals( "org.apache.dummy", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR_ID ) );
+        assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
 
-            assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
-            assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
+        assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
     }
 
     public void testManifestEntries()
         throws Exception
     {
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            MavenSession session = getDummySession();
-            MavenProject project = getDummyProject();
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-
-            Map<String, String> manifestEntries = new HashMap<String, String>();
-            manifestEntries.put( "foo", "bar" );
-            manifestEntries.put( "first-name", "olivier" );
-            manifestEntries.put( "keyWithEmptyValue", null );
-            config.setManifestEntries( manifestEntries );
-
-            ManifestSection manifestSection = new ManifestSection();
-            manifestSection.setName( "UserSection" );
-            manifestSection.addManifestEntry( "key", "value" );
-            List<ManifestSection> manifestSections = new ArrayList<ManifestSection>();
-            manifestSections.add( manifestSection );
-            config.setManifestSections( manifestSections );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenSession session = getDummySession();
+        MavenProject project = getDummyProject();
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+
+        Map<String, String> manifestEntries = new HashMap<String, String>();
+        manifestEntries.put( "foo", "bar" );
+        manifestEntries.put( "first-name", "olivier" );
+        manifestEntries.put( "keyWithEmptyValue", null );
+        config.setManifestEntries( manifestEntries );
 
-            Attributes manifest = jar.getManifest().getMainAttributes();
+        ManifestSection manifestSection = new ManifestSection();
+        manifestSection.setName( "UserSection" );
+        manifestSection.addManifestEntry( "key", "value" );
+        List<ManifestSection> manifestSections = new ArrayList<ManifestSection>();
+        manifestSections.add( manifestSection );
+        config.setManifestSections( manifestSections );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
 
-            assertEquals( "Apache Maven 3.0.4", manifest.get( new Attributes.Name( "Created-By" ) ) );
+        final Manifest jarFileManifest = getJarFileManifest( jarFile );
+        Attributes manifest = jarFileManifest.getMainAttributes();
 
-            assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
-            assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
-            assertEquals( "Apache", manifest.get( Attributes.Name.SPECIFICATION_VENDOR ) );
+        assertEquals( "Apache Maven 3.0.4", manifest.get( new Attributes.Name( "Created-By" ) ) );
 
-            assertEquals( "archiver test", manifest.get( Attributes.Name.IMPLEMENTATION_TITLE ) );
-            assertEquals( "0.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );
-            assertEquals( "org.apache.dummy", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR_ID ) );
-            assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
+        assertEquals( "archiver test", manifest.get( Attributes.Name.SPECIFICATION_TITLE ) );
+        assertEquals( "0.1", manifest.get( Attributes.Name.SPECIFICATION_VERSION ) );
+        assertEquals( "Apache", manifest.get( Attributes.Name.SPECIFICATION_VENDOR ) );
 
-            assertEquals( "org.apache.maven.Foo", manifest.get( Attributes.Name.MAIN_CLASS ) );
+        assertEquals( "archiver test", manifest.get( Attributes.Name.IMPLEMENTATION_TITLE ) );
+        assertEquals( "0.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );
+        assertEquals( "org.apache.dummy", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR_ID ) );
+        assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
 
-            assertEquals( "bar", manifest.get( new Attributes.Name( "foo" ) ) );
-            assertEquals( "olivier", manifest.get( new Attributes.Name( "first-name" ) ) );
+        assertEquals( "org.apache.maven.Foo", manifest.get( Attributes.Name.MAIN_CLASS ) );
 
-            assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
-            assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
+        assertEquals( "bar", manifest.get( new Attributes.Name( "foo" ) ) );
+        assertEquals( "olivier", manifest.get( new Attributes.Name( "first-name" ) ) );
 
-            assertTrue( StringUtils.isEmpty( manifest.getValue( new Attributes.Name( "keyWithEmptyValue" ) ) ) );
-            assertTrue( manifest.containsKey( new Attributes.Name( "keyWithEmptyValue" ) ) );
+        assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
+        assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
 
-            manifest = jar.getManifest().getAttributes( "UserSection" );
+        assertTrue( StringUtils.isEmpty( manifest.getValue( new Attributes.Name( "keyWithEmptyValue" ) ) ) );
+        assertTrue( manifest.containsKey( new Attributes.Name( "keyWithEmptyValue" ) ) );
 
-            assertEquals( "value", manifest.get( new Attributes.Name( "key" ) ) );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        manifest = jarFileManifest.getAttributes( "UserSection" );
+
+        assertEquals( "value", manifest.get( new Attributes.Name( "key" ) ) );
     }
 
     public void testCreatedByManifestEntryWithoutMavenVersion()
         throws Exception
     {
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            MavenSession session = getDummySessionWithoutMavenVersion();
-            MavenProject project = getDummyProject();
+        MavenSession session = getDummySessionWithoutMavenVersion();
+        MavenProject project = getDummyProject();
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
 
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
 
-            jar = new JarFile( jarFile );
-            Map entries = jar.getManifest().getMainAttributes();
+        final Manifest manifest = getJarFileManifest( jarFile );
+        Map entries = manifest.getMainAttributes();
 
-            assertEquals( "Apache Maven", entries.get( new Attributes.Name( "Created-By" ) ) );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        assertEquals( "Apache Maven", entries.get( new Attributes.Name( "Created-By" ) ) );
     }
 
     /*
@@ -596,39 +578,26 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProject();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            String[] classPathEntries = StringUtils.split( classPath, " " );
-            assertEquals( "dummy1-1.0.jar", classPathEntries[0] );
-            assertEquals( "dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+        final Manifest manifest = getJarFileManifest( jarFile );
+        String classPath = manifest.getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        String[] classPathEntries = StringUtils.split( classPath, " " );
+        assertEquals( "dummy1-1.0.jar", classPathEntries[0] );
+        assertEquals( "dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "dummy3-2.0.jar", classPathEntries[2] );
     }
 
     @SuppressWarnings( "ResultOfMethodCallIgnored" )
@@ -644,39 +613,27 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProjectWithSnapshot();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
 
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            String[] classPathEntries = StringUtils.split( classPath, " " );
-            assertEquals( "dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
-            assertEquals( "dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        final Manifest manifest = getJarFileManifest( jarFile );
+        String classPath = manifest.getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        String[] classPathEntries = StringUtils.split( classPath, " " );
+        assertEquals( "dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+        assertEquals( "dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "dummy3-2.0.jar", classPathEntries[2] );
     }
 
     public void testMavenRepoClassPathValue()
@@ -684,48 +641,33 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProject();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            Manifest manifest = archiver.getManifest( session, project, config );
-            String[] classPathEntries =
-                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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
-
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            classPathEntries = StringUtils.split( classPath, " " );
-            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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+        Manifest manifest = archiver.getManifest( session, project, config );
+        String[] classPathEntries =
+            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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
+
+        String classPath = getJarFileManifest( jarFile ).getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        classPathEntries = StringUtils.split( classPath, " " );
+        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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
     }
 
     public void testMavenRepoClassPathValue_WithSnapshot()
@@ -733,50 +675,34 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProjectWithSnapshot();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_REPOSITORY );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
 
-            Manifest manifest = archiver.getManifest( session, project, config );
-            String[] classPathEntries =
-                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] );
-            assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
-
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            classPathEntries = StringUtils.split( classPath, " " );
-            assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/dummy1-1.1-20081022.112233-1.jar",
-                          classPathEntries[0] );
-            assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        Manifest manifest = archiver.getManifest( session, project, config );
+        String[] classPathEntries =
+            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] );
+        assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
+
+        String classPath = getJarFileManifest( jarFile ).getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        classPathEntries = StringUtils.split( classPath, " " );
+        assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/dummy1-1.1-20081022.112233-1.jar", classPathEntries[0] );
+        assertEquals( "org/apache/dummy/foo/dummy2/1.5/dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/dummy3-2.0.jar", classPathEntries[2] );
     }
 
     public void testCustomClassPathValue()
@@ -784,50 +710,36 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProject();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
-            config.getManifest().setCustomClasspathLayout(
-                "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.version}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            Manifest manifest = archiver.getManifest( session, project, config );
-            String[] classPathEntries =
-                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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            classPathEntries = StringUtils.split( classPath, " " );
-            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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
+        config.getManifest().setCustomClasspathLayout(
+            "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.version}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+        Manifest manifest = archiver.getManifest( session, project, config );
+        String[] classPathEntries =
+            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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+        final Manifest manifest1 = getJarFileManifest( jarFile );
+        String classPath = manifest1.getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        classPathEntries = StringUtils.split( classPath, " " );
+        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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
     }
 
     public void testCustomClassPathValue_WithSnapshotResolvedVersion()
@@ -835,51 +747,37 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProjectWithSnapshot();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
-
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
-            config.getManifest().setCustomClasspathLayout(
-                "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            Manifest manifest = archiver.getManifest( session, project, config );
-            String[] classPathEntries =
-                StringUtils.split( new String( manifest.getMainAttributes().getValue("Class-Path").getBytes() ),
-                                   " " );
-            assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar",
-                          classPathEntries[0] );
-            assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            classPathEntries = StringUtils.split( classPath, " " );
-            assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar",
-                          classPathEntries[0] );
-            assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
+        config.getManifest().setCustomClasspathLayout(
+            "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+
+        Manifest manifest = archiver.getManifest( session, project, config );
+        String[] classPathEntries =
+            StringUtils.split( new String( manifest.getMainAttributes().getValue( "Class-Path" ).getBytes() ), " " );
+        assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar",
+                      classPathEntries[0] );
+        assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+        String classPath = getJarFileManifest( jarFile ).getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        classPathEntries = StringUtils.split( classPath, " " );
+        assertEquals( "org/apache/dummy/dummy1/1.1-SNAPSHOT/TEST-dummy1-1.1-20081022.112233-1.jar",
+                      classPathEntries[0] );
+        assertEquals( "org/apache/dummy/foo/dummy2/1.5/TEST-dummy2-1.5.jar", classPathEntries[1] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
     }
 
     public void testCustomClassPathValue_WithSnapshotForcingBaseVersion()
@@ -887,50 +785,35 @@ public class MavenArchiverTest
     {
         MavenSession session = getDummySession();
         MavenProject project = getDummyProjectWithSnapshot();
-        JarFile jar = null;
-        try
-        {
-            File jarFile = new File( "target/test/dummy.jar" );
-            JarArchiver jarArchiver = getCleanJarArciver( jarFile );
-
-            MavenArchiver archiver = getMavenArchiver( jarArchiver );
+        File jarFile = new File( "target/test/dummy.jar" );
+        JarArchiver jarArchiver = getCleanJarArciver( jarFile );
 
-            MavenArchiveConfiguration config = new MavenArchiveConfiguration();
-            config.setForced( true );
-            config.getManifest().setAddDefaultImplementationEntries( true );
-            config.getManifest().setAddDefaultSpecificationEntries( true );
-            config.getManifest().setMainClass( "org.apache.maven.Foo" );
-            config.getManifest().setAddClasspath( true );
-            config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
-            config.getManifest().setCustomClasspathLayout(
-                "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}" );
-            archiver.createArchive( session, project, config );
-            assertTrue( jarFile.exists() );
-            jar = new JarFile( jarFile );
+        MavenArchiver archiver = getMavenArchiver( jarArchiver );
 
-            Manifest manifest = archiver.getManifest( session, project, config );
-            String[] classPathEntries =
-                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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-
-            String classPath = jar.getManifest().getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
-            assertNotNull( classPath );
-            classPathEntries = StringUtils.split( classPath, " " );
-            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] );
-            assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
-        }
-        finally
-        {
-            // cleanup streams
-            if ( jar != null )
-            {
-                jar.close();
-            }
-        }
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+        config.setForced( true );
+        config.getManifest().setAddDefaultImplementationEntries( true );
+        config.getManifest().setAddDefaultSpecificationEntries( true );
+        config.getManifest().setMainClass( "org.apache.maven.Foo" );
+        config.getManifest().setAddClasspath( true );
+        config.getManifest().setClasspathLayoutType( ManifestConfiguration.CLASSPATH_LAYOUT_TYPE_CUSTOM );
+        config.getManifest().setCustomClasspathLayout(
+            "${artifact.groupIdPath}/${artifact.artifactId}/${artifact.baseVersion}/TEST-${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}" );
+        archiver.createArchive( session, project, config );
+        assertTrue( jarFile.exists() );
+        Manifest manifest = archiver.getManifest( session, project, config );
+        String[] classPathEntries =
+            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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
+
+        String classPath = getJarFileManifest( jarFile ).getMainAttributes().getValue( Attributes.Name.CLASS_PATH );
+        assertNotNull( classPath );
+        classPathEntries = StringUtils.split( classPath, " " );
+        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] );
+        assertEquals( "org/apache/dummy/bar/dummy3/2.0/TEST-dummy3-2.0.jar", classPathEntries[2] );
     }
 
     private JarArchiver getCleanJarArciver( File jarFile )
@@ -1175,4 +1058,23 @@ public class MavenArchiverTest
         }
         return result;
     }
+
+    public Manifest getJarFileManifest( File jarFile )
+        throws IOException
+    {
+        JarFile jar = null;
+        try
+        {
+            jar = new JarFile( jarFile );
+            return jar.getManifest();
+        }
+        finally
+        {
+            if ( jar != null )
+            {
+                jar.close();
+            }
+        }
+
+    }
 }