sudhan sudh
sudhan sudh

Reputation: 39

Apache Ignite 2.16 Compatibility Issues with Jetty 12.0.13

I am upgrading Jetty 9.4.53.v20231009 to Jetty 12.0.13 while using Apache Ignite 2.16, but I encountered the following error during startup:

java.lang.NoSuchMethodError: 'void org.eclipse.jetty.xml.XmlConfiguration.(java.net.URL)' at org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.loadJettyConfiguration(GridJettyRestProtocol.java:278) at org.apache.ignite.internal.processors.rest.protocols.http.jetty.GridJettyRestProtocol.start(GridJettyRestProtocol.java:129)

This occurs because Jetty 12.x has removed the XmlConfiguration(URL url) constructor, which is still used in Ignite's GridJettyRestProtocol.

The new XmlConfiguration constructors in Jetty 12.x are: XmlConfiguration(Resource resource) XmlConfiguration(Resource resource, Map<String, Object> idMap, Map<String, String> properties)

Context: Current Setup: Jetty 9.4.53.v20231009 with Ignite 2.16 (works fine)

Upgrade Target: Jetty 12.0.13 with Ignite 2.16

JDK Version: Java 17

Encountered Issue: Missing XmlConfiguration(URL url) constructor.

Questions:

Does Apache Ignite 2.16 officially support Jetty 12.0.13?

Are there any workarounds for the XmlConfiguration(URL url) issue?

Are there plans for Apache Ignite to support Jetty 12.x, considering Jetty 9.x’s end of life?

Upvotes: 0

Views: 93

Answers (1)

Stephen Darlington
Stephen Darlington

Reputation: 52565

As you note, the API changed, so, no, Ignite does not currently support Jetty 12.

In fact, it's a little more complicated than that. Ignite 2.16 is built using Java 8. The last version of Jetty that is supported on Java 8 is 9.4.

The next version of Ignite will be built using Java 11. While it has not been implemented yet, it will be possible to update to Jetty 11. (Patches appreciated, of course.)

Jetty 12 requires Java 17. I'm not aware of any plans to migrate Ignite to Java 17.

Upvotes: 0

Related Questions