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

Reply via email to