You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/07/11 09:40:10 UTC
svn commit: r420750 - in /maven/shared/trunk/maven-archiver/src:
main/java/org/apache/maven/archiver/MavenArchiver.java
test/java/org/apache/maven/archiver/MavenArchiverTest.java
Author: brett
Date: Tue Jul 11 00:40:10 2006
New Revision: 420750
URL: http://svn.apache.org/viewvc?rev=420750&view=rev
Log:
[MNG-2284] fix duplication of entries in the manifest
Submitted by: Fredrik Vraalsen
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=420750&r1=420749&r2=420750&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 Jul 11 00:40:10 2006
@@ -149,7 +149,9 @@
if ( classpath.length() > 0 )
{
- addManifestAttribute( m, entries, "Class-Path", classpath.toString() );
+ // Class-Path is special and should be added to manifest even if
+ // it is specified in the manifestEntries section
+ addManifestAttribute( m, "Class-Path", classpath.toString() );
}
}
@@ -340,20 +342,6 @@
}
Manifest manifest = getManifest( workingProject, archiveConfiguration );
-
- // 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 );
- }
- }
// any custom manifest sections in the archive configuration manifest?
if ( !archiveConfiguration.isManifestSectionsEmpty() )
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=420750&r1=420749&r2=420750&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 Jul 11 00:40:10 2006
@@ -23,7 +23,10 @@
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.archiver.jar.Manifest;
+import java.io.File;
+import java.util.Collections;
import java.util.Comparator;
+import java.util.List;
import java.util.Set;
import java.util.TreeSet;
@@ -131,4 +134,44 @@
assertEquals( "dummy2 dummy4",
manifest.getMainSection().getAttributeValue( "Extension-List" ) );
}
+
+ public void testMultiClassPath() throws Exception {
+ final File tempFile = File.createTempFile( "maven-archiver-test-", ".jar" );
+
+ try {
+ MavenArchiver archiver = new MavenArchiver();
+
+ Model model = new Model();
+ model.setArtifactId( "dummy" );
+
+
+ MavenProject project = new MavenProject( model ) {
+ public List getRuntimeClasspathElements() {
+ return Collections.singletonList( tempFile.getAbsolutePath() );
+ }
+ };
+
+ // there should be a mock or a setter for this field.
+ ManifestConfiguration manifestConfig = new ManifestConfiguration()
+ {
+ public boolean isAddClasspath()
+ {
+ return true;
+ }
+ };
+
+ MavenArchiveConfiguration archiveConfiguration = new MavenArchiveConfiguration();
+ archiveConfiguration.setManifest( manifestConfig );
+ archiveConfiguration.addManifestEntry( "Class-Path", "help/" );
+
+ Manifest manifest = archiver.getManifest( project, archiveConfiguration );
+ String classPath = manifest.getMainSection().getAttribute( "Class-Path" ).getValue();
+ assertTrue( "User specified Class-Path entry was not added to manifest", classPath.indexOf( "help/" ) != -1 );
+ assertTrue( "Class-Path generated by addClasspath was not added to manifest", classPath.indexOf( tempFile.getName() ) != -1 );
+ } finally {
+ tempFile.delete();
+ }
+
+ }
+
}