Yeah, I guess I was over-optimistic with my estimate though if we keep Blueprint in then it may limit the explosion. Still a problem though.

Sergey
On 23/09/16 14:38, Daniel Kulp wrote:
My biggest concern would be the “jar explosion” that would occur if you add a 
-blueprint and -spring jar for each of the jars that contains those.   We 
already have a ton of jars, not sure adding another 30-40 is the best idea.

Several years ago, I also started experimenting a bit:
https://github.com/apache/cxf/tree/split-spring 
<https://github.com/apache/cxf/tree/split-spring>

But didn’t really pursue it much further.




On Sep 23, 2016, at 8:31 AM, Christian Schneider <[email protected]> 
wrote:

On 23.09.2016 14:03, Sergey Beryozkin wrote:
IMHO the most important thing is to preserve the CXF stability.

FYI, CommomUtil helpers which can use Spring are heavily used - some of them in 
JAX-WS and a lot in JAX-RS.

For example, JAX-RS SpringBoot starter does depend a lot on the ClassScanner 
Spring, and JAX-RS runtime depends in various places on ClassHelper to help 
with dealing with Spring proxified beans. The code which refers to these 
helpers can not afford to start referring to Spring variants because of course 
not all CXF users are Spring users.

One needs to be aware that Spring (and now SpringBoot) is very much a major 
platform for many CXF users.
We should definitely keep the good support for spring that we currently have. 
What I am not sure of is if we still need the pretty extensive xml namespaces 
in the future. The modern spring platform is now almost completely annotation 
based. So I can imagine that cxf 4 might drop xml namespaces in favor of 
comprehensive annotation based spring support.

Personally I'd like see a very clear and concrete plan first:
- How to preserve the runtime code portability which depends on CommonUtil 
helpers such that it works as before in/out of Spring
I am not yet at the stage where I have a concrete plan. My first attempt was 
just to find out how deeply spring is wired into CXF. As it seems the 
unwrapping of proxies seems to be the most problematic part. So one first task 
is to find a good way to make this still work while having a separate module 
for the spring support.
- How to keep CXF Spring user code which depends on Spring Namespace support 
(starting from cxf:bus and then for all other modules) operating.
As a first step I would simply add the new cxf-core-spring jar to all modules 
that define namespaces. That might then not provide the full advantage of the 
separation but it should guarantee that all modules work as before. This change 
should make sure that refreshs only happen to modules that provide namespaces.
As a second step we should then check if we can improve on that. This all of 
course depends if we find a feasible solution and if the changes have the 
desired effect.
In any case I will make sure that we keep all problematic changes in a branch 
so we can decide about them before they reach the master.

Christian

--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



Reply via email to