One point of clarification, the following sentence should read Java 17 as a consideration for the minimum in a subsequent major release:
> It is probably necessary to consider *Java 17* support in a future version, but Java 11 provides more of a transitional timeline. Regards, David Handermann On Wed, Dec 7, 2022 at 2:00 PM David Handermann <exceptionfact...@apache.org> wrote: > Thanks to everyone for the feedback thus far! > > Regarding making Java 11 the minimum version versus 17, it is a good > question, particularly in light of the fact that Spring Framework 6 has > made Java 17 the minimum version as noted. NiFi will not be able to use > Spring Framework 6 until Java 17 is the minimum version, so that is a key > concern. One of the key differences in Java 17 is that it enforces > modularization of access, so access to internal JDK classes log warnings on > Java 11, but cause failures on Java 17. It is probably necessary to > consider Java 11 support in a future version, but Java 11 provides more of > a transitional timeline. With the large number of NiFi dependencies, Java > 11 seems to provide the broadest level of compatibility for now. > > The question of the Jakarta namespace is a good one, particularly as it > relates to JAXB components. Some of that can be addressed in individual > modules. Jetty 11 requires the Jakarta namespace, so that should be the > initial target in absence of any other constraints. > > Regarding Controller-Service based configuration, that seems to be a good > goal in general. This applies to features such as the Proxy Configuration > Service, versus individual Proxy properties, and would also apply to > features like MongoDB. This should fall into point 3, removing deprecated > component properties. InvokeHTTP already has deprecation warnings for those > properties, and this would be an item where those properties should be > logged as deprecated in a subsequent version 1 release. > > Regards, > David Handermann > > On Wed, Dec 7, 2022 at 1:50 PM ski n <raymondmees...@gmail.com> wrote: > >> I read the proposal and seems like a very clear plan. The only thing I >> noticed: >> >> "Spring 6 <https://spring.io/blog/2022/11/16/spring-framework-6-0-goes-ga >> > >> removed support for Java 8 in November 2022 " >> >> On the release notes of Spring Framework 6.0 it says: >> >> " As a major revision of the core framework, Spring Framework 6.0 comes >> with a Java 17+ baseline and a move to Jakarta EE 9+ " >> >> When JDK 11 is the baseline for NiFi, can it use Spring Framework 6.0? >> >> And on Jakarta EE 9+, I see a lot of projects now switching from Javax to >> Jakarta (for example Camel: >> https://issues.apache.org/jira/browse/CAMEL-14680) >> >> What will NiFi do with Jakarta namespace? >> >> Raymond >> >> >> >> >> On Wed, Dec 7, 2022 at 8:20 PM Mark Bean <mark.o.b...@gmail.com> wrote: >> >> > I agree this is a great start to a discussion with pointers to important >> > docs for the 2.0 transition. Thanks David! >> > >> > Mike - what do you mean by "controller service-based configuration for >> > connection details"? >> > >> > Also, the transition from Java 11 to 17 is not without potential issues. >> > I've discovered one already. [1] I support stepping up on Java version >> > requirements. Perhaps rather than the currently stated "Requires Java 8 >> or >> > Java 11", the requirement can be "Requires Java 11 or Java 17". I don't >> > think you were suggesting the minimum version be Java 17, were you? >> Either >> > way, the issue with Java 17 needs to be identified and fixed as well as >> > more thorough testing to find other possible edge cases before we move >> > forward too aggressively. >> > >> > [1] https://issues.apache.org/jira/browse/NIFI-10958 >> > >> > On Wed, Dec 7, 2022 at 1:33 PM Mike Thomsen <mikerthom...@gmail.com> >> > wrote: >> > >> > > Really good start on the discussion. One thing I'm curious about is >> > > Java 11 vs 17. Java 8 -> 11 is major jump that I can understand why >> > > businesses scoffed at that for a long time, but the lift from 11 to 17 >> > > was about like 7 -> 8. A 2.0 release seems like a good time to jump >> > > straight to the latest official LTS for Java and start greenlighting >> > > new language features that might simplify things. >> > > >> > > I would also add (since I didn't see it) a design goal of forcing a >> > > complete shift in all bundles to using controller service-based >> > > configurations for connection details. 2.0 feels like a really good >> > > time for us to establish a community-wide best practice of >> > > centralizing configurations in dedicated components. >> > > >> > > On Wed, Dec 7, 2022 at 9:13 AM Mark Payne <marka...@hotmail.com> >> wrote: >> > > > >> > > > Yeah, agreed. I am very supportive, as well. >> > > > >> > > > Thanks for taking the time to put this together, David. >> > > > >> > > > -Mark >> > > > >> > > > >> > > > > On Dec 7, 2022, at 4:07 AM, Pierre Villard < >> > > pierre.villard...@gmail.com> wrote: >> > > > > >> > > > > Thanks for putting this together David. This is an excellent >> writeup >> > > and >> > > > > it's great to have a release where we focus on tech debt as well >> as >> > > making >> > > > > sure we stay up to date with our dependencies and what we support. >> > > This is >> > > > > a great opportunity for us to clean a lot of things in our code >> and I >> > > can't >> > > > > wait for us to get started with this. I'm definitely a +1 to have >> a >> > > formal >> > > > > vote on this proposal. >> > > > > >> > > > > Thanks, >> > > > > Pierre >> > > > > >> > > > > Le mar. 6 déc. 2022 à 23:50, Joe Witt <joe.w...@gmail.com> a >> écrit : >> > > > > >> > > > >> David, All, >> > > > >> >> > > > >> This is an excellent writeup/good framing. I am supportive of >> this >> > > > >> as-is since it is achievable and lays out a clear path. We can >> make >> > > > >> milestone releases of NiFi 2.0.0 along the way until we achieve >> all >> > > > >> the stated goals. I assume migration bits will be the long pole >> and >> > > > >> once we have them sorted we can kick out a 2.0.0. We already >> have >> > a >> > > > >> version guide that governs how long we'd keep 1.x maintained >> though >> > > > >> the phase out is pretty natural as we move main to a 2.0.0 basis >> > > > >> anyway. >> > > > >> >> > > > >> Not to confuse this thread but it makes me think we could do a >> > similar >> > > > >> framing for a NiFi 3.0 which lays out a potentially new approach >> to >> > > > >> NiFi decoupling the web/interface from the runtime/operations and >> > one >> > > > >> which is more fundamentally K8S based. But we can cross that >> > bridge a >> > > > >> bit later. Does seem more and more like folks in the community >> > would >> > > > >> like to know more about the potential directions we can go. >> > > > >> >> > > > >> Thanks! >> > > > >> Joe >> > > > >> >> > > > >> On Tue, Dec 6, 2022 at 1:53 PM David Handermann >> > > > >> <exceptionfact...@apache.org> wrote: >> > > > >>> >> > > > >>> Team, >> > > > >>> >> > > > >>> With the release of NiFi 1.19.0 deprecating support for Java 8, >> the >> > > end >> > > > >> of >> > > > >>> the year provides a good opportunity for finalizing general >> release >> > > goals >> > > > >>> for NiFi 2.0. >> > > > >>> >> > > > >>> Based on previous discussions from July 2021 [1] and June 2022 >> [2], >> > > there >> > > > >>> seems to be general agreement with focusing a NiFi 2.0 release >> on >> > > > >> reducing >> > > > >>> technical debt while providing a straightforward upgrade path >> for >> > > current >> > > > >>> deployments. >> > > > >>> >> > > > >>> I have updated the NiFi 2.0 Proposed Release Goals [3] to >> reflect >> > > more >> > > > >>> recent progress in several areas. I also linked the Deprecated >> > > Components >> > > > >>> and Features [4] page outlining the current state of deprecated >> > > > >>> capabilities. >> > > > >>> >> > > > >>> The most recent update to the Proposed Release Goals outlines >> > > > >> implementing >> > > > >>> migration tooling to make the upgrade process as easy as >> possible. >> > > The >> > > > >>> addition of dedicated deprecation logging in NiFi 1.18.0 makes >> it >> > > easier >> > > > >> to >> > > > >>> warn of breaking changes, but the goal of migration tooling is >> to >> > > make it >> > > > >>> easier to upgrade configurations. >> > > > >>> >> > > > >>> The Proposed Release Goals does not include any release >> timelines >> > > right >> > > > >>> now, and we should anticipate supporting version 1 for a >> reasonable >> > > > >> period >> > > > >>> of time. As more and more libraries deprecate and drop support >> for >> > > Java >> > > > >> 8, >> > > > >>> it will become increasingly difficult to maintain a support >> branch, >> > > which >> > > > >>> is one of the main drivers behind a NiFi 2.0 release that drops >> > > support >> > > > >> for >> > > > >>> Java 8. >> > > > >>> >> > > > >>> The general development strategy should involve transitioning >> the >> > > main >> > > > >>> branch to a 2.0.0-SNAPSHOT version so new features and fixes >> will >> > be >> > > > >>> targeted to the new version. Migration tooling will need to be >> > > > >> implemented >> > > > >>> on a version 1 support branch, and fixes can be backported where >> > > > >> possible, >> > > > >>> in preparation for subsequent version 1 releases. >> > > > >>> >> > > > >>> With that background, I would like to move to a formal vote >> soon, >> > > > >> changing >> > > > >>> the Proposed Release Goals document to Planned Release Goals. >> > Please >> > > > >> weigh >> > > > >>> the general goals highlighted, and if there are no major >> roadblocks >> > > > >>> identified, I will follow up soon with a vote thread. >> > > > >>> >> > > > >>> Regards, >> > > > >>> David Handermann >> > > > >>> >> > > > >>> [1] >> > https://lists.apache.org/thread/yj8scrdbx3pdo7990123mc03q24rn1m7 >> > > > >>> [2] >> > https://lists.apache.org/thread/mm1xf3b9nvrcgytb92oy3swvvc45fl34 >> > > > >>> [3] >> > > > >>> >> > > > >> >> > > >> > >> https://cwiki.apache.org/confluence/display/NIFI/NiFi+2.0+Proposed+Release+Goals >> > > > >>> [4] >> > > > >>> >> > > > >> >> > > >> > >> https://cwiki.apache.org/confluence/display/NIFI/Deprecated+Components+and+Features >> > > > >> >> > > > >> > > >> > >> >