ladderlife / autochrome

Structural diffs for clojure source code
Eclipse Public License 1.0
186 stars 11 forks source link

Autochrome fails with java 9/10 #11

Closed jumarko closed 6 years ago

jumarko commented 6 years ago

After JDK modularization, javax.xml.bind classes are no longer included by default. If you try to invoke autochrome with java 9 or 10, you'll get following error:

Exception in thread "main" java.lang.ExceptionInInitializerError
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:374)
        at clojure.lang.RT.classForName(RT.java:2168)
...
        at clojure.lang.Util.loadWithClass(Util.java:250)
        at autochrome.core.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:374)
        at clojure.lang.RT.classForName(RT.java:2168)
        at clojure.lang.RT.classForNameNonLoading(RT.java:2181)
        at autochrome.page$loading__5569__auto____1551.invoke(page.clj:1)
        at autochrome.page__init.load(Unknown Source)
        at autochrome.page__init.<clinit>(Unknown Source)
        ... 42 more

The solution should be simple - just add xml-bind as an explicit dependency - see https://github.com/ladderlife/autochrome/pull/10