Post Java 8 Support
Pages 161
Clone this wiki locally
This page tracks down the Java post Java 8 (i.e Java 9,10, etc…) support for Vert.x.
Vert.x 3.6.x
Expectations
-
fix vertx-web-common split package support
-
use MR jars on
vertx-codegenfor shading Java 8 javac internals -
decouple the languages integration from the actual components
-
JPMS automatic modules for mainstream modules
Vert.x 3.5.x
Expectations
Major components of the Vert.x stack runs with a Java 9 JVM but without explicit Jigsaw support:
-
users can build and run applications using Vert.x with Java 9 but without an explicit Jigsaw support
-
users can use compile time code generation for service proxies with the Java 9
-
major components of stack are supported with Java 9, i.e the testsuite is executed with Java 9
-
major components of stack can have their projects built with Java 9
-
the polyglot support is not expected because the languages runtimes may or not work with Java 9
-
the stack is released with Java 8
-
HTTP/2 applications can run out of the box and benefit from Java 9 ALPN support without requiring OpenSSL or the Jetty ALPN fix
Vert.x 3.5.0
Provides support for most of the Java stack, Kotlin, Ruby and JavaScript, refer to the support matrix below.
Major components works as Java 9 anonymous modules.
Support matrix
vertx-codegen |
||
vertx-core |
||
vertx-sql-common |
||
vertx-jdbc-client |
||
vertx-mongo-client |
||
vertx-redis |
||
vertx-auth |
||
vertx-rx |
||
vertx-mqtt |
||
vertx-circuit-breaker |
||
vertx-config |
upgrade to Powermock 2.0.0-beta.5 for Java 9 / exclude |
|
vertx-hazelcast |
||
vertx-infinispan |
||
vertx-zookeeper |
||
vertx-mysql-postgresql-service |
||
vertx-web |
rocker template engine maven plugin fails |
|
vertx-service-proxy |
||
vertx-grpc |
client does not send ALPN with JDK SSL |
|
vertx-mail-client |
||
vertx-shell |
||
vertx-tcp-eventbus-bridge |
||
vertx-stomp |
||
vertx-proton |
||
vertx-bridge-common |
||
vertx-amqp-bridge |
||
vertx-unit |
|
|
vertx-junit5 |
||
vertx-reactive-streams |
||
vertx-dropwizard-metrics |
||
vertx-consul-client |
||
vertx-service-discovery |
||
vertx-health-check |
||
vertx-rabbitmq-client |
||
vertx-kafka-client |
the current Kafka version does not run with Java 9 (0.11.0.1), next one should + need to add |
|
vertx-lang-kotlin |
vertx-lang-kotlin-compiler fails |
|
vertx-lang-js |
a couple of edge case failures related to type interrop |
|
vertx-lang-groovy |
||
vertx-lang-scala |
||
vertx-maven-service-factory |
classloader isolation problems |
|
vertx-http-service-factory |
classloader isolation problems |
|
vertx-lang-ceylon |
some issues need workaround, but one blocks: https://github.com/ceylon/ceylon/issues/7272 |
|
vertx-lang-ruby |
||
vertx-camel-bridge |
usage of |
|
vertx-jca |
||
vertx-sync |
Right now Quasar does not support Java 9 |
Known issues (and possible fixes)
vertx-grpc client does not work with SSL
|
Note
|
it should work for OpenSSL (not tested) and it should work for server. |
SLF4J / Log4J12 adapter NPE
Found in vertx-mail-client when running the tests with Java 9
Exception in thread "pool-1-thread-1" java.lang.NullPointerException
at org.slf4j.impl.Log4jMDCAdapter.setContextMap(Log4jMDCAdapter.java:81)
at org.slf4j.MDC.setContextMap(MDC.java:264)
at org.subethamail.smtp.server.Session.run(Session.java:125)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.base/java.lang.Thread.run(Thread.java:844)fix: updgrade slf4j version from 1.7.21 to 1.7.25
Open questions
-
jlink support ?
-
manifest module name (see http://blog.joda.org/2017/05/java-se-9-jpms-automatic-modules.html) ?
-
JPMS module names page https://github.com/jodastephen/jpms-module-names