Added functionality to maven-archiver so plug-ins can add custom entries to the 
archiver's manifest
---------------------------------------------------------------------------------------------------

         Key: MNG-742
         URL: http://jira.codehaus.org/browse/MNG-742
     Project: Maven 2
        Type: Improvement
  Components: maven-archiver  
    Versions: 2.0-alpha-3    
 Reporter: Timothy Bennett
 Attachments: MavenArchiveConfiguration.java, MavenArchiver.java

Added functionality to the maven-archiver plugin so that other plugins can add 
custom manifest entries.  Made some fairly minor changes to both 
MavenArchiveConfiguration.java and MavenArchiver.java.  Description of changes 
below, and I've attached my marked up changes to the M2 HEAD of both files.

MavenArchiveConfiguration.java
=========================
Added the following methods (along with appropriate imports):

        private Map manifestEntries = new HashMap();

        public void addManifestEntry(Object key, Object value) {
                manifestEntries.put(key, value);
        }

        public void addManifestEntries(Map map) {
                manifestEntries.putAll(map);
        }

        public boolean isManifestEntriesEmpty() {
                return manifestEntries.isEmpty();
        }

        public Map getManifestEntries() {
                return manifestEntries;
        }

Changes maintain a collection of custom manifest entries stored a name-value 
pairs.  Plugins use the first two methods to add custom manifest entries to the 
collection.  MavenArchiver uses the last two methods to retrieve the set of 
entries and add them to the archive's manifest.

===============
MavenArchiver.java
===============
In the createArchive() method of MavenArchiver, added the following marked code 
block to retrieve the custom manifest entries (if any available) from the 
MavenArchiveConfiguration and add them to the archive's manifest.

        Manifest manifest = getManifest( project, 
archiveConfiguration.getManifest() );

// THIS IS THE START OF THE CODE BLOCK I ADDED

                // any custom manifest entries in the archive configuration 
manifest?
                if (!archiveConfiguration.isManifestEntriesEmpty()) {
                        Map entries = archiveConfiguration.getManifestEntries();
                        Set keys = entries.keySet();
                        for (Iterator iter = keys.iterator(); iter.hasNext(); ) 
{
                                String key = (String) iter.next();
                                String value = (String) entries.get(key);
                                Manifest.Attribute attr = new 
Manifest.Attribute(key, value);
                                manifest.addConfiguredAttribute(attr);
                        }
                }

// THIS IS THE END OF THE CODE BLOCK I ADDED

        // Configure the jar
        archiver.addConfiguredManifest( manifest );


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to