From 12838c2811d37f0a9bb36e6608da4cfaa76b5637 Mon Sep 17 00:00:00 2001 From: Gary Tully Date: Wed, 27 Apr 2011 17:40:57 +0000 Subject: [PATCH] https://issues.apache.org/jira/browse/AMQ-3300 - Add support for soWriteTimeout and soTimeout to ssl transport git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1097191 13f79535-47bb-0310-9956-ffa450edef68 --- .../transport/tcp/SslTransportFactory.java | 25 +++---------------- .../transport/TransportBrokerTestSupport.java | 4 +-- .../transport/tcp/SslTransportBrokerTest.java | 9 ++++++- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/activemq-core/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java b/activemq-core/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java index b69144d52b..7b2e91f9c3 100644 --- a/activemq-core/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java +++ b/activemq-core/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java @@ -88,34 +88,15 @@ public class SslTransportFactory extends TcpTransportFactory { } /** - * Overriding to allow for proper configuration through reflection. + * Overriding to allow for proper configuration through reflection but delegate to get common + * configuration */ public Transport compositeConfigure(Transport transport, WireFormat format, Map options) { SslTransport sslTransport = (SslTransport)transport.narrow(SslTransport.class); IntrospectionSupport.setProperties(sslTransport, options); - Map socketOptions = IntrospectionSupport.extractProperties(options, "socket."); - - sslTransport.setSocketOptions(socketOptions); - - if (sslTransport.isTrace()) { - try { - transport = TransportLoggerFactory.getInstance().createTransportLogger(transport, - sslTransport.getLogWriterName(), sslTransport.isDynamicManagement(), sslTransport.isStartLogging(), sslTransport.getJmxPort()); - } catch (Throwable e) { - LOG.error("Could not create TransportLogger object for: " + sslTransport.getLogWriterName() + ", reason: " + e, e); - } - } - - transport = new InactivityMonitor(transport, format); - - // Only need the WireFormatNegotiator if using openwire - if (format instanceof OpenWireFormat) { - transport = new WireFormatNegotiator(transport, (OpenWireFormat)format, sslTransport.getMinmumWireFormatVersion()); - } - - return transport; + return super.compositeConfigure(transport, format, options); } /** diff --git a/activemq-core/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java b/activemq-core/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java index 7b5debe793..5c221d330c 100755 --- a/activemq-core/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java +++ b/activemq-core/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java @@ -66,8 +66,8 @@ public abstract class TransportBrokerTestSupport extends BrokerTest { // instead use the original host name (typically localhost) to bind to URI actualURI = connector.getServer().getConnectURI(); - URI connectURI = new URI(actualURI.getScheme(), actualURI.getUserInfo(), bindURI.getHost(), actualURI.getPort(), actualURI.getPath(), actualURI - .getQuery(), actualURI.getFragment()); + URI connectURI = new URI(actualURI.getScheme(), actualURI.getUserInfo(), bindURI.getHost(), actualURI.getPort(), actualURI.getPath(), bindURI + .getQuery(), bindURI.getFragment()); Transport transport = TransportFactory.connect(connectURI); StubConnection connection = new StubConnection(transport); diff --git a/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java b/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java index c5a90fcad3..de07a74f86 100755 --- a/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java +++ b/activemq-core/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java @@ -16,6 +16,8 @@ */ package org.apache.activemq.transport.tcp; +import java.net.URI; +import java.net.URISyntaxException; import junit.framework.Test; import junit.textui.TestRunner; import org.apache.activemq.transport.TransportBrokerTestSupport; @@ -28,7 +30,12 @@ public class SslTransportBrokerTest extends TransportBrokerTestSupport { public static final String TRUST_KEYSTORE = "src/test/resources/client.keystore"; protected String getBindLocation() { - return "ssl://localhost:0"; + return "ssl://localhost:0?transport.soWriteTimeout=20000"; + } + + @Override + protected URI getBindURI() throws URISyntaxException { + return new URI("ssl://localhost:0?soWriteTimeout=20000"); } protected void setUp() throws Exception {