Skip to content

Commit dad1a30

Browse files
committed
[MSHARED-796] use java.specification.version instead of java.version
in Build-Jdk manifest entry. This will keep by default the important information for generated bytecode reproducibility: the major version of the JDK used. But this will remove the hard to reproduce part that does not influence generated bytecode: the patch level
1 parent 9ed4222 commit dad1a30

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main/java/org/apache/maven/archiver/MavenArchiver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ private void handleSpecificationEntries( MavenProject project, Map<String, Strin
508508
private void addCustomEntries( Manifest m, Map<String, String> entries, ManifestConfiguration config )
509509
throws ManifestException
510510
{
511-
addManifestAttribute( m, entries, "Build-Jdk", System.getProperty( "java.version" ) );
511+
addManifestAttribute( m, entries, "Build-Jdk", System.getProperty( "java.specification.version" ) );
512512

513513
/*
514514
* TODO: rethink this, it wasn't working Artifact projectArtifact = project.getArtifact(); if (

src/test/java/org/apache/maven/archiver/MavenArchiverTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,8 @@ public void testDeprecatedCreateArchiveAPI()
499499
assertEquals( "0.1.1", manifest.get( Attributes.Name.IMPLEMENTATION_VERSION ) );
500500
assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
501501

502-
assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
502+
assertEquals( System.getProperty( "java.specification.version" ),
503+
manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
503504
}
504505

505506
@Test
@@ -554,7 +555,8 @@ public void testManifestEntries()
554555
assertEquals( "olivier", manifest.get( new Attributes.Name( "first-name" ) ) );
555556
assertEquals( "org.apache.maven.archiver", manifest.getValue( "Automatic-Module-Name" ) );
556557

557-
assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
558+
assertEquals( System.getProperty( "java.specification.version" ),
559+
manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
558560

559561
assertTrue( StringUtils.isEmpty( manifest.getValue( new Attributes.Name( "keyWithEmptyValue" ) ) ) );
560562
assertTrue( manifest.containsKey( new Attributes.Name( "keyWithEmptyValue" ) ) );

0 commit comments

Comments
 (0)