Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
More and more projects are supporting multiple JDK versions ranging from Java8 all the way to Java13. Supporting a wide range of JDK versions mean that more projects are having module-info.class which forces maven-bundle-plugin to incorrectly set in the MANIFEST_._MF file:
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=9.0))"
... despite the project being built for JDK8 compatibility.
Many OSGI projects, including mine, are being forced to use the <_noee> instruction as a workaround to this issue, but soon when my project is to support JDK9 and above as well as JDK8 - I will be forced to fork my project into 2 master branches (one for JDK8 and the other for >JDK9).
The Maven Bundle Plugin would benefit from either having a new <force-ee> instruction or some other alternative way to specify one or more JDK versions that would result in the MANIFEST.MF file having the "Require-Capability" field set to whatever is defined in <force-ee>.
Having "Require-Capability" automatically set to the compiler version being used to build the OSGI project is a more invisible way to address this issue.