EXIficient / exificient-grammars

Java Implementation of EXI (grammars part)
http://exificient.github.io/java/
MIT License
4 stars 9 forks source link

FR: Updated Exificient-Grammars to be buildable against newer JDK versions #19

Closed jsbiff closed 10 months ago

jsbiff commented 1 year ago

When I first downloaded exificient-grammars, I attempted to build it with OpenJDK Semeru (from IBM) 17.

The build failed with lots of errors about missing APIs.

I did some Googling, and found out that somewhere around JDK 9 or 11, Java started to remove some APIs from being built in to JDK, out to external jars (for example, some jars got moved out to jakarta) and in some cases, I think those api's package names got changed when removed from core Java APIs.

So, it appears that to get some older projects like Exificient to build with newer versions of JDK, some refactoring of code is required. Also, dependencies likely need to be updated.

JDK 8.0 apparently will still be supported until 2030, so there's still plenty of time, but it would be good to get it updated to build with the most recent LTS release which is JDK 17.

danielpeintner commented 1 year ago

Note: we plan to keep JDK 8 support for a while even if it is rather old now.

Moving to Java 17 should be possible for the essential part. There are JAXB dependencies (see https://github.com/EXIficient/exificient-grammars/blob/77413b7978c2b6fa4a97ab0c3debb16f12d2712f/pom.xml#L161) that with JDK 9 have been (re)moved.

SchemaForGrammars has been a playground that never really made it to be nicely usable.. The brute-force solution would be to remove the class Grammars2X and the associated test classes and it should work..

I created a branch after-jdk8 for that to illustrate it compiles also with JDK 17.

danielpeintner commented 10 months ago

https://github.com/EXIficient/exificient-grammars/pull/21 has been merged --> closing