What is irritating is that it was not possible to recreate the error without the plugin!
The code in
wtf.java9.maven_jaxb2_plugin is a simplified (and accidentally “rightified”?) version of the code the plugin is running but it works on both Java 8 and Java 9 as indicated by another test.
(Maybe the dependencies play a role? Class path content between running the plugin and calling the API differs.)
Running the project with
mvn clean test creates two
generated-jaxb-* folders, one for the sources created by the plugin the other by the JAXB API.
On Java 8 they are identical, on Java 9 they are not.
The tests try to verify that the sources are present and accordingly fail on Java 9.
(Last checked: 8u152 and 9.0.1)
The published version of this project uses version 0.13.2 of the JAXB2 plugin. Efforts to make it work with a Java 9 specific version were unsuccessful as well. Those efforts can be tracked in this private branch of the Maven JAXB2 Plugin.
NOTE: A Java 9 compatible version was released: 0.14.0. Huzzah!
In an effort to slowly approach the plugin’s implementation, particularly regarding the used
EntityResolver different variants were implemented.
They can be seen in
EntityResovlerFactory and selected with the Maven property
mvn clean test -Dentity.resolver=simple
By default, the plugin’s approach is copied as closely as possible.