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 2007/10/08 18:42:41 UTC
svn commit: r582873 - in /incubator/cxf/branches/2.0.x-fixes: ./
rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
Author: dkulp
Date: Mon Oct 8 09:42:40 2007
New Revision: 582873
URL: http://svn.apache.org/viewvc?rev=582873&view=rev
Log:
Merged revisions 577477 via svnmerge from
https://svn.apache.org/repos/asf/incubator/cxf/trunk
........
r577477 | ningjiang | 2007-09-19 19:59:24 -0400 (Wed, 19 Sep 2007) | 1 line
CXF-1034 shutdown the JettyEngine when bus shutdown is called
........
Modified:
incubator/cxf/branches/2.0.x-fixes/ (props changed)
incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
Propchange: incubator/cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Oct 8 09:42:40 2007
@@ -1 +1 @@
-/incubator/cxf/trunk:1-573657,573659-573660,573662-574161,574163-574834,574836-575221,575223-575253,575255-576654,576656-576672,576674-576710,576712-576775,576777-576788,576790-576791,576793-576831,576833-577091
+/incubator/cxf/trunk:1-573657,573659-573660,573662-574161,574163-574834,574836-575221,575223-575253,575255-576654,576656-576672,576674-576710,576712-576775,576777-576788,576790-576791,576793-576831,576833-577091,577477
Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java?rev=582873&r1=582872&r2=582873&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java Mon Oct 8 09:42:40 2007
@@ -30,6 +30,8 @@
import javax.annotation.Resource;
import org.apache.cxf.Bus;
+import org.apache.cxf.buslifecycle.BusLifeCycleListener;
+import org.apache.cxf.buslifecycle.BusLifeCycleManager;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.configuration.jsse.TLSServerParameters;
@@ -42,31 +44,19 @@
* caches the JettyHTTPServerEngines so that they may be
* retrieved if already previously configured.
*/
-public class JettyHTTPServerEngineFactory {
+public class JettyHTTPServerEngineFactory implements BusLifeCycleListener {
private static final Logger LOG =
LogUtils.getL7dLogger(JettyHTTPServerEngineFactory.class);
/**
* This map holds references for allocated ports.
*/
- // All system tests do not shut down bus correctly,
- // or the bus does not shutdown all endpoints correctly,
- // so that these server endings are actuall shared amongst busses
- // within the same JVM.
-
- // We will keep it static until we can resolve the problems
- // in the System tests.
- // TODO: Fix the System Tests so that they shutdown the
- // buses that they are using and that the buses actually
- // shutdown the destinations and their server engines
- // properly. This will require a bit of lifecyle and reference
- // counting on Destinations to server engines, if they are
- // going to be shared, but they should by no means be
- // shared accross buses, right?
+ // Still use the static map to hold the port information
+ // in the same JVM
private static Map<Integer, JettyHTTPServerEngine> portMap =
new HashMap<Integer, JettyHTTPServerEngine>();
-
+ private BusLifeCycleManager lifeCycleManager;
/**
* This map holds the threading parameters that are to be applied
* to new Engines when bound to the reference id.
@@ -89,7 +79,8 @@
public JettyHTTPServerEngineFactory() {
// Empty
- }
+ }
+
/**
* This call is used to set the bus. It should only be called once.
@@ -104,7 +95,13 @@
@PostConstruct
public void registerWithBus() {
- bus.setExtension(this, JettyHTTPServerEngineFactory.class);
+ if (bus != null) {
+ bus.setExtension(this, JettyHTTPServerEngineFactory.class);
+ }
+ lifeCycleManager = bus.getExtension(BusLifeCycleManager.class);
+ if (null != lifeCycleManager) {
+ lifeCycleManager.registerLifeCycleListener(this);
+ }
}
@@ -200,6 +197,29 @@
@PostConstruct
public void finalizeConfig() {
registerWithBus();
+ }
+
+ public void initComplete() {
+ // do nothing here
+
+ }
+
+ public void postShutdown() {
+ // clean up the collections
+ portMap.clear();
+ threadingParametersMap.clear();
+ tlsParametersMap.clear();
+ }
+
+ public void preShutdown() {
+ // shut down the jetty server in the portMap
+ // To avoid the CurrentModificationException,
+ // do not use portMap.vaules directly
+
+ JettyHTTPServerEngine[] engines = portMap.values().toArray(new JettyHTTPServerEngine[0]);
+ for (JettyHTTPServerEngine engine : engines) {
+ engine.shutdown();
+ }
}
}