boot-clj / boot

Build tooling for Clojure.
https://boot-clj.github.io/
Eclipse Public License 1.0
1.75k stars 179 forks source link

Build failures in JDK 11 #698

Closed tirkarthi closed 6 years ago

tirkarthi commented 6 years ago

Problem Description

Tests fails in Oracle JDK 11

Steps to reproduce

This is due java.xml.bind which was removed in JDK 9 . I don't know why it builds in JDK 9 and 10 but throws exception in JDK 11.

Relevant source code : https://github.com/boot-clj/boot/blob/30ba3ce69dcd8b2b3e00677a14db05c8ce49d59c/boot/base/src/main/java/boot/App.java#L124

tirkarthi commented 6 years ago

Ref : http://openjdk.java.net/jeps/320

In Java SE 9, the Java SE modules that contain Java EE and CORBA technologies are annotated as deprecated for removal, indicating the intent to remove them in a future release:

java.xml.ws (JAX-WS, plus the related technologies SAAJ and Web Services Metadata)
java.xml.bind (JAXB)
java.activation (JAF)
java.xml.ws.annotation (Common Annotations)
java.corba (CORBA)
java.transaction (JTA)

Related modules in Java SE 9 are also deprecated for removal:

java.se.ee (Aggregator module for the six modules above)
jdk.xml.ws (Tools for JAX-WS)
jdk.xml.bind (Tools for JAXB)

Since deprecating modules for removal merely causes compile-time warnings, JDK 9 took a more robust step to prepare developers for the actual removal of these modules in a future release: The modules are not resolved in JDK 9 when code on the class path is compiled or run. This allows developers on JDK 9 to deploy standalone versions of the Java EE and CORBA technologies on the class path, just like on JDK 8. Alternatively, developers on JDK 9 can use the --add-modules flag on the command line to resolve the modules in the JDK runtime image.