geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevan Miller <kevan.mil...@gmail.com>
Subject Re: removal of spring dependencies from cxf module
Date Sat, 25 Aug 2007 18:07:26 GMT

On Aug 25, 2007, at 10:53 AM, Jeff Genender wrote:

>
>
> Kevan Miller wrote:
>>
>> On Aug 24, 2007, at 5:35 PM, Jeff Genender wrote:
>>
>>> Kevan,
>>>
>>> IIU the reason you are asking, removal of the Spring dependencies  
>>> from
>>> CXF would appear to be a band aid and temporary fix to the real  
>>> issue.
>>> Is this about the Spring versioning and different versions getting
>>> loaded? (If not then never mind)
>>
>> I wouldn't characterize this as a band-aid. And I doubt that I would
>> advocate a different approach to solving this problem in a 2.0.x  
>> release.
>>
>
> Umm...why wouldn't you characterize this as a band aid?  The  
> problem is
> our class loaders.  You still have this problem if someone integrates
> something that uses Spring...right?

Sorry. I must not be explaining things very well... At present our  
CXF integration requires access to the same instance of Spring in  
both the cxf module as well as the client application module. This  
means that the client application module cannot have a unique  
instance of Spring and work with CXF -- this must be fixed regardless  
of our ClassLoader structure.  I'm pretty sure that you would agree  
with this?

In addition, I would not advocate a significant change to our  
ClassLoader behavior in a 2.0.x release (although I may be about to  
advocate for a change to our EAR classloading structure -- more on  
this in a different thread). At best this type of change would belong  
in a 2.x release, IMHO, since client applications are likely to be  
reliant on our current classloading behavior.

>
>
>> FYI, at present, cxf-based web services client code requires  
>> access to
>> Spring classes from the application's ClassLoader. So, even if you
>> wanted to completely isolate the application ClassLoader from system
>> ClassLoaders, this must be changed. I probably could have narrowed my
>> request a bit by saying can we just fix this web services client code
>> dependency -- better, I think to remove the spring dependency all
>> together from our cxf module.
>>
>
> So what would happen if I integrate another 3rd party component that
> uses Spring...say...Terracotta DSO? Or...ServiceMix?  What happens  
> then?

At present, these components can be integrated into Geronimo.  
Depending on their module-level dependencies, there might be some  
intra-server spring versioning problems. I assume that we would  
resolve those.

Currently, client applications that want to run their own Spring  
instance would need the following in their deployment plan environment:

     <hidden-classes>
       <filter>org.springframework.</filter>
       <filter>META-INF/spring</filter>
     </hidden-classes>

Until the above CXF-Spring requirement is fixed, this filtering may  
cause problems in some client applications using web services.

Geronimo used to hide these Spring classes/resources from client  
applications automatically. However, this automatic hiding of Spring  
was removed because of the CXF-Spring issue that is currently being  
discussed.

So, IMO:

1. We need to break the requirement for the sharing of a single  
instance of Spring betweeen the cxf module and a client application  
module. This can be via removal of the CXF Spring dependency all  
together, or by some alternate means (e.g. reworking of the web  
services client code)... Sorry to be vague, here. I'm not currently  
familiar with the details of the client code...

2. Once 1 is addressed, reinstate the automatic filtering of Spring  
classes/resources.

3. For a 2.x release, discuss alternate/preferred behavior.

--kevan

Mime
View raw message