You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by eg...@apache.org on 2007/06/15 19:16:45 UTC
svn commit: r547746 - in /incubator/cxf/trunk/rt/transports/http-jetty/src:
main/java/org/apache/cxf/transport/http_jetty/
test/java/org/apache/cxf/transport/http_jetty/spring/
Author: eglynn
Date: Fri Jun 15 10:16:43 2007
New Revision: 547746
URL: http://svn.apache.org/viewvc?view=rev&rev=547746
Log:
Allowing fallback Jetty thread pool thresholds to be configured that would apply in the case where port-specific values are not provided.
Modified:
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/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
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?view=diff&rev=547746&r1=547745&r2=547746
==============================================================================
--- 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 Fri Jun 15 10:16:43 2007
@@ -42,7 +42,8 @@
public class JettyHTTPServerEngineFactory {
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.
@@ -203,10 +204,7 @@
ref.setProgrammaticTlsServerParameters(tlsParams);
- ThreadingParameters tparams = threadingParametersMap.get(port);
- if (tparams != null) {
- ref.setThreadingParameters(tparams);
- }
+ applyThreadingParameters(ref, port);
ref.finalizeConfig();
portMap.put(port, ref);
@@ -241,13 +239,31 @@
+ port + " is not configured for TLS");
}
- ThreadingParameters threadingParams = threadingParametersMap.get(port);
- if (threadingParams != null) {
- ref.setThreadingParameters(threadingParams);
- }
+ applyThreadingParameters(ref, port);
+
ref.finalizeConfig();
portMap.put(port, ref);
return ref;
+ }
+
+ /**
+ * Apply the thread paramaters to the newly created engine,
+ * falling back to non-port specific values if necessary.
+ *
+ * @param engine the new created engine
+ * @param port the listen port
+ */
+ protected void applyThreadingParameters(JettyHTTPServerEngine engine, int port) {
+ ThreadingParameters params = threadingParametersMap.get(port);
+ if (params != null) {
+ engine.setThreadingParameters(params);
+ } else {
+ ThreadingParameters fallback =
+ threadingParametersMap.get(FALLBACK_THREADING_PARAMS_KEY);
+ if (fallback != null) {
+ engine.setThreadingParameters(fallback);
+ }
+ }
}
/**
Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java?view=diff&rev=547746&r1=547745&r2=547746
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java Fri Jun 15 10:16:43 2007
@@ -32,6 +32,7 @@
import org.apache.cxf.transport.ConduitInitiator;
import org.apache.cxf.transport.ConduitInitiatorManager;
import org.apache.cxf.transport.Destination;
+import org.apache.cxf.transport.DestinationFactory;
import org.apache.cxf.transport.DestinationFactoryManager;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transport.http_jetty.JettyHTTPDestination;
@@ -92,24 +93,21 @@
ConfigurerImpl cfg = new ConfigurerImpl(ctx);
- ServiceInfo serviceInfo = new ServiceInfo();
- serviceInfo.setName(new QName("bla", "Service"));
- EndpointInfo info = new EndpointInfo(serviceInfo, "");
- info.setName(new QName("urn:test:ns", "Foo"));
- info.setAddress("http://localhost:9000");
+ EndpointInfo info = getEndpointInfo("bla", "Foo", "http://localhost:9000");
Bus bus = (Bus) ctx.getBean("cxf");
bus.setExtension(cfg, Configurer.class);
DestinationFactoryManager dfm = bus.getExtension(DestinationFactoryManager.class);
- Destination d =
- dfm.getDestinationFactory("http://schemas.xmlsoap.org/soap/http").getDestination(info);
+ DestinationFactory factory = dfm.getDestinationFactory("http://schemas.xmlsoap.org/soap/http");
+ Destination d = factory.getDestination(info);
assertTrue(d instanceof JettyHTTPDestination);
JettyHTTPDestination jd = (JettyHTTPDestination) d;
assertEquals("foobar", jd.getServer().getContentEncoding());
JettyHTTPServerEngine engine = (JettyHTTPServerEngine)jd.getEngine();
assertEquals(111, engine.getThreadingParameters().getMinThreads());
+ assertEquals(120, engine.getThreadingParameters().getMaxThreads());
ConduitInitiatorManager cim = bus.getExtension(ConduitInitiatorManager.class);
ConduitInitiator ci = cim.getConduitInitiator("http://schemas.xmlsoap.org/soap/http");
@@ -119,6 +117,32 @@
info.setName(new QName("urn:test:ns", "Bar"));
conduit = (HTTPConduit) ci.getConduit(info);
assertEquals(79, conduit.getClient().getConnectionTimeout());
-
+
+ JettyHTTPDestination jd2 =
+ (JettyHTTPDestination)factory.getDestination(
+ getEndpointInfo("foo", "bar", "http://localhost:9001"));
+
+ engine = (JettyHTTPServerEngine)jd2.getEngine();
+ assertEquals(99, engine.getThreadingParameters().getMinThreads());
+ assertEquals(777, engine.getThreadingParameters().getMaxThreads());
+
+ JettyHTTPDestination jd3 =
+ (JettyHTTPDestination)factory.getDestination(
+ getEndpointInfo("sna", "foo", "http://localhost:9100"));
+
+ engine = (JettyHTTPServerEngine)jd3.getEngine();
+ assertEquals(99, engine.getThreadingParameters().getMinThreads());
+ assertEquals(777, engine.getThreadingParameters().getMaxThreads());
+ }
+
+ private EndpointInfo getEndpointInfo(String serviceNS,
+ String endpointLocal,
+ String address) {
+ ServiceInfo serviceInfo2 = new ServiceInfo();
+ serviceInfo2.setName(new QName(serviceNS, "Service"));
+ EndpointInfo info2 = new EndpointInfo(serviceInfo2, "");
+ info2.setName(new QName("urn:test:ns", endpointLocal));
+ info2.setAddress(address);
+ return info2;
}
}
Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml?view=diff&rev=547746&r1=547745&r2=547746
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml Fri Jun 15 10:16:43 2007
@@ -55,5 +55,9 @@
<hj:threadingParametersRef id="sampleThreading1"/>
</hj:engine>
+ <hj:engine port="0">
+ <hj:threadingParameters minThreads="99" maxThreads="777"/>
+ </hj:engine>
+
</hj:engine-factory>
</beans>