Author: alessio.soldano(a)jboss.com
Date: 2010-08-07 21:41:55 -0400 (Sat, 07 Aug 2010)
New Revision: 12761
Added:
stack/cxf/branches/cxf-2.3/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws3098/
Modified:
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/BusHolder.java
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/NonSpringBusHolder.java
stack/cxf/branches/cxf-2.3/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws3098/BusHolderLifeCycleTestCase.java
Log:
svn merge -r 12759:12760
https://svn.jboss.org/repos/jbossws/stack/cxf/trunk .
Modified:
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/BusHolder.java
===================================================================
---
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/BusHolder.java 2010-08-08
01:32:36 UTC (rev 12760)
+++
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/BusHolder.java 2010-08-08
01:41:55 UTC (rev 12761)
@@ -25,6 +25,8 @@
import org.apache.cxf.Bus;
import org.apache.cxf.binding.soap.SoapTransportFactory;
+import org.apache.cxf.buslifecycle.BusLifeCycleListener;
+import org.apache.cxf.buslifecycle.BusLifeCycleManager;
import org.apache.cxf.configuration.Configurer;
import org.apache.cxf.resource.ResourceManager;
import org.apache.cxf.resource.ResourceResolver;
@@ -47,6 +49,7 @@
{
public static final String PARAM_CXF_BEANS_URL = "jbossws.cxf.beans.url";
protected Bus bus;
+ protected BusHolderLifeCycleListener busHolderListener;
public BusHolder()
{
@@ -68,6 +71,9 @@
*/
public void configure(SoapTransportFactory soapTransportFactory, ResourceResolver
resolver, Configurer configurer)
{
+ busHolderListener = new BusHolderLifeCycleListener();
+
bus.getExtension(BusLifeCycleManager.class).registerLifeCycleListener(busHolderListener);
+
if (configurer != null)
{
bus.setExtension(configurer, Configurer.class);
@@ -84,7 +90,12 @@
*/
public void close()
{
-
+ //call bus shutdown unless the listener tells us shutdown has already been asked
+ if (busHolderListener != null && !busHolderListener.isPreShutdown())
+ {
+ bus.shutdown(true);
+ }
+ busHolderListener = null;
}
/**
@@ -143,4 +154,32 @@
{
this.bus = bus;
}
+
+ private class BusHolderLifeCycleListener implements BusLifeCycleListener
+ {
+ private volatile boolean preShutdown = false;
+
+ public boolean isPreShutdown()
+ {
+ return preShutdown;
+ }
+
+ @Override
+ public void initComplete()
+ {
+ //NOOP
+ }
+
+ @Override
+ public void preShutdown()
+ {
+ preShutdown = true;
+ }
+
+ @Override
+ public void postShutdown()
+ {
+ //NOOP
+ }
+ }
}
Modified:
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/NonSpringBusHolder.java
===================================================================
---
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/NonSpringBusHolder.java 2010-08-08
01:32:36 UTC (rev 12760)
+++
stack/cxf/branches/cxf-2.3/modules/server/src/main/java/org/jboss/wsf/stack/cxf/configuration/NonSpringBusHolder.java 2010-08-08
01:41:55 UTC (rev 12761)
@@ -122,10 +122,13 @@
for (EndpointImpl endpoint : endpoints)
{
- endpoint.stop();
+ if (endpoint.isPublished())
+ {
+ endpoint.stop();
+ }
}
endpoints.clear();
- bus.shutdown(true);
+
super.close();
}
Copied:
stack/cxf/branches/cxf-2.3/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws3098
(from rev 12760,
stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws3098)
Modified:
stack/cxf/branches/cxf-2.3/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/cxf/jbws3098/BusHolderLifeCycleTestCase.java
===================================================================