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.

Vert.x 3.6.x

Expectations

  • 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

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 com.sun:tools dependency of kubernetes-server-mock

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

☀️

LangTest are disabled

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 --add-modules java.xml.bind to surefire argLine

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 javax.xml.bind.annotation.XmlRootElement in Camel, version 2.20.0 should be ok

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

Kotlin compiling verticle factory fails

Not yet investigated

Open questions

⚠️ **GitHub.com Fallback** ⚠️