Author: eglynn
Date: Thu Feb 26 18:04:52 2009
New Revision: 748246
URL: http://svn.apache.org/viewvc?rev=748246&view=rev
Log:
Restored some inadvertantly removed functionality around fallback zero-port
config for JettyHTTPServerEngine threading parameters.
Added:
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/server.xml
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/GreeterImpl.java
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTest.java
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/Server.java
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
Thu Feb 26 18:04:52 2009
@@ -52,6 +52,7 @@
import org.mortbay.jetty.servlet.HashSessionManager;
import org.mortbay.jetty.servlet.SessionHandler;
import org.mortbay.thread.BoundedThreadPool;
+import org.mortbay.thread.QueuedThreadPool;
/**
@@ -305,14 +306,23 @@
server.start();
AbstractConnector aconn = (AbstractConnector) connector;
- if (aconn.getThreadPool() instanceof BoundedThreadPool
- && isSetThreadingParameters()) {
- BoundedThreadPool pool =
(BoundedThreadPool)aconn.getThreadPool();
- if (getThreadingParameters().isSetMinThreads()) {
-
pool.setMinThreads(getThreadingParameters().getMinThreads());
- }
- if (getThreadingParameters().isSetMaxThreads()) {
-
pool.setMaxThreads(getThreadingParameters().getMaxThreads());
+ if (isSetThreadingParameters()) {
+ if (aconn.getThreadPool() instanceof BoundedThreadPool) {
+ BoundedThreadPool pool =
(BoundedThreadPool)aconn.getThreadPool();
+ if (getThreadingParameters().isSetMinThreads()) {
+
pool.setMinThreads(getThreadingParameters().getMinThreads());
+ }
+ if (getThreadingParameters().isSetMaxThreads()) {
+
pool.setMaxThreads(getThreadingParameters().getMaxThreads());
+ }
+ } else if (aconn.getThreadPool() instanceof
QueuedThreadPool) {
+ QueuedThreadPool pool =
(QueuedThreadPool)aconn.getThreadPool();
+ if (getThreadingParameters().isSetMinThreads()) {
+
pool.setMinThreads(getThreadingParameters().getMinThreads());
+ }
+ if (getThreadingParameters().isSetMaxThreads()) {
+
pool.setMaxThreads(getThreadingParameters().getMaxThreads());
+ }
}
}
} catch (Exception e) {
Modified:
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/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
Thu Feb 26 18:04:52 2009
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
@@ -48,6 +49,8 @@
private static final Logger LOG =
LogUtils.getL7dLogger(JettyHTTPServerEngineFactory.class);
+ private static final int FALLBACK_THREADING_PARAMS_KEY = 0;
+
/**
* This map holds references for allocated ports.
*/
@@ -63,6 +66,8 @@
*/
private Map<String, ThreadingParameters> threadingParametersMap =
new TreeMap<String, ThreadingParameters>();
+
+ private ThreadingParameters fallbackThreadingParameters;
/**
* This map holds TLS Server Parameters that are to be used to
@@ -124,7 +129,10 @@
}
public void setEnginesList(List<JettyHTTPServerEngine> enginesList) {
- for (JettyHTTPServerEngine engine : enginesList) {
+ for (JettyHTTPServerEngine engine : enginesList) {
+ if (engine.getPort() == FALLBACK_THREADING_PARAMS_KEY) {
+ fallbackThreadingParameters = engine.getThreadingParameters();
+ }
portMap.put(engine.getPort(), engine);
}
}
@@ -206,6 +214,18 @@
+ "engine's protocol is " + ref.getProtocol()
+ ", the url protocol is " + protocol);
}
+
+ if (!(ref.isSetThreadingParameters()
+ || null == fallbackThreadingParameters)) {
+ if (LOG.isLoggable(Level.INFO)) {
+ final int min = fallbackThreadingParameters.getMinThreads();
+ final int max = fallbackThreadingParameters.getMaxThreads();
+ LOG.log(Level.INFO,
+ "FALLBACK_THREADING_PARAMETERS_MSG",
+ new Object[] {port, min, max});
+ }
+ ref.setThreadingParameters(fallbackThreadingParameters);
+ }
return ref;
}
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
Thu Feb 26 18:04:52 2009
@@ -24,4 +24,5 @@
CAN_NOT_FIND_HANDLER_MSG = Could not find the handler to remove for context
url {0}
FAILED_TO_SHUTDOWN_ENGINE_MSG = Failed to shutdown Jetty server: {0} because
it is still in use
UNKNOWN_CONNECTOR_MSG = Unknown connector type {0}, can't set the socket
reuseAddress flag.
-INVALID_ENCODING_MSG = Invalid character set {0} in request.
\ No newline at end of file
+INVALID_ENCODING_MSG = Invalid character set {0} in request.
+FALLBACK_THREADING_PARAMETERS_MSG = No explicitly configured threading
parameters for port {0}, using fallback values min:{1} max:{2}
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
Thu Feb 26 18:04:52 2009
@@ -148,6 +148,16 @@
engine = (JettyHTTPServerEngine)jd4.getEngine();
assertEquals(engine.getTlsServerParameters().getClientAuthentication().isWant(),
false);
assertEquals(engine.getTlsServerParameters().getClientAuthentication().isRequired(),
false);
+
+ JettyHTTPDestination jd5 =
+ (JettyHTTPDestination)factory.getDestination(
+ getEndpointInfo("sna", "foo", "http://localhost:9100"));
+
+ engine = (JettyHTTPServerEngine)jd5.getEngine();
+ String r = "expected fallback thread parameters configured for port 0";
+ assertNotNull(r, engine.getThreadingParameters());
+ assertEquals(r, 21, engine.getThreadingParameters().getMinThreads());
+ assertEquals(r, 389, engine.getThreadingParameters().getMaxThreads());
}
private EndpointInfo getEndpointInfo(String serviceNS,
Modified:
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
(original)
+++
cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
Thu Feb 26 18:04:52 2009
@@ -62,7 +62,7 @@
</hj:engine>
<hj:engine port="0">
- <hj:threadingParameters minThreads="99" maxThreads="777"/>
+ <hj:threadingParameters minThreads="21" maxThreads="389"/>
</hj:engine>
<hj:engine port="9001">
Modified:
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/GreeterImpl.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/GreeterImpl.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/GreeterImpl.java
(original)
+++
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/GreeterImpl.java
Thu Feb 26 18:04:52 2009
@@ -19,6 +19,7 @@
package org.apache.cxf.systest.ws.addressing;
+import java.util.Date;
import java.util.concurrent.Future;
import javax.annotation.Resource;
@@ -66,7 +67,9 @@
}
public String greetMeLater(long delay) {
- System.out.println("\n\n*** GreetMeLater called with: " + delay +
"***\n\n");
+ System.out.println("\n\n*** GreetMeLater called with: " + delay
+ + " at: " + new Date().toString()
+ + "***\n\n");
if (delay > 0) {
try {
Thread.sleep(delay);
Modified:
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTest.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTest.java
(original)
+++
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTest.java
Thu Feb 26 18:04:52 2009
@@ -21,6 +21,7 @@
import java.lang.reflect.UndeclaredThrowableException;
import org.apache.hello_world_soap_http.BadRecordLitFault;
+import org.junit.Ignore;
import org.junit.Test;
@@ -66,5 +67,28 @@
}
}
+ @Test
+ @Ignore("move to separate test")
+ public void testFallbackThreadPoolConfig() throws Exception {
+ Runnable r = new Runnable() {
+ public void run() {
+ greeter.greetMeLater(5 * 1000);
+ }
+ };
+ Thread[] invokers = new Thread[5];
+ long start = System.currentTimeMillis();
+ for (int i = 0; i < invokers.length; i++) {
+ invokers[i] = new Thread(r);
+ invokers[i].setDaemon(true);
+ invokers[i].start();
+ }
+ for (int i = 0; i < invokers.length; i++) {
+ invokers[i].join(15 * 1000);
+ }
+ long end = System.currentTimeMillis();
+ assertTrue("unexpected duration: " + (end - start),
+ end - start > 9 * 1000L);
+ }
+
}
Modified:
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/Server.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/Server.java?rev=748246&r1=748245&r2=748246&view=diff
==============================================================================
---
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/Server.java
(original)
+++
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/Server.java
Thu Feb 26 18:04:52 2009
@@ -40,7 +40,7 @@
protected void run() {
SpringBusFactory factory = new SpringBusFactory();
- Bus bus =
factory.createBus("org/apache/cxf/systest/ws/addressing/wsa_interceptors.xml");
+ Bus bus =
factory.createBus("org/apache/cxf/systest/ws/addressing/server.xml");
BusFactory.setDefaultBus(bus);
setBus(bus);
Added:
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/server.xml
URL:
http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/server.xml?rev=748246&view=auto
==============================================================================
---
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/server.xml
(added)
+++
cxf/branches/2.0.x-fixes/systests/src/test/java/org/apache/cxf/systest/ws/addressing/server.xml
Thu Feb 26 18:04:52 2009
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xmlns:http-jetty="http://cxf.apache.org/transports/http-jetty/configuration"
+ xsi:schemaLocation="
+http://cxf.apache.org/transports/http-jetty/configuration
http://cxf.apache.org/schemas/configuration/http-jetty.xsd
+http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <http-jetty:engine-factory bus="cxf">
+ <http-jetty:engine port="0">
+ <http-jetty:threadingParameters minThreads="1" maxThreads="400"/>
+ </http-jetty:engine>
+ </http-jetty:engine-factory>
+
+ <import resource="wsa_interceptors.xml"/>
+</beans>
+