Sorry for not being very clear. No, for Jakarta 4.x branch we definitely can move to JDK11.
Thanks! Freeman On Wed, Aug 11, 2021 at 11:05 AM Andrey Redko <drr...@gmail.com> wrote: > Thanks a lot Feeman, this is basically the Option #1, or you suggest to > stay on JDK-8 for Jakarta 4.x branch as well? Thank you. > > Best Regards, > Andriy Redko > > On Wed, Aug 11, 2021, 10:10 AM Freeman Fang <freeman.f...@gmail.com> > wrote: > >> Hi Andriy, >> >> Thanks so much for your summary! >> >> I actually think we should support JDK8 as long as possible, given the >> fact that CXF is widely used, and some users are not that fast to adopt new >> JDK versions. Also CXF has started to support JDK11(even more recent JDK >> versions) for a while, so any keen users can still use CXF with JDK11+(I >> noticed many users' JDK is JDK11+ from Jira issues). So how about this(a >> little bit revised from your option 1) >> >> Release 3.5.0 in preparation to JDK-17 LTS, keeping JDK-8 as baseline, >> and in CXF 3.5.0 release notes we need to very clearly declare that since >> CXF 3.6.0 users should expect JDK-11 as baseline(Or at least JDK-11 would >> be the primary, and JDK-8 would be the secondary, just like what the latest >> Apache Camel 3.X does). >> >> Move master to 3.6.x with JDK-11 as the baseline. >> >> New CXF 4.x branch for new jakarta package name work(whatever methods >> need to take there), this change definitely deserves a new major version. >> >> Best Regards >> Freeman >> >> >> >> >> On Wed, Aug 11, 2021 at 8:27 AM Andriy Redko <drr...@gmail.com> wrote: >> >>> Hey Jim, Romain, >>> >>> Thank you guys, I think Romain's suggestion to move 3.5.x to JDK-11 >>> baseline is good idea, we would >>> still be maintaining 3.4.x for a while, covering JDK-8 based >>> deployments. Regarding Jakarta, yes, I >>> certainly remember the discussion regarding the build time approach, >>> personally with time I came to the >>> conclusion that this is not the best option for at least 2 reasons: >>> - differences between source vs binary artifacts are very confusing >>> (source imports javax, >>> binary has jakarta, or vice versa), I think we all run into that from >>> time to time >>> - Jakarta is the way to go, the mainstream should have first class >>> support >>> >>> Just my 5 cents, but we certainly should consider this approach as well, >>> there are good points to >>> follow it, summarizing what we have at the moment: >>> >>> Option #1: >>> - release 3.5.0 in preparation to JDK-17 LTS, keeping JDK-8 as baseline >>> - move master to 3.6.x (4.x?) with JDK-11 as the minimal required JDK >>> version (Jetty 10, ...) >>> - branch off 5.x (4.x?) to continue the work on supporting Jakarta >>> 9.0+, with JDK-11 as the minimal >>> required JDK version (Jetty 11, ...) >>> >>> Option #2: >>> - release 3.5.0 in preparation to JDK-17 LTS, use JDK-11 as baseline >>> - handle javax by a build setup (with api validation at build time to >>> avoid regressions) and use jakarta package as main api in the project >>> (Romain), or >>> adding a new maven module to transform cxf artifacts with jakarta >>> package name (Jim) >>> >>> Option #3: >>> - release 3.5.0 in preparation to JDK-17 LTS, use JDK-11 as baseline >>> - move master to 4.x to continue the work on supporting Jakarta 9.0+, >>> with JDK-11 as the minimal >>> required JDK version (Jetty 11, ...) >>> >>> Thank you! >>> >>> Best Regards, >>> Andriy Redko >>> >>> >>> JM> On Wed, Aug 11, 2021 at 10:05 AM Andriy Redko <drr...@gmail.com> >>> wrote: >>> >>> >> Hey guys, >>> >>> >> I would like to initiate (or better to say, resume) the discussion >>> >> regarding CXF 3.5.x and beyond. >>> >> The 3.5.x has been in the making for quite a while but has not seen >>> any >>> >> releases yet. As far as >>> >> I know, we have only pending upgrade to Apache Karaf 4.3.3 (on >>> SNAPSHOT >>> >> now) so be ready to meet >>> >> JDK 17 LTS next month. I think this is a good opportunity to release >>> 3.5.0 >>> >> but certainly looking >>> >> for ideas and opinions here. Importantly, I think for 3.5.x the JDK-8 >>> >> should be supported as the minimal >>> >> required JDK version (just an opinion since JDK-8 is still very widely >>> >> used). >>> >>> >> On the other side, many libraries (Jetty, wss4j, ...) are bumping the >>> >> baseline to JDK-11. The work >>> >> @Colm is doing to update to OpenSaml 4.x [1] is a good argument to >>> have >>> >> the JDK-11+ release line. Should >>> >> we have a dedicated 3.6.x or 4.x.x branch(es) for that? >>> >>> >> Last but not least, Jakarta 9.0+ support. Last year we briefly talked >>> >> about it [2], at this moment it >>> >> looks like having dedicated release line (4.x/5.x) with Jakarta >>> artifacts >>> >> is beneficial in long term. >>> >> Large chunk [3] of work has been already done in this direction. The >>> >> Spring 6 milestones with Jakarta >>> >> support are expected to land in Q4/2021 [4] but I am not sure what >>> plans >>> >> Apache Karaf team has, @Freeman >>> >> do you have any insights? >>> >>> >>> JM> For Jakarta EE9 support , the another option could be adding a new >>> maven >>> JM> module to transform cxf artifacts >>> JM> with jakarta package name. This transformed artifact can coexist >>> with the >>> JM> javax namespace with "jakarta" classifier, >>> JM> and we don't have to maintain two branches until Jakarta EE10 and >>> there are >>> JM> new features added. >>> >>> JM> Other projects like hibernate and jackson use this shade plugin or >>> Eclipse >>> JM> transformer to support jakarta ee9: >>> >>> JM> >>> https://github.com/hibernate/hibernate-orm/blob/main/hibernate-core-jakarta/hibernate-core-jakarta.gradle#L100 >>> >>> JM> >>> https://github.com/FasterXML/jackson-jaxrs-providers/blob/2.12/json/pom.xml#L115 >>> >>> >>> >>> >> To summarize briefly: >>> >> - release 3.5.0 in preparation to JDK-17 LTS, keeping JDK-8 as >>> baseline >>> >> - move master to 3.6.x (4.x?) with JDK-11 as the minimal required JDK >>> >> version (Jetty 10, ...) >>> >> - branch off 5.x (4.x?) to continue the work on supporting Jakarta >>> 9.0+, >>> >> with JDK-11 as the minimal >>> >> required JDK version (Jetty 11, ...) >>> >>> >> I think it is very clear that maintaining JavaEE + JDK8 / JavaEE + >>> JDK11 / >>> >> Jakarta + JDK11 would consume >>> >> much more time from the team, but I am not sure we have other options >>> if >>> >> we aim to evolve and keep CXF >>> >> up to date. Any thought, ideas, comments, suggestions guys? >>> >>> >> Thank you! >>> >>> >> [1] https://github.com/apache/cxf/tree/opensaml4 >>> >> [2] >>> >> >>> http://mail-archives.apache.org/mod_mbox/cxf-dev/202012.mbox/%3c1503263798.20201226124...@gmail.com%3E >>> >> [3] https://github.com/apache/cxf/pull/737 >>> >> [4] >>> >> >>> https://github.com/spring-projects/spring-framework/issues/25354#issuecomment-875915960 >>> >>> >> Best Regards, >>> >> Andriy Redko >>> >>>