jira CXF-2104

2009-03-11 Thread Orban, Gyorgy (IDEAS)
Hi,
Could you please advise on the issue 
https://issues.apache.org/jira/browse/CXF-2104 , if the patch is viable or the 
problem is valid. We are about to patch CXF locally to work around the problem 
and your opinion would be greatly appreciated before going ahead.
Thanks,
Gyorgy

--
NOTICE: If received in error, please destroy and notify sender. Sender does not 
intend to waive confidentiality or privilege. Use of this email is prohibited 
when received in error.


cxf-spring integration questions

2008-10-09 Thread Orban, Gyorgy (IT)
Hi,

I would like to ask for some guidance on using CXF together with Spring, more 
specifically in terms of lifecycle management. There seems to be two ways how 
CXF can be integrated with Spring:

1) It can be embedded in Spring as outlined in 
http://cwiki.apache.org/CXF20DOC/deploymentspring.html. In this case, the 
user's application context imports the cxf spring configuration and the CXF 
runtime will be in the same context as the application. For servlet 
environment, this seems to be the only option.

2) CXF can start up a separate context (bus application context) for its 
runtime. Config example for this can be found at  
http://cwiki.apache.org/CXF20DOC/jax-ws-configuration.html (first config, no 
imports).


CXF seems to have its own lifecycle manager component implemented in 
CXFBusLifeCycleManager, which can control the spring context through 
org.apache.cxf.bus.spring.SpringBusFactory.BusApplicationContextLifeCycleListener
 in case 2).

However, if a user chooses to embed cxf in the spring context (case 1) of his 
application there seems to be no default mapping from some of the spring 
lifecycle events to the bus events. For example, CXFBusImpl.shutdown() does not 
get called when spring closes the context because it does not hook into 
Spring's destroy callback, which leaves servers running after the user 
application context is shut down. Is there any reason why that is not done 
automatically? For example, we need to do this now to get servers shut down 
properly:

public class CXFBusSpringLifecycleBridge implements InitializingBean, 
DisposableBean {
@Resource(name = org.apache.cxf.buslifecycle.BusLifeCycleManager)
private org.apache.cxf.buslifecycle.BusLifeCycleManager 
busLifeCycleManager;

@Resource(name = Bus.DEFAULT_BUS_ID)
private Bus bus;
...
@Override
public void destroy() throws Exception {
((CXFBusImpl) bus).shutdown(true);
}
}

Also, could you please advise on what would be the best way of delegating 
Spring's org.springframework.context.Lifecycle start() and stop() events to cxf 
servers? org.apache.cxf.endpoint.Server.start() and stop() seems to have the 
same semantics as Lifecycle.start() and stop(), so could CXF maybe implement 
the spring Lifecycle interface directly?

Another problem around spring integration seems to be that it includes a 
Jsr250BeanPostProcessor by default, which pollutes the user's config in case 1. 
Should that be maybe made optional similarly to the extensions?

Thanks,
Gyorgy


NOTICE: If received in error, please destroy and notify sender. Sender does not 
intend to waive confidentiality or privilege. Use of this email is prohibited 
when received in error.