Awesome, so this is Option #1, thank you! Best Regards, Andriy Redko
On Wed, Aug 11, 2021, 11:13 AM Freeman Fang <freeman.f...@gmail.com> wrote: > 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 >>>> >>>>