I would like to start a discussion on making Java 8 a minimum requirement
and upgrading the Maven version for Helix's next feature release. I'd like
to see how people feel about it.

Did some homework on this and dug up a few precedences that are also
top-level Apache projects dependent on ZooKeeper. The following
documentation lists many pros of moving to Java 8 as well, many of which I
will not include in this email for the sake of brevity (see the links
below).

Open-source community discussions for

Apache Samza: link1
<https://mail-archives.apache.org/mod_mbox/samza-dev/201610.mbox/%3CCAHUevGGnOQD_VmLWEdpFNq3Lv%2B6gQQmw_JKx9jDr5Cw%2BxFfGtQ%40mail.gmail.com%3E>

Apache Kafka: link1 <https://markmail.org/message/gnrn5ccql7a2pmc5> link2
<https://cwiki.apache.org/confluence/display/KAFKA/KIP-118%3A+Drop+Support+for+Java+7>

I've also had informal chats with PMC members of both Samza and Kafka about
this specifically for more context, and from what they said, the transition
has been very smooth.

Here are Helix-specific reasons why I think the move would be beneficial:

- Other Apache open-source platforms built on Helix such as Pinot and
Gobblin all cite Java 8 as the minimum requirement. Building Helix in Java
8 will help contributors of Helix respond to feature/debugging requests in
a more timely manner (without having to jump back and forth between Java 7
and 8).

- The recent change in Maven
<https://central.sonatype.org/articles/2018/May/04/discontinued-support-for-tlsv11-and-below/>
(Central
Repository). Long story short, Helix build using JDK 7 on Maven 3.0.5+ will
fail. Using JDK 8 solves this problem.

The cost of moving to Java 8 is relatively low. Java 7 is forward
compatibile with Java 8. However, there may be some backporting work needed
due to the way Java 8 changed the ConcurrentHashMap implementation.

As for Maven, Helix's requirement currently is 3.0.4 which is a version
just below the required version other dependent Apache projects use (say,
Pinot <https://media.readthedocs.org/pdf/pinot/latest/pinot.pdf>). Again,
to save the contributors the trouble of having to navigate between Maven
versions, I am also suggesting that we update this requirement.


-Hunter

Reply via email to