Post Java 8 Support - vert-x3/wiki GitHub Wiki
This page tracks down the Java post Java 8 (i.e Java 9,10, etc…) support for Vert.x.
-
fix vertx-web-common split package support
-
use MR jars on
vertx-codegen
for shading Java 8 javac internals -
decouple the languages integration from the actual components
-
JPMS automatic modules for mainstream modules
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
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.
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 |
Note
|
it should work for OpenSSL (not tested) and it should work for server. |
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
-
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