Skip to main content



      Home
Home » Eclipse Projects » Equinox » Inquiry About Support for Java 21
Inquiry About Support for Java 21 [message #1864819] Thu, 11 April 2024 01:12 Go to next message
Eclipse UserFriend
We have been using Equinox as the OSGi implementation in our product. We are currently in the process of updating our product to be compatible with Java 21, which involves compiling our code with the source version set to 21. This change understandably introduces the following requirement into our bundles' manifests:

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=21))"


After updating to the latest Equinox version, upon attempting to install features in our product during the build process, we've encountered an issue where the installation fails due to the unavailability of this capability. A programmatic inspection of the available capabilities revealed support up to Java SE 17 only, as shown below:

osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.0.0,1.1.0,1.2.0,1.3.0,1.4.0,1.5.0,1.6.0,1.7.0,1.8.0,9.0.0,10.0.0,11.0.0,12.0.0,13.0.0,14.0.0,15.0.0,16.0.0,17.0.0"


Based on this, we assume that the latest version of Equinox does not yet support Java SE 21. We would greatly appreciate any insights or confirmations regarding this assumption. Additionally, if Equinox does not currently support Java 21, is there a projected timeline for when support might be introduced? Ensuring compatibility with Java 21 is critical for our product's development strategy, and any information or guidance on this matter would be incredibly helpful.

Thank you for your support and looking forward to your guidance.
Re: Inquiry About Support for Java 21 [message #1864823 is a reply to message #1864819] Thu, 11 April 2024 08:54 Go to previous messageGo to next message
Eclipse UserFriend
Are you sure the product you are installing into isn't running with a Java 17 JRE/JDK? Running with Java 21 and requiring Java 21 is definitely supported and definitely works. All of these products do exactly that:

https://download.eclipse.org/technology/epp/staging/
Re: Inquiry About Support for Java 21 [message #1864824 is a reply to message #1864823] Thu, 11 April 2024 09:17 Go to previous messageGo to next message
Eclipse UserFriend
Running with Java 17 and 21 is working fine.

But the concern is with compiling the product with Java 21. As I mentioned before, when I set the source version in compiler plugin to 21, it adds below require capability which is expected.

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=21))"

But as I can see this capability is not available in the current OSGi environment. If you think this should be available, can you please provide some pointers for me to debug my issue.

When you say products in below link are working with Java 21, is there a specific reason to pointing to staging products?
https://download.eclipse.org/technology/epp/staging/
Re: Inquiry About Support for Java 21 [message #1864825 is a reply to message #1864823] Thu, 11 April 2024 09:38 Go to previous messageGo to next message
Eclipse UserFriend
Can you also point me to a source code repository of a product in https://download.eclipse.org/technology/epp/staging/ that is compiling with Java 21?
Re: Inquiry About Support for Java 21 [message #1864833 is a reply to message #1864825] Fri, 12 April 2024 03:14 Go to previous messageGo to next message
Eclipse UserFriend
Those products come from this repository:

https://github.com/eclipse-packaging/packages

The statement that "this capability is not available in the current OSGi environment" is not correct. The runtime synthesizes the profile details from the running environment.

Most likely the failure you see is one from p2 and for that case, the installation relies on the a.jre.javase IUs available in some p2 repository.

index.php/fa/44138/0/

The Tycho build can generates just IUs into the repository. I forget the details...

[Updated on: Fri, 12 April 2024 03:15] by Moderator

Re: Inquiry About Support for Java 21 [message #1864883 is a reply to message #1864833] Thu, 18 April 2024 03:51 Go to previous messageGo to next message
Eclipse UserFriend
Do you have any reference to understand how the tycho build generate this in the repository? My build seems to be generating the IU for Java 17 only though I have not set any parameter related to Java 17 specifically.
Re: Inquiry About Support for Java 21 [message #1864887 is a reply to message #1864883] Thu, 18 April 2024 10:02 Go to previous messageGo to next message
Eclipse UserFriend
No, I'm not sure. Docs are here:

https://tycho.eclipseprojects.io/doc/latest/
https://tycho.eclipseprojects.io/doc/latest/tycho-p2-repository-plugin/plugin-info.html

You could ask about it here:

https://github.com/eclipse-tycho/tycho/discussions

(Maybe you have to run the build with Java 21.)
Re: Inquiry About Support for Java 21 [message #1864941 is a reply to message #1864887] Sat, 20 April 2024 12:19 Go to previous message
Eclipse UserFriend
I finally figured it out. It was due to the outdated dependency of org.eclipse.equinox.p2.publisher component in the p2 maven plugin we created to work with p2 repository.

JREAction.java is supposed to actually generate the a.jre.javase IU and it was by default using Java 17. But with https://github.com/eclipse-equinox/p2/pull/462, it is now properly generating the IU for the current Java version and Java 21 IU is now properly generated.

Thank you for the support and pointers provided.

[Updated on: Sat, 20 April 2024 13:02] by Moderator

Previous Topic:p2.inf instructions don't use newly updated plugin, instead use the currently installed version
Next Topic:Custom prompt
Goto Forum:
  


Current Time: Sun Apr 20 23:26:08 EDT 2025

Powered by FUDForum. Page generated in 0.04336 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top