You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/08/25 05:37:27 UTC
svn commit: r807465 - in /camel/trunk/components/camel-jetty/src:
main/java/org/apache/camel/component/jetty/
test/java/org/apache/camel/component/jetty/
Author: ningjiang
Date: Tue Aug 25 03:37:26 2009
New Revision: 807465
URL: http://svn.apache.org/viewvc?rev=807465&view=rev
Log:
CAMEL-1911 support multi https endpoints in jetty component
Modified:
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/ExplicitHttpsRouteTest.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteSetupWithSystemPropsTest.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
Modified: camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java?rev=807465&r1=807464&r2=807465&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java (original)
+++ camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java Tue Aug 25 03:37:26 2009
@@ -60,7 +60,7 @@
protected String sslKeyPassword;
protected String sslPassword;
protected String sslKeystore;
- protected SslSocketConnector sslSocketConnector;
+ protected Map<Integer, SslSocketConnector> sslSocketConnectors;
class ConnectorRef {
Server server;
@@ -137,7 +137,7 @@
if (connectorRef == null) {
Connector connector;
if ("https".equals(endpoint.getProtocol())) {
- connector = getSslSocketConnector();
+ connector = getSslSocketConnector(endpoint.getPort());
} else {
connector = new SelectChannelConnector();
}
@@ -235,29 +235,47 @@
return sslKeystore;
}
- public synchronized SslSocketConnector getSslSocketConnector() {
- if (sslSocketConnector == null) {
- sslSocketConnector = new SslSocketConnector();
- // with default null values, jetty ssl system properties
- // and console will be read by jetty implementation
- sslSocketConnector.setPassword(sslPassword);
- sslSocketConnector.setKeyPassword(sslKeyPassword);
- if (sslKeystore != null) {
- sslSocketConnector.setKeystore(sslKeystore);
- } else {
- // try the keystore system property as a backup, jetty doesn't seem
- // to read this property anymore
- String keystoreProperty = System.getProperty(JETTY_SSL_KEYSTORE);
- if (keystoreProperty != null) {
- sslSocketConnector.setKeystore(keystoreProperty);
- }
+ public SslSocketConnector getSslSocketConnector(int port) {
+ SslSocketConnector answer = null;
+ if (sslSocketConnectors != null) {
+ answer = sslSocketConnectors.get(port);
+ }
+ if (answer == null) {
+ answer = createSslSocketConnector();
+ } else {
+ // try the keystore system property as a backup, jetty doesn't seem
+ // to read this property anymore
+ String keystoreProperty = System.getProperty(JETTY_SSL_KEYSTORE);
+ if (keystoreProperty != null) {
+ answer.setKeystore(keystoreProperty);
+ }
+
+ }
+ return answer;
+ }
+
+ public SslSocketConnector createSslSocketConnector() {
+ SslSocketConnector answer = new SslSocketConnector();
+ // with default null values, jetty ssl system properties
+ // and console will be read by jetty implementation
+ answer.setPassword(sslPassword);
+ answer.setKeyPassword(sslKeyPassword);
+ if (sslKeystore != null) {
+ answer.setKeystore(sslKeystore);
+ } else {
+ // try the keystore system property as a backup, jetty doesn't seem
+ // to read this property anymore
+ String keystoreProperty = System.getProperty(JETTY_SSL_KEYSTORE);
+ if (keystoreProperty != null) {
+ answer.setKeystore(keystoreProperty);
}
}
- return sslSocketConnector;
+
+ return answer;
}
- public void setSslSocketConnector(SslSocketConnector connector) {
- sslSocketConnector = connector;
+ public void setSslSocketConnectors(Map <Integer, SslSocketConnector> connectors) {
+ sslSocketConnectors = connectors;
}
protected CamelServlet createServletForConnector(Server server, Connector connector, List<Handler> handlers) throws Exception {
Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/ExplicitHttpsRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/ExplicitHttpsRouteTest.java?rev=807465&r1=807464&r2=807465&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/ExplicitHttpsRouteTest.java (original)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/ExplicitHttpsRouteTest.java Tue Aug 25 03:37:26 2009
@@ -18,6 +18,8 @@
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -25,20 +27,28 @@
import org.mortbay.jetty.security.SslSocketConnector;
public class ExplicitHttpsRouteTest extends HttpsRouteTest {
+
+ private SslSocketConnector createSslSocketConnector() throws URISyntaxException {
+ SslSocketConnector sslSocketConnector = new SslSocketConnector();
+ sslSocketConnector.setKeyPassword(pwd);
+ sslSocketConnector.setPassword(pwd);
+ URL keyStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
+ sslSocketConnector.setKeystore(keyStoreUrl.toURI().getPath());
+ sslSocketConnector.setTruststoreType("JKS");
+ return sslSocketConnector;
+ }
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws URISyntaxException {
- SslSocketConnector sslSocketConnector = new SslSocketConnector();
- sslSocketConnector.setKeyPassword(pwd);
- sslSocketConnector.setPassword(pwd);
- URL keyStoreUrl = this.getClass().getClassLoader().getResource("jsse/localhost.ks");
- sslSocketConnector.setKeystore(keyStoreUrl.toURI().getPath());
- sslSocketConnector.setTruststoreType("JKS");
JettyHttpComponent componentJetty = (JettyHttpComponent) context.getComponent("jetty");
- componentJetty.setSslSocketConnector(sslSocketConnector);
+ Map<Integer, SslSocketConnector> connectors = new HashMap<Integer, SslSocketConnector>();
+ connectors.put(9080, createSslSocketConnector());
+ connectors.put(9090, createSslSocketConnector());
+
+ componentJetty.setSslSocketConnectors(connectors);
from("jetty:https://localhost:9080/test").to("mock:a");
@@ -48,6 +58,8 @@
}
};
from("jetty:https://localhost:9080/hello").process(proc);
+
+ from("jetty:https://localhost:9090/test").to("mock:b");
}
};
}
Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteSetupWithSystemPropsTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteSetupWithSystemPropsTest.java?rev=807465&r1=807464&r2=807465&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteSetupWithSystemPropsTest.java (original)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteSetupWithSystemPropsTest.java Tue Aug 25 03:37:26 2009
@@ -53,6 +53,8 @@
}
};
from("jetty:https://localhost:9080/hello").process(proc);
+
+ from("jetty:https://localhost:9090/test").to("mock:b");
}
};
}
Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java?rev=807465&r1=807464&r2=807465&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java (original)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpsRouteTest.java Tue Aug 25 03:37:26 2009
@@ -79,13 +79,16 @@
@Test
public void testEndpoint() throws Exception {
- MockEndpoint mockEndpoint = resolveMandatoryEndpoint("mock:a", MockEndpoint.class);
- mockEndpoint.expectedBodiesReceived(expectedBody);
+ MockEndpoint mockEndpointA = resolveMandatoryEndpoint("mock:a", MockEndpoint.class);
+ mockEndpointA.expectedBodiesReceived(expectedBody);
+ MockEndpoint mockEndpointB = resolveMandatoryEndpoint("mock:b", MockEndpoint.class);
+ mockEndpointB.expectedBodiesReceived(expectedBody);
invokeHttpEndpoint();
- mockEndpoint.assertIsSatisfied();
- List<Exchange> list = mockEndpoint.getReceivedExchanges();
+ mockEndpointA.assertIsSatisfied();
+ mockEndpointB.assertIsSatisfied();
+ List<Exchange> list = mockEndpointA.getReceivedExchanges();
Exchange exchange = list.get(0);
assertNotNull("exchange", exchange);
@@ -138,6 +141,7 @@
protected void invokeHttpEndpoint() throws IOException {
template.sendBodyAndHeader("jetty:https://localhost:9080/test", expectedBody, "Content-Type", "application/xml");
+ template.sendBodyAndHeader("jetty:https://localhost:9090/test", expectedBody, "Content-Type", "application/xml");
}
@Override
@@ -159,6 +163,8 @@
}
};
from("jetty:https://localhost:9080/hello").process(proc);
+
+ from("jetty:https://localhost:9090/test").to("mock:b");
}
};
}