It appears that the recent release of WildFly 12.0.0.Final
has a major issue with Java 9 support for deployments. More
specifically, if the application being deployed is compiled
using Java 9 JDK then the annotation processing (through Jandex)
causes such classes to skip the annotation indexing, effectively
missing any annotation information present on them. There's a
JIRA for it here[1] and I think another user here in the
forum thread[2] is affected by the same issue. I see that Stuart
is already upgrading Jandex which includes a fix, so this mail
isn't really about fixing this issue.
Given the ease with which this got reproduced and the fact
that we missed it in our regular integration job for Java 9 [3],
I looked around to see why we couldn't catch this earlier. It
looks like the WildFly pom.xml uses org.jboss:jboss-parent:25
[4] which fixes the target class version of the compilation to
1.8. As a result, even though the CI job uses Java 9 to compile
the application sources (in test cases) it ends up with a class
version to Java 8 and that explains why these issues weren't
caught earlier.
So would it be possible to have another variant of this CI
job which passes Java 9 as the target version for compiled
sources, as a system property value (the pom.xml of jboss-parent
allows the value to be configured through properties)?
[1] https://issues.jboss.org/browse/WFLY-9961
[2] https://developer.jboss.org/thread/277401
[3]
https://ci.wildfly.org/viewType.html?buildTypeId=WF_MasterLinuxJdk9&branch_WF=__all_branches__
[4] http://repo1.maven.org/maven2/org/jboss/jboss-parent/25/jboss-parent-25.pom
-Jaikiran