Am 19.07.2018 um 16:42 schrieb Zoran Regvart:
Hello,
while doing the exploration of running tests on Java 11 I found out
that from that version onward Java EE APIs are no longer distributed
with Java[1].
I think this makes a difference in how we declare the dependencies. So
for instance JAXB API is no longer available, we need to add it and we
have two options:
1. declare in the <dependencies> directly
If we declare it in the <dependencies> directly, then some clients
might need to exclude that dependency: for instance application
servers might bundle a version of JAXB API and having another version
might lead to issues.
2. declare in the <dependencies> of the Java 11+ <profile>
In this case Camel is OK when build/tested on Java 11+, but client
might get a ClassNotFoundException on Java 11+. This is based on my
understanding that Maven profiles in dependencies are considered only
at build time of the dependency, not when that dependency is used.
Am I wrong about this?
You are right.
I'm for declaring the dependencies directly. (This also means that Java
9 / 10 users won't have to add the modules.)
As you said in case of a conflict users can exclude the dependencies.
Imho Camel should still support Java 8.
Regards,
Pascal