Skip to content

Commit 727455a

Browse files
committed
#36: Created-by entry does not reflect who created the JAR
This closes #36
1 parent 8857663 commit 727455a

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

src/main/java/org/codehaus/plexus/archiver/jar/JdkManifestFactory.java

+18-3
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
* limitations under the License.
1717
*/
1818

19+
import java.io.InputStream;
1920
import java.util.Map;
21+
import java.util.Properties;
2022
import java.util.jar.Attributes;
2123

2224
import org.codehaus.plexus.archiver.ArchiverException;
25+
import org.codehaus.plexus.util.PropertyUtils;
2326

2427
/**
2528
* Not part of any public API
@@ -32,9 +35,21 @@ public static java.util.jar.Manifest getDefaultManifest()
3235
{
3336
final java.util.jar.Manifest defaultManifest = new java.util.jar.Manifest();
3437
defaultManifest.getMainAttributes().putValue( "Manifest-Version", "1.0" );
35-
defaultManifest.getMainAttributes().putValue( "Created-By", System.getProperty(
36-
"java.vm.version" ) + " (" + System.getProperty(
37-
"java.vm.vendor" ) + ")" );
38+
39+
String createdBy = "Plexus Archiver";
40+
41+
InputStream inputStream = JdkManifestFactory.class.getResourceAsStream( "/META-INF/"
42+
+ "maven/org.codehaus.plexus/plexus-archiver/pom.properties" );
43+
Properties properties = PropertyUtils.loadProperties( inputStream );
44+
if ( properties != null )
45+
{
46+
String plexusArchiverVersion = properties.getProperty( "version" );
47+
if ( plexusArchiverVersion != null )
48+
{
49+
createdBy += " " + plexusArchiverVersion;
50+
}
51+
}
52+
defaultManifest.getMainAttributes().putValue( "Created-By", createdBy );
3853

3954
return defaultManifest;
4055
}

src/main/java/org/codehaus/plexus/archiver/jar/Manifest.java

+17-3
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@
3030
import java.util.Hashtable;
3131
import java.util.Iterator;
3232
import java.util.Locale;
33+
import java.util.Properties;
3334
import java.util.StringTokenizer;
3435
import java.util.Vector;
3536
import java.util.jar.Attributes;
3637

3738
import org.codehaus.plexus.archiver.ArchiverException;
39+
import org.codehaus.plexus.util.PropertyUtils;
3840

3941
/**
4042
* Holds the data of a jar manifest.
@@ -739,9 +741,21 @@ public static Manifest getDefaultManifest()
739741
{
740742
final Manifest defaultManifest = new Manifest();
741743
defaultManifest.getMainAttributes().putValue( "Manifest-Version", "1.0" );
742-
defaultManifest.getMainAttributes().putValue( "Created-By", System.getProperty(
743-
"java.vm.version" ) + " (" + System.getProperty(
744-
"java.vm.vendor" ) + ")" );
744+
745+
String createdBy = "Plexus Archiver";
746+
747+
InputStream inputStream = Manifest.class.getResourceAsStream( "/META-INF/"
748+
+ "maven/org.codehaus.plexus/plexus-archiver/pom.properties" );
749+
Properties properties = PropertyUtils.loadProperties( inputStream );
750+
if ( properties != null )
751+
{
752+
String plexusArchiverVersion = properties.getProperty( "version" );
753+
if ( plexusArchiverVersion != null )
754+
{
755+
createdBy += " " + plexusArchiverVersion;
756+
}
757+
}
758+
defaultManifest.getMainAttributes().putValue( "Created-By", createdBy );
745759

746760
return defaultManifest;
747761
}

0 commit comments

Comments
 (0)