You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/10/16 23:47:34 UTC
svn commit: r826102 - in /cxf/branches/2.2.x-fixes: ./
rt/core/src/main/java/org/apache/cxf/bus/spring/
rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/
Author: dkulp
Date: Fri Oct 16 21:47:33 2009
New Revision: 826102
URL: http://svn.apache.org/viewvc?rev=826102&view=rev
Log:
Merged revisions 826098 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r826098 | dkulp | 2009-10-16 17:40:08 -0400 (Fri, 16 Oct 2009) | 1 line
[CXF-2283] if a Child context is closed, we shouldn't be shutting down
........
Added:
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/child.xml
- copied unchanged from r826098, cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/child.xml
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationListener.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/ClientHolderBean.java
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationListener.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationListener.java?rev=826102&r1=826101&r2=826102&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationListener.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationListener.java Fri Oct 16 21:47:33 2009
@@ -42,18 +42,29 @@
if (ctx == null) {
return;
}
- if (event instanceof ContextRefreshedEvent) {
- Bus bus = (Bus)ctx.getBean("cxf");
- ((CXFBusImpl)bus).initialize();
- BusLifeCycleManager lcm = (BusLifeCycleManager)
- ctx.getBean("org.apache.cxf.buslifecycle.BusLifeCycleManager",
+ boolean doIt = false;
+ ApplicationContext ac = ctx;
+ while (ac != null && !doIt) {
+ if (event.getSource() == ac) {
+ doIt = true;
+ }
+ ac = ac.getParent();
+ }
+
+ if (doIt) {
+ if (event instanceof ContextRefreshedEvent) {
+ Bus bus = (Bus)ctx.getBean("cxf");
+ ((CXFBusImpl)bus).initialize();
+ BusLifeCycleManager lcm = (BusLifeCycleManager)
+ ctx.getBean("org.apache.cxf.buslifecycle.BusLifeCycleManager",
+ BusLifeCycleManager.class);
+ lcm.initComplete();
+ } else if (event instanceof ContextClosedEvent) {
+ BusLifeCycleManager lcm = (BusLifeCycleManager)
+ ctx.getBean("org.apache.cxf.buslifecycle.BusLifeCycleManager",
BusLifeCycleManager.class);
- lcm.initComplete();
- } else if (event instanceof ContextClosedEvent) {
- BusLifeCycleManager lcm = (BusLifeCycleManager)
- ctx.getBean("org.apache.cxf.buslifecycle.BusLifeCycleManager",
- BusLifeCycleManager.class);
- lcm.postShutdown();
+ lcm.postShutdown();
+ }
}
}
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/ClientHolderBean.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/ClientHolderBean.java?rev=826102&r1=826101&r2=826102&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/ClientHolderBean.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/ClientHolderBean.java Fri Oct 16 21:47:33 2009
@@ -28,7 +28,7 @@
*/
public class ClientHolderBean {
- @Autowired(required = true)
+ @Autowired
Collection<org.apache.hello_world_soap_http.Greeter> greeters;
org.apache.hello_world_soap_http.Greeter greet1;
Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java?rev=826102&r1=826101&r2=826102&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/spring/SpringBeansTest.java Fri Oct 16 21:47:33 2009
@@ -37,6 +37,8 @@
import org.apache.cxf.binding.soap.SoapBindingConfiguration;
import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor;
+import org.apache.cxf.buslifecycle.BusLifeCycleListener;
+import org.apache.cxf.buslifecycle.BusLifeCycleManager;
import org.apache.cxf.configuration.spring.AbstractFactoryBeanDefinitionParser;
import org.apache.cxf.databinding.DataBinding;
import org.apache.cxf.databinding.source.SourceDataBinding;
@@ -209,6 +211,37 @@
}
@Test
+ public void testChildContext() throws Exception {
+ //Test for CXF-2283 - if a Child context is closed,
+ //we shouldn't be shutting down
+ ClassPathXmlApplicationContext ctx =
+ new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/jaxws/spring/servers.xml"});
+
+ final Bus b = (Bus)ctx.getBean("cxf");
+ BusLifeCycleManager lifeCycleManager = b.getExtension(BusLifeCycleManager.class);
+ BusLifeCycleListener listener = new BusLifeCycleListener() {
+ public void initComplete() {
+ }
+
+ public void postShutdown() {
+ b.setProperty("post.was.called", Boolean.TRUE);
+ }
+
+ public void preShutdown() {
+ b.setProperty("pre.was.called", Boolean.TRUE);
+ }
+ };
+ lifeCycleManager.registerLifeCycleListener(listener);
+ ClassPathXmlApplicationContext ctx2 =
+ new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/jaxws/spring/child.xml"},
+ ctx);
+
+ ctx2.close();
+
+ assertNull(b.getProperty("post.was.called"));
+ assertNull(b.getProperty("pre.was.called"));
+ }
+ @Test
public void testServers() throws Exception {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/jaxws/spring/servers.xml"});