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 >> >>