added jaxb-api so that jdk 9+ classpath works without configuration#8382
added jaxb-api so that jdk 9+ classpath works without configuration#8382schmitch merged 2 commits intoplayframework:masterfrom schmitch:better-jdk-10
Conversation
|
wierd mima issue: Guess the problem is, that this is a Multi Version Jar and Mima tries to read the Class under META-INF/versions/9 |
|
Blocked by lightbend-labs/mima#206 |
I wonder if we should instead have the flags automatically added by Play plugin when using Java 9 (we would need to do that for sbt, gradle, and mvn though). |
|
and in production it would not be possible or building with 8 and running with 9+ or we would need to change all launcher scripts, etc. and if assembly is used people need to do it themself. I guess using a 122kb jar is better/good enough. in the future it can probably be removed. play is already really big, so adding 122kb is not a big deal. Especially since play is a opinionated framework anyway, it should just work. or we fork jjwt under the playframework banner and remove jaxb from that library and publish it ourself, it's not that maintained anyway. (the library does not need jaxb since it only uses the Base64 decoder which exists under Java8+ (java.base module) anyway) |
|
We don't need to use jjwt at all -- it's not exposed as a public API. We use JWT but we could easily switch to a different library. Maybe file a PR with https://github.com/jwtk/jjwt about it? |
|
Actually jjwt has PRs for the matter: |
|
updates mima, so this can be looked at (merge ready) |
gmethvin
left a comment
There was a problem hiding this comment.
I'm fine with this at least as a temporary solution until the issue is fixed in jjwt.
|
I merged it, it's easy to revert and I also added a follow up issue on #8446 to discuss what we could do. |
|
@schmitch I think we should probably backport this to 2.6.x. See playframework/play-scala-starter-example#86. |
|
yeah I guess we could, I mean it just adds a dependency, which should not break any builds. |
|
Backport is here: #8451 |
currently this adds the jaxb-api jar (122kb) so that play will work without any flag under jdk 9+.
An alternative would be to either fork jjwt and fix the outstanding issue or use a different JWT implementation.
We could also wait for a fix directly in jjwt however I guess it's fine to add jaxb-api.jar for known since it is only 122kb and than we could run play under jdk 9+ without any flags/problems.
After we merge that Play will still print:
However this is probably not easy to fix, but can be ignored until we add support for JPMS (which can't work without the help of the Scala Compiler anyway).
(We could also add tests for JDK 10 if scala 2.12.6 hits