Hey Romain,
I think it is worth the efforts to do housekeeping work and cleanup
the dependencies. I am not sure we could do this as one big bang change
but delivering iterative improvements with each release should work. The
idea with grouping dependencies into separate POMs/BOMs should be implementable.
Do you have examples of the exclusions you have seen people do most often, may
be would could target those first?
AFAIK we try to use optional dependencies whenever possible, indentifying which
modules do not follow and fixing that would be definitely useful. Anyway, I
think
the exclusions should be more like an exception than a rule, if they are
required
in most cases, this is not good.
Thanks.
Best Regards,
Andriy Redko
RMB> Hi everyone,
RMB> CXF dependency management is based on being self contained.
RMB> Was not working bad years ago when it was using geronimo bundles but since
RMB> some years it becomes more and more work to integrate each cxf release
RMB> because dependencies became greedy.
RMB> Here are the main challenges:
RMB> 1. spec jars are using jakarta (whereas the app/soft can use javax,
RMB> geronimo, smix and other flavors)
RMB> 2. most modules leak not required dependencies (thinking to jta, jms, rmi
RMB> out of my head)
RMB> 3. some java 11 oriented dependencies are popping up whereas they are not
RMB> needed in 80% of the cases (activation, jaxb for ex)
RMB> 4. module rarely/never mark not required dependencies as being
RMB> optional/provided
RMB> To give you an idea, it is not uncommon to have ~15 exclusions to all cxf
RMB> modules when importing them.
RMB> Is it something identified? Any plan to enhance this (like having
RMB> aggregator poms "cxf-spec", "cxf-dep-optional", "cxf-java9" to ease the
RMB> exclusions? making it provided and having aggregator pom with the
RMB> depencencies marked as required (strict module vs consumed pom modules))?
RMB> Side note: explosing cxf-core can also help, it contains a lot of optional
RMB> stuff which can also make this work harder to maintain.
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>