Regarding your JDK 17/18 support and your aQute issue.
[INFO] --- ebr-maven-plugin:1.4.0-SNAPSHOT:bundle (default-bundle) @ org.antlr.runtime ---
[INFO] Gathering dependencies
[INFO] Configured Artifact: org.antlr:antlr-runtime:3.5.2:jar
[INFO] Unpacking /home/akurtakov/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar to /home/akurtakov/git/orbit-recipes/antlr/org.antlr.runtime_3.5.2/target/dependency-bin with includes "**/*" and excludes "META-INF/maven/**/*.*"
[INFO] Merging collected dependencies
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 118 resources
[INFO] Generating OSGi MANIFEST.MF
[ERROR] An internal error occurred
java.util.ConcurrentModificationException
at java.util.TreeMap.callMappingFunctionWithCheck (TreeMap.java:750)
at java.util.TreeMap.computeIfAbsent (TreeMap.java:604)
at aQute.bnd.osgi.Jar.putResource (Jar.java:288)
at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:202)
at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:177)
at java.nio.file.Files.walkFileTree (Files.java:2811)
at aQute.bnd.osgi.Jar.buildFromDirectory (Jar.java:176)
at aQute.bnd.osgi.Jar.<init> (Jar.java:119)
at aQute.bnd.osgi.Jar.<init> (Jar.java:172)
at org.apache.felix.bundleplugin.BundlePlugin.getOSGiBuilder (BundlePlugin.java:604)
at org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer (ManifestPlugin.java:285)
at org.apache.felix.bundleplugin.ManifestPlugin.execute (ManifestPlugin.java:111)
at org.eclipse.ebr.maven.BundleMojo.buildBundle (BundleMojo.java:358)
at org.eclipse.ebr.maven.BundleMojo.execute (BundleMojo.java:462)
This is because of an old biz.aQute.bnd lib.
Eclipse Jetty hit this same issue early, during the Java-17 Early Access builds.
We build all the way up to Java-19 EA now.
Update your biz.aQute.bndlib to version 5.3.0
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bndlib</artifactId>
<version>5.3.0</version>
</dependency>
If you manage the ebr-maven-plugin, then update it there.
Otherwise, if you are a simple project using the ebr-maven-plugin, the above dependency in a <dependencyManagement> should be sufficient.
Btw, we LOVE the new Tycho maven P2 repo featureset.
It's eliminated a big headache on our releases.
We were spending on a good day about 6+ man hours to get an old school P2 repo out per release.
On a problematic release it could easily top 40 man hours per release (ugh!).
Now it's brain dead simple and just works, with an occasional bump in the Tycho version being used, which is automatically reported to us via the github tooling.
- Joakim