Author: dennisl
Date: Fri Aug  1 10:16:44 2008
New Revision: 681754

URL: http://svn.apache.org/viewvc?rev=681754&view=rev
Log:
[MSHARED-50] Manifest sections are only added to the manifest when the archive 
is created

Modified:
    maven/shared/trunk/maven-archiver/pom.xml
    
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/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/pom.xml?rev=681754&r1=681753&r2=681754&view=diff
==============================================================================
--- maven/shared/trunk/maven-archiver/pom.xml (original)
+++ maven/shared/trunk/maven-archiver/pom.xml Fri Aug  1 10:16:44 2008
@@ -85,7 +85,7 @@
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>3.8.1</version>
+      <version>3.8.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>

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=681754&r1=681753&r2=681754&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
 Fri Aug  1 10:16:44 2008
@@ -81,6 +81,33 @@
             }
         }
 
+        // any custom manifest sections in the archive configuration manifest?
+        if ( !config.isManifestSectionsEmpty() )
+        {
+            List sections = config.getManifestSections();
+            for ( Iterator iter = sections.iterator(); iter.hasNext(); )
+            {
+                ManifestSection section = (ManifestSection) iter.next();
+                Manifest.Section theSection = new Manifest.Section();
+                theSection.setName( section.getName() );
+
+                if ( !section.isManifestEntriesEmpty() )
+                {
+                    Map sectionEntries = section.getManifestEntries();
+                    Set keys = sectionEntries.keySet();
+                    for ( Iterator it = keys.iterator(); it.hasNext(); )
+                    {
+                        String key = (String) it.next();
+                        String value = (String) sectionEntries.get( key );
+                        Manifest.Attribute attr = new Manifest.Attribute( key, 
value );
+                        theSection.addConfiguredAttribute( attr );
+                    }
+                }
+
+                manifest.addConfiguredSection( theSection );
+            }
+        }
+
         return manifest;
     }
 
@@ -364,33 +391,6 @@
 
         Manifest manifest = getManifest( workingProject, archiveConfiguration 
);
 
-        // any custom manifest sections in the archive configuration manifest?
-        if ( !archiveConfiguration.isManifestSectionsEmpty() )
-        {
-            List sections = archiveConfiguration.getManifestSections();
-            for ( Iterator iter = sections.iterator(); iter.hasNext(); )
-            {
-                ManifestSection section = (ManifestSection) iter.next();
-                Manifest.Section theSection = new Manifest.Section();
-                theSection.setName( section.getName() );
-
-                if ( !section.isManifestEntriesEmpty() )
-                {
-                    Map entries = section.getManifestEntries();
-                    Set keys = entries.keySet();
-                    for ( Iterator it = keys.iterator(); it.hasNext(); )
-                    {
-                        String key = (String) it.next();
-                        String value = (String) entries.get( key );
-                        Manifest.Attribute attr = new Manifest.Attribute( key, 
value );
-                        theSection.addConfiguredAttribute( attr );
-                    }
-                }
-
-                manifest.addConfiguredSection( theSection );
-            }
-        }
-
         // Configure the jar
         archiver.addConfiguredManifest( manifest );
 

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=681754&r1=681753&r2=681754&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
 Fri Aug  1 10:16:44 2008
@@ -441,7 +441,35 @@
             }
         }
     }
-    
+
+    /**
+     * Test to make sure that manifest sections are present in the manifest 
prior to the archive has been created.
+     */
+    public void testManifestSections()
+        throws Exception
+    {
+        MavenArchiver archiver = new MavenArchiver();
+
+        MavenProject project = getDummyProject();
+        MavenArchiveConfiguration config = new MavenArchiveConfiguration();
+
+        ManifestSection manifestSection = new ManifestSection();
+        manifestSection.setName( "SectionOne" );
+        manifestSection.addManifestEntry( "key", "value" );
+        List manifestSections = new ArrayList();
+        manifestSections.add( manifestSection );
+        config.setManifestSections( manifestSections );
+
+        Manifest manifest = archiver.getManifest( project, config );
+
+        Manifest.Section section = manifest.getSection( "SectionOne" );
+        assertNotNull( "The section is not present in the manifest as it 
should be.",  section );
+
+        Manifest.Attribute attribute = section.getAttribute( "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.getValue() );
+    }
+
     public void testDefaultClassPathValue()
         throws Exception
     {


Reply via email to