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