Le ven. 3 sept. 2021 à 11:30, Jim Ma <mail2ji...@gmail.com> a écrit :

>
>
> On Wed, Aug 25, 2021 at 9:39 PM Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
>
>>
>>
>> Le mer. 25 août 2021 à 13:39, Jim Ma <mail2ji...@gmail.com> a écrit :
>>
>>>
>>>
>>> On Fri, Aug 20, 2021 at 2:10 PM Romain Manni-Bucau <
>>> rmannibu...@gmail.com> wrote:
>>>
>>>>
>>>>
>>>> Le jeu. 19 août 2021 à 22:45, Andriy Redko <drr...@gmail.com> a écrit :
>>>>
>>>>> Hi Romain,
>>>>>
>>>>> Sorry for the delayed response. I have been thinking about your (and
>>>>> Jim) suggestions
>>>>> and came to surprising conclusion: do we actually need to officially
>>>>> release anything
>>>>> to shade/overwrite javax <-> jakarta? Generally, we could shade Spring
>>>>> or/and any other
>>>>> dependency but we would certainly not bundle it as part of CXF
>>>>> distribution (I hope you
>>>>> would agree), so not really useful unless we publish them. As such,
>>>>> probably the best
>>>>> interim solution is to document what it takes to shade CXF (javax <->
>>>>> jakarta) and let
>>>>> the end users (application/service developers) use that when needed?
>>>>> In this case
>>>>> basically CXF, Spring, Geronimo, Swagger, ... would follow the same
>>>>> shading rules. At
>>>>> least, we could start with that (documenting the shading process) and
>>>>> likely get some
>>>>> early feedback while working on full-fledged support? WDYT?
>>>>>
>>>>
>>>>
>>>> This is what is done and makes it hard for nothing to maintain/fix -
>>>> dont even look at tomee solution for shading please ;) - IMHO.
>>>> Being said it costs nothing to cxf to produce jakarta jars, that it
>>>> makes it ee 9 compliant and more consistent for all but spring usage (ee
>>>> integrators, plain tomcat 10 users etc...), I think it is worth doing it,
>>>> at minimum.
>>>> At least a jakarta jaxrs (over jakarta servlet) bundle would be a good
>>>> progress, not sure jaxws and other parts would be helpful since they tend
>>>> to be in maintainance mode from what I saw.
>>>> So IMHO the best is a shade/relocation in the parent to deliver a
>>>> jakarta artifact for all module + a few jakarta bom. But if too much -
>>>> which I can see/hear  - a jakarta jaxrs bundle would work too short term.
>>>>
>>>
>>> I agree to start with something to preview and collect more ideas to
>>> support ee9. It's good to have a branch to really start something for this
>>> topic.
>>> @Romain, do you have a prototype with shading or other tools for a
>>> jakarta jaxrs bundle or just some basic idea that we can have a look at ?
>>>
>>
>>
>> Not ready for cxf but looking at meecrowave-core pom you would have some
>> idea.
>> I just suspect pom deps need some refinement like with/without the client
>> (it is useless with java 11 now and less and less desired AFAIK).
>>
>
>  @Romain Manni-Bucau <rmannibu...@gmail.com> Thanks for the update.  I
> looked at the meecrowave-core pom and understood how it transforms package
> names with the shade plugin.  Both shade plugin or eclipse transformer tool
> works for this purpose .
>
> I created one prototype project which pulls in cxf dependencies,
> transforms to jakarta namespace  and installs to local maven repository :
> https://github.com/jimma/cxf-ee9-transformer
> This doesn't need more effort and no need the code/dependency change which
> breaks/mixes with javax support codebase. It can be simply added with
> another maven module in cxf repo to produce transformed jakata cxf
> artifacts or binary distribution.  Your thoughts ?
>

If not all artifacts are proposed with jakarta support it is an option
otherwise it would need a build module to synchronize this submodule(s) to
ensure none are forgotten - this is where I prefer the classifier approach
even if it has this exclusion pitfalls - but cxf has it anyway due to its
transitive dependencies so not worse IMHO ;).


>
>

>
>
>
>
>>
>>
>>> Thanks,
>>> Jim
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>>>
>>>>> Thank you.
>>>>>
>>>>> Best Regards,
>>>>>     Andriy Redko
>>>>>
>>>>>
>>>>> RMB> I'm not sure I see why you need spring to start this work. The
>>>>> expected is
>>>>> RMB> there already so spring module can still rely on javax, be made
>>>>> jakarta
>>>>> RMB> friendly using shade plugin or alike and that's it until a spring
>>>>> native
>>>>> RMB> integration is there.
>>>>> RMB> Worse case cxf-spring will not be usable with jakarta - which
>>>>> still enabled
>>>>> RMB> all other usages, best case if spring makes the transition smooth
>>>>> is that
>>>>> RMB> it will work smoothly without more investment than for the rest
>>>>> of the
>>>>> RMB> build.
>>>>> RMB> The pro of that options is that it will reduce the number of
>>>>> unofficial cxf
>>>>> RMB> relocations sooner IMHO.
>>>>>
>>>>> RMB> Romain Manni-Bucau
>>>>> RMB> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>>>>> RMB> <https://rmannibucau.metawerx.net/> | Old Blog
>>>>> RMB> <http://rmannibucau.wordpress.com> | Github <
>>>>> https://github.com/rmannibucau> |
>>>>> RMB> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
>>>>> RMB> <
>>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance
>>>>> >
>>>>>
>>>>>
>>>>> RMB> Le lun. 16 août 2021 à 23:40, Andriy Redko <drr...@gmail.com> a
>>>>> écrit :
>>>>>
>>>>> >> Hi Jim,
>>>>>
>>>>> >> I will try to answer your questions, other guys will definitely
>>>>> share more
>>>>> >> thoughts, please see mine inlined.
>>>>>
>>>>> >> >> What's the task for JDK-17 LTS preparation ?  Do we need to
>>>>> support
>>>>> >> build 3.5.0 with JDK-17 ?
>>>>>
>>>>> >> Build + All tests are green.
>>>>> >> Apache Karaf 4.3.3 will support JDK17 so our OSGi test suites will
>>>>> pass.
>>>>> >> Besides that, there is still some work to do [1] but at least we
>>>>> have
>>>>> >> workarounds.
>>>>>
>>>>> >> >> For Jakarta ee9 support branch 4.x with source code change to
>>>>> support
>>>>> >> jakarta namespace , we have to wait for spring and other
>>>>> >> >> third party dependencies jakarta ee9 ready.  Now we don't know
>>>>> when
>>>>> >> these dependencies are all ready and we can start this work.
>>>>>
>>>>> >> This is correct, the earliest we could expect something is Q4/2021
>>>>> (fe
>>>>> >> Spring).
>>>>>
>>>>> >> >> Given there is no features added in Jakarta ee 9.1 besides the
>>>>> >> namespace change, we can provide the jakarta calssfier maven
>>>>> artifacts
>>>>> >> >> and binary release in 3.6.x or 4.x with transformation or other
>>>>> better
>>>>> >> approach will be enough.We provide jakarta ee9 support early,
>>>>> >> >> then we can get more feedback on this topic.
>>>>>
>>>>> >> It is definitely the option we have among others to discuss. I have
>>>>> no
>>>>> >> doubts that everyone has rough idea of the pros and cons
>>>>> >> each option has, as the team we are trying to pick the best path
>>>>> forward.
>>>>> >> Jakarta EE 10 is coming in Q1/2022 [2], we should keep it
>>>>> >> in mind as well.
>>>>>
>>>>> >> Thank you!
>>>>>
>>>>> >> [1] https://issues.apache.org/jira/browse/CXF-8407
>>>>> >> [2]
>>>>> >>
>>>>> https://eclipse-ee4j.github.io/jakartaee-platform/jakartaee10/JakartaEE10#jakarta-ee-10-release-plan
>>>>>
>>>>>
>>>>> >> Best Regards,
>>>>> >>     Andriy Redko
>>>>>
>>>>> >> JM> On Wed, Aug 11, 2021 at 8:26 PM 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, ...)
>>>>>
>>>>>
>>>>> >> JM> What's the task for JDK-17 LTS preparation ?  Do we need to
>>>>> support
>>>>> >> build
>>>>> >> JM> 3.5.0 with JDK-17 ?
>>>>>
>>>>> >> JM> For Jakarta ee9 support branch 4.x with source code change to
>>>>> support
>>>>> >> JM> jakarta namespace , we have to wait for spring and other
>>>>> >> JM> third party dependencies jakarta ee9 ready.  Now we don't know
>>>>> when
>>>>> >> these
>>>>> >> JM> dependencies are all ready and we can start this work.
>>>>>
>>>>> >> JM> Given there is no features added in Jakarta ee 9.1 besides the
>>>>> >> namespace
>>>>> >> JM> change, we can provide the jakarta calssfier maven artifacts
>>>>> and binary
>>>>> >> JM> release in 3.6.x or 4.x with transformation or other better
>>>>> approach
>>>>> >> will
>>>>> >> JM> be enough.We provide jakarta ee9 support early, then we can get
>>>>> more
>>>>> >> JM> feedback on this topic.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> >> >> 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
>>>>>
>>>>>
>>>>>

Reply via email to