diff --git a/biz.aQute.bndlib.tests/test/test/BuilderTest.java b/biz.aQute.bndlib.tests/test/test/BuilderTest.java index a30e178ce5..669eec3148 100644 --- a/biz.aQute.bndlib.tests/test/test/BuilderTest.java +++ b/biz.aQute.bndlib.tests/test/test/BuilderTest.java @@ -2401,6 +2401,36 @@ public void testConduit() throws Exception { } } + @Test + public void testSignedJarConduit() throws Exception { + Properties p = new Properties(); + p.setProperty("-conduit", "jar/osgi-3.0.0.jar"); + Builder b = new Builder(); + try { + b.setProperties(p); + Jar jars[] = b.builds(); + assertTrue(b.check()); + assertNotNull(jars); + assertEquals(1, jars.length); + + Jar jar = jars[0]; + Resource r = jar.getResource("META-INF/OSGI.RSA"); + assertNotNull(r); + + File f = new File("tmp.jar"); + f.deleteOnExit(); + jar.write(f); + + try (Jar wj = new Jar(f)) { + Resource wr = wj.getResource("META-INF/OSGI.RSA"); + assertNotNull(wr); + assertEquals(wj.getSHA256(), jar.getSHA256()); + } + } finally { + b.close(); + } + } + /** * Export a package that was loaded with resources * diff --git a/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java b/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java index 1099c6cc24..0fa88e5ae9 100644 --- a/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java +++ b/biz.aQute.bndlib/src/aQute/bnd/osgi/Builder.java @@ -1423,6 +1423,7 @@ public Jar[] builds() throws Exception { int n = 0; for (String file : map.keySet()) { Jar c = new Jar(getFile(file)); + c.setDoNotTouchManifest(); buildInstrs.compression() .ifPresent(c::setCompression);