Team, With multiple major projects in the process of sunsetting support for Java 8, we should also prepare a timeline for removing Java 8 support from Apache NiFi and subprojects.
BACKGROUND The Jetty project announced the end of community support for version 9 as of 2022-06-01 [1]. Although Jetty 9 is not end of life in terms of security updates, this is an important milestone as both NiFi and NiFi Registry leverage Jetty for the web application container. Jetty 10 requires Java 11 as the minimum version. The next major release of the Spring Framework will drop support for both Java 8 and 11, requiring Java 17 as the minimum version [2]. Other supporting components, such as OpenSAML, which enables SAML 2 integration, dropped support for Java 8 in OpenSAML 4 [3]. In order to continue maintaining a secure product, NiFi will also need to remove Java 8 support so that we can track dependency upgrades. NEXT STEPS In light of widespread deployment of Apache NiFi and subprojects, we need to prepare a timeline for transition. Although there have been various discussions on what should be included in the next major release, narrowing the focus to simply removing support for Java 8 provides the simplest path forward. Announcing removal of support for Java 8 should incorporate a reasonable amount of time for potential transition. NiFi has supported Java 11 for multiple releases, and NiFi 1.16.0 included basic support for Java 17. At minimum, it seems best to proceed with a release for NiFi 1.17.0, when ready, without making any changes. At that time, we should also have a timeline for removing Java 8 support. It may be worthwhile to plan on at least one more minor release that incorporates deprecation warnings where necessary. Following a selected minor release version, a support branch for major version 1 could be created, as a means of providing critical security and functional fixes. With a support branch created, main development could be transitioned to 2.0.0-SNAPSHOT. I defer to Joe Witt as the release manager for more thought around these particular details. Please provide your thoughts on the general process, and highlight particular areas of concern. Regards, David Handermann [1] https://github.com/eclipse/jetty.project/issues/7958 [2] https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6 [3] https://shibboleth.atlassian.net/wiki/spaces/OSAML/overview