Hi,

I was looking into making the build run in only Java 11 or 17 because there
are more and more maven plugins that only run in those.
Newer versions of for example the maven-checkstyle-plugin need Java 11.
https://github.com/apache/avro/pull/2118

I consider that to be a low risk change because we can make sure that the
code still runs under java 8 to support all of the older systems that use
Avro.
Having some of the integration tests run via invoker and then use
toolchains is a perfect way to make something like that work.

Just now I noticed that key dependencies (not plugins: actual dependencies)
have started dropping Java 8 support.

The update to the latest Thrift library ( Bump libthrift from 0.16.0 to
0.18.1 in /lang/java  https://github.com/apache/avro/pull/2124 ) fails with:
*[INFO] Restricted to JDK 8 yet
org.apache.thrift:libthrift:jar:0.18.1:compile contains
org/apache/thrift/TBaseProcessor.class targeted to JDK 11*


*I have asked the guys at Thrift if they can have the next release be Java
8 again, let's see if they can.*

Avro is a dependency for many projects of which a significant group (small
projects like Hadoop and Hive) still need Java 8 and cannot build under
Java 11.
So we cannot simply switch to Java 11.

One thing I thought of is to switch "partially".
Something like all modules be Java 8 compatible, except the Thrift one
which is Java 11.

Like to hear your thoughts on this.

-- 
Best regards / Met vriendelijke groeten,

Niels Basjes

Reply via email to