Author: brett Date: Tue Aug 23 00:31:04 2005 New Revision: 239374 URL: http://svn.apache.org/viewcvs?rev=239374&view=rev Log: PR: MNG-742 Submitted by: Timothy Bennett Reviewed by: Brett Porter allow addition of custom entries to the manifest
Modified: maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Modified: maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java?rev=239374&r1=239373&r2=239374&view=diff ============================================================================== --- maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java (original) +++ maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiveConfiguration.java Tue Aug 23 00:31:04 2005 @@ -17,6 +17,8 @@ */ import java.io.File; +import java.util.HashMap; +import java.util.Map; /** * Capture common archive configuration. @@ -35,6 +37,8 @@ private ManifestConfiguration manifest; + private Map manifestEntries = new HashMap(); + public boolean isCompress() { return compress; @@ -77,5 +81,25 @@ public void setManifest( ManifestConfiguration manifest ) { this.manifest = manifest; + } + + 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; } } Modified: maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=239374&r1=239373&r2=239374&view=diff ============================================================================== --- maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java (original) +++ maven/components/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Tue Aug 23 00:31:04 2005 @@ -32,6 +32,7 @@ import java.io.OutputStream; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; @@ -42,7 +43,7 @@ public class MavenArchiver { private JarArchiver archiver = new JarArchiver(); - + private File archiveFile; /** @@ -59,12 +60,13 @@ m.addConfiguredAttribute( buildAttr ); Manifest.Attribute createdAttr = new Manifest.Attribute( "Created-By", "Apache Maven" ); m.addConfiguredAttribute( createdAttr ); - + Artifact projectArtifact = project.getArtifact(); - + if ( projectArtifact.isSnapshot() ) { - Manifest.Attribute buildNumberAttr = new Manifest.Attribute( "Build-Number", "" + project.getSnapshotDeploymentBuildNumber() ); + Manifest.Attribute buildNumberAttr = new Manifest.Attribute( "Build-Number", "" + + project.getSnapshotDeploymentBuildNumber() ); m.addConfiguredAttribute( buildNumberAttr ); } @@ -222,16 +224,16 @@ // top-level POM elements so that applications that wish to access // POM information without the use of maven tools can do so. // ---------------------------------------------------------------------- - + // we have to clone the project instance so we can write out the pom with the deployment version, // without impacting the main project instance... MavenProject workingProject = new MavenProject( project ); - + if ( workingProject.getArtifact().isSnapshot() ) { workingProject.setVersion( workingProject.getSnapshotDeploymentVersion() ); } - + String groupId = workingProject.getGroupId(); String artifactId = workingProject.getArtifactId(); @@ -274,6 +276,20 @@ } Manifest manifest = getManifest( workingProject, archiveConfiguration.getManifest() ); + + // 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 ); + } + } // Configure the jar archiver.addConfiguredManifest( manifest ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]