Hi,

you have the same for SOAP already available in the example:

https://github.com/apache/karaf/tree/master/examples/karaf-soap-example/karaf-soap-example-scr

Regards
JB

On 21/11/2019 17:31, Ranx0r0x wrote:
> Thanks for all the feedback. I'm sure the JAX RS Whiteboard is much cleaner.
> I've got legacy code I'm dealing with and can only go so far. JBs code would
> also be applicable to a JAXWSFactoryBean if I have to set up a related SOAP
> service. I commonly annotate my interfaces with both SOAP and REST
> annotations. The only thing they commonly share is some bus with bus ID -
> either the default Bus or, more commonly, a Bus by ID that is shared across
> some subset of the web services.
> 
> What I'm currently working on is a CXF Bus managed service factory that is
> more like PAX JDBC but for CXF Busses. This service factory is listening for
> PIDs starting with org.apache.cxf.bus-* which will trigger the update.
> 
> I'm going to create a plugin interface that takes the properties and Bus
> interface and I can then configure things for JAASAuthentication, logging,
> etc. 
> 
> @Override
> public void updated(String pid, Dictionary<String, ?> properties) throws
> ConfigurationException {
> 
> 
> So this might be my logging plugin. Just a change in the cfg changes what is
> logged (most organizations don't want production stuff logged but want to
> log during dev and QA). This let's me keep the same bus ID but change the
> logging.
> 
> Since I'm developing this for a specific business use case I don't have to
> have plugin support of everything in the world. The Bus factory just has to
> support the superset of features/providers/interceptors required  for the
> instance and this let's me also keep it so that I can install 1...N services
> in the container but not require any particular mix.
> 
> 
> I can unit test these individual plugins with Mockito mocks of the Bus via
> the plugin interface. Basically just checking that the properties are
> resulting in correct configuration of interceptors. 
> 
> Just switching to code helps a lot. In Blueprint you don't see that these
> interceptors are deprecated, for example.
> 
>         private final LoggingInInterceptor loggingIn = new
> LoggingInInterceptor();
>       private final LoggingOutInterceptor loggingOut = new
> LoggingOutInterceptor();
>       
>       public void initBus(Bus bus, Dictionary<String, ?> properties) {
>               Boolean logIn = (Boolean) properties.get("logIn");
>               Boolean logOut=(Boolean) properties.get("logOut");
>               Boolean errorLogIn =(Boolean) properties.get("errorLogIn");
>               Boolean errorLogOut =(Boolean) properties.get("errorLogIn");
>               if(logIn)
>                       bus.getInInterceptors().add(loggingIn);
>               if(logOut)
>                       bus.getOutInterceptors().add(loggingOut);
>               if(errorLogOut)
>                       bus.getOutFaultInterceptors().add(loggingOut);
>               if(errorLogIn)
>                       bus.getInFaultInterceptors().add(loggingIn);
>       }
> 
> 
> 
> --
> Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html
> 

-- 
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to