Author: ningjiang
Date: Wed Sep 19 21:37:31 2007
New Revision: 577543
URL: http://svn.apache.org/viewvc?rev=577543&view=rev
Log:
CXF-1034 added the servantcount check and the unit test
Modified:
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
Modified:
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java?rev=577543&r1=577542&r2=577543&view=diff
==============================================================================
---
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
(original)
+++
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
Wed Sep 19 21:37:31 2007
@@ -165,7 +165,11 @@
* remove it from the factory's cache.
*/
public void shutdown() {
- factory.destroyForPort(port);
+ if (servantCount == 0) {
+ factory.destroyForPort(port);
+ } else {
+ LOG.log(Level.WARNING, "FAILED_TO_SHOWDOWN_ENGINE_MSG", port);
+ }
}
/**
Modified:
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java?rev=577543&r1=577542&r2=577543&view=diff
==============================================================================
---
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
(original)
+++
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
Wed Sep 19 21:37:31 2007
@@ -205,21 +205,21 @@
}
public void postShutdown() {
- // clean up the collections
- portMap.clear();
- threadingParametersMap.clear();
- tlsParametersMap.clear();
- }
-
- public void preShutdown() {
- // shut down the jetty server in the portMap
+ //shut down the jetty server in the portMap
// To avoid the CurrentModificationException,
- // do not use portMap.vaules directly
-
+ // do not use portMap.vaules directly
JettyHTTPServerEngine[] engines = portMap.values().toArray(new
JettyHTTPServerEngine[0]);
for (JettyHTTPServerEngine engine : engines) {
engine.shutdown();
}
+ // clean up the collections
+ threadingParametersMap.clear();
+ tlsParametersMap.clear();
+ }
+
+ public void preShutdown() {
+ // do nothing here
+ // just let server registry to call the server stop first
}
}
Modified:
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties?rev=577543&r1=577542&r2=577543&view=diff
==============================================================================
---
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
(original)
+++
incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
Wed Sep 19 21:37:31 2007
@@ -22,3 +22,4 @@
ADD_HANDLER_FAILED_MSG = Could not add cxf jetty handler to Jetty server: {0}
REMOVE_HANDLER_FAILED_MSG = Could not remove cxf jetty handler from Jetty
server: {0}
CAN_NOT_FIND_HANDLER_MSG = Could not find the handler to remove for context
url {0}
+FAILED_TO_SHOWDOWN_ENGINE_MSG = Failed to shutdown the Jetty server: {0}
because it still be used.
\ No newline at end of file
Modified:
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java?rev=577543&r1=577542&r2=577543&view=diff
==============================================================================
---
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
(original)
+++
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
Wed Sep 19 21:37:31 2007
@@ -148,6 +148,7 @@
@Test
public void testaddServants() throws Exception {
String urlStr = "http://localhost:1234/hello/test";
+ String urlStr2 = "http://localhost:1234/hello233/test";
JettyHTTPServerEngine engine =
factory.createJettyHTTPServerEngine(1234, "http");
JettyHTTPTestHandler handler1 = new JettyHTTPTestHandler("string1");
@@ -168,8 +169,15 @@
fail("Can't get the reponse from the server " + ex);
}
assertEquals("the jetty http handler did not take effect", response,
"string1string2");
-
-
+ engine.addServant(new URL(urlStr2), handler2);
+ engine.removeServant(new URL(urlStr));
+ engine.shutdown();
+ try {
+ response = getResponse(urlStr2);
+ } catch (Exception ex) {
+ fail("Server should work, even we call the shutdown" + ex);
+ }
+ assertEquals("the jetty http handler did not take effect", response,
"string2");
// set the get request
factory.destroyForPort(1234);