Le mer. 11 août 2021 à 14:27, Andriy Redko <drr...@gmail.com> a écrit :

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

Think maven shade plugin fixed that (and if you still find an issue it
easier to fix it than handling 2 branches right?).


>  - Jakarta is the way to go, the mainstream should have first class support
>

This is compatible as explained.


>
> 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, ...)
>

Think 4/5 should stay for user features changes (like making cxf-core very
slim and jaxrs way lighter and less monolitic to quote one I have in mind
since years).
Moving its major with no impact on end users is always weird IMHO.


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


+1 indeed ;)


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

Reply via email to