Fine with me.
I agree on all points; I'm not really sure of the actual impact of 6,
but 3.0 is definitely the proper time for doing this ;-)

Alessio

On 05/07/2013 08:31 PM, Daniel Kulp wrote:
> 
> I'd like to do a couple refactoring things for 3.0 to simplify the class 
> structure a little bit:
> 
> 1) Bus -> CXFBusImpl -> ExtensionManagerBus -> Spring/BlueprintBus
> We originally had Spring and Blueprint subclass CXFBusImpl.  However, with 
> the refactorings in the 2.4 timeframe, we made everything extend the 
> ExtensionMangerBus.  Thus, CXFBusImpl is pretty much not needed.   I'd like 
> to push whatever is left there into ExtensionMangerBus and remove a level of 
> the hierarchy. (alternatively, push the stuff in ExtensionMangerBus down into 
> CXFBusImpl).   Thoughts?   
> 
> 2) Interceptor ->  PhaseInterceptor and InterceptorChain -> 
> PhaseInterceptorChain
> We originally (in 2005) thought about having the interceptor be more 
> independent of the phases.  However, that never really worked and pretty much 
> all interceptors used in CXF have to be of the PhaseInterceptor variety.   
> Additionally, the only "chain" we've had is the PhaseInterceptorChain.   
> Almost all the interfaces use "Interceptor<…>" or "InterceptorChain".   Thus, 
> I'd like to just push everything down into Interceptor/InterceptorChain and 
> get rid of the others to remove that level and reduce  confusion so people 
> know there needs to be a phase there.   
> 
> 3) QueryHandlers -> these were originally used for the ?wsdl processing (and 
> is still used for ?js).  However, that stuff is better done directly on the 
> interceptor chains as interceptors to allow user supplied interceptors to 
> also handle them.   I'd like to just remove these.  (obviously update the ?js 
> stuff)   Would simplify the CXFServlet a bit.
> 
> 4) Merge "PropertiesAwareDatabinding"  into DataBinding.   The "properties 
> aware" version was introduced just to be able to add a method without 
> breaking binary compatibility.  Might as well push it in now.
> 
> 5) BaseDataReader/DataReader and the same for the writer.   Not really sure 
> why they are separated but EVERYTHING uses just "DataReader".     Get rid of 
> BaseData*.
> 
> 6) Remove all the "WSDL" based things from cxf-api and cxf-rt-core.   I need 
> to play with this more.  Likely rename cxf-rt-frontend-simple to 
> cxf-rt-frontend-wsdl (or similar) and move all of it there as that would be 
> the base for everything that is WSDL related.   That would leave api/core 
> free of WSDL stuff to make the JAX-RS stuff lighter.   Either that or create 
> a new bundle that would live between rt-core and rt-frontent-simple and the 
> wsdl based bindings/technologies.   Likewise, find a way for transports (like 
> http) to not need any WSDL things.    This will likely also require some of 
> the interceptors in org.apache.cxf.interceptor to move a bit, but that's 
> probably a good thing as there is too much stuff in there that should be in 
> more specific sub packages or something.
> 
> 
> Obviously a lot of that has some compatibility impact, user impact, etc..., 
> but that's why I think doing it for 3.0 is the best option.   I'd love 
> peoples thoughts on any of it.     Mostly just trying to simplify a few 
> things, clarify things, remove/move some deps around.
> 
> 


-- 
Alessio Soldano
Web Service Lead, JBoss

Reply via email to