Hi Dan,

Definitely +1 for (1), (2), (3), (4), (5).
Regarding (6): +1 for wsdl; I would also suggest to review some other stuff in 
cxf-api (like StaxTranformFeature and LoggingFeature) that IMO not really 
belongs to api.

Regards,
Andrei.

> -----Original Message-----
> From: Daniel Kulp [mailto:dk...@apache.org]
> Sent: Dienstag, 7. Mai 2013 20:31
> To: dev@cxf.apache.org
> Subject: Some minor (ok, not so minor) thoughts for CXF 3.0
> 
> 
> 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.
> 
> 
> --
> Daniel Kulp
> dk...@apache.org - http://dankulp.com/blog Talend Community Coder -
> http://coders.talend.com

Reply via email to