Skip to content

Commit 2d61b0f

Browse files
[MASSEMBLY-986] Minimal default Manifest configuration of jar archiver should be respected (#134)
1 parent 17e7eb5 commit 2d61b0f

File tree

6 files changed

+22
-9
lines changed

6 files changed

+22
-9
lines changed

src/it/projects/reproducible/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
</descriptors>
5151
<archive>
5252
<manifest>
53-
<!-- remove default entries since it contains "Created-By: Maven Source Plugin <current plugin version>"
53+
<!-- remove default entries since it contains "Created-By: Maven Assembly Plugin <current plugin version>"
5454
which varies over time in this IT -->
5555
<addDefaultEntries>false</addDefaultEntries>
5656
</manifest>

src/it/projects/reproducible/verify.groovy

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,20 @@
1818
* under the License.
1919
*/
2020

21-
//import java.util.zip.*
21+
import java.util.jar.*;
2222
import org.apache.commons.compress.archivers.zip.*
2323

2424
File deployDir = new File( basedir, 'target/repo/org/apache/maven/its/reproducible/1.0' )
2525

2626
assert deployDir.exists()
2727

28+
// Minimal Manifest was created
29+
JarFile jarFile = new JarFile( new File( deployDir, "reproducible-1.0-src.jar" ) )
30+
Manifest mf = jarFile.getManifest()
31+
Attributes attrs = mf.getMainAttributes()
32+
assert attrs.size() == 1
33+
assert attrs.containsKey(Attributes.Name.MANIFEST_VERSION)
34+
2835
ZipFile zip = new ZipFile( new File( deployDir, "reproducible-1.0-src.zip" ) )
2936
StringBuilder sb = new StringBuilder()
3037
StringBuilder sb2 = new StringBuilder()

src/it/projects/reproducible/zip-content-755.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ executable: 100755
2828

2929
resulting sha1:
3030
97d0ea3b4a87cd3ea78edd1c3c25914d69ea97f3 reproducible-1.0-src.zip.sha1
31-
a0c4cf1ed244e60221e12367f50ff676066b8e65 reproducible-1.0-src.jar.sha1
31+
d3aec46dedbfc5dcb31f7055f130860aeb8fcf66 reproducible-1.0-src.jar.sha1
3232
bf93dd529253157352b87097d9d23eba8c9ca61a reproducible-1.0-src.tar.sha1

src/it/projects/reproducible/zip-content-775.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ executable: 100775
2828

2929
resulting sha1:
3030
50116502c6107740c2a35ef296b5abda08c5dec7 reproducible-1.0-src.zip.sha1
31-
cc7e3a984179f63d6b37bc86c61e9cc461c62288 reproducible-1.0-src.jar.sha1
31+
3bb81a423ca18a01dd76e0f872c66a1a7528f064 reproducible-1.0-src.jar.sha1
3232
3efc10ec9c3099ba061e58d5b2a935ba643da237 reproducible-1.0-src.tar.sha1

src/it/projects/reproducible/zip-content-win.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ executable: 100644
2828

2929
resulting sha1:
3030
cb1dc226d702733bfa405b7090b74ab7e77bf39e reproducible-1.0-src.zip.sha1
31-
3b31d88a36985f526fb3fe6ba5987387e4887f23 reproducible-1.0-src.jar.sha1
31+
a916d0299f54a790ede766709ce54daebef5e818 reproducible-1.0-src.jar.sha1
3232
b85f960069d6a444f928a87761b63fde60ea687d reproducible-1.0-src.tar.sha1

src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,7 @@ protected Archiver createArchiver(
293293
final List<FileSelector> extraSelectors = new ArrayList<>();
294294
final List<ArchiveFinalizer> extraFinalizers = new ArrayList<>();
295295
if (archiver instanceof JarArchiver) {
296-
if (mergeManifestMode != null) {
297-
((JarArchiver) archiver)
298-
.setFilesetmanifest(JarArchiver.FilesetManifestConfig.valueOf(mergeManifestMode));
299-
}
296+
configureJarArchiver((JarArchiver) archiver, mergeManifestMode);
300297

301298
extraSelectors.add(new JarSecurityFileSelector());
302299

@@ -351,6 +348,15 @@ protected Archiver createArchiver(
351348
return archiver;
352349
}
353350

351+
private void configureJarArchiver(JarArchiver archiver, String mergeManifestMode) {
352+
353+
if (mergeManifestMode != null) {
354+
archiver.setFilesetmanifest(JarArchiver.FilesetManifestConfig.valueOf(mergeManifestMode));
355+
}
356+
357+
archiver.setMinimalDefaultManifest(true);
358+
}
359+
354360
private void configureContainerDescriptorHandler(
355361
final ContainerDescriptorHandler handler,
356362
final Xpp3Dom config,

0 commit comments

Comments
 (0)