You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2012/08/28 11:24:54 UTC

svn commit: r1378035 - in /activemq/trunk/activemq-optional/src: main/java/org/apache/activemq/transport/ main/java/org/apache/activemq/transport/ws/ main/java/org/apache/activemq/transport/wss/ test/java/org/apache/activemq/transport/ws/

Author: dejanb
Date: Tue Aug 28 09:24:53 2012
New Revision: 1378035

URL: http://svn.apache.org/viewvc?rev=1378035&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-3980 - generic support for all web socket tuning options

Modified:
    activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/SocketConnectorFactory.java
    activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportFactory.java
    activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java
    activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/wss/WSSTransportFactory.java
    activemq/trunk/activemq-optional/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java

Modified: activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/SocketConnectorFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/SocketConnectorFactory.java?rev=1378035&r1=1378034&r2=1378035&view=diff
==============================================================================
--- activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/SocketConnectorFactory.java (original)
+++ activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/SocketConnectorFactory.java Tue Aug 28 09:24:53 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.transport;
 
+import org.apache.activemq.util.IntrospectionSupport;
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.nio.SelectChannelConnector;
@@ -27,7 +28,9 @@ public class SocketConnectorFactory {
     private Map<String, Object> transportOptions;
 
     public Connector createConnector() throws Exception {
-       return new SelectChannelConnector();
+        SelectChannelConnector connector = new SelectChannelConnector();
+        IntrospectionSupport.setProperties(connector, transportOptions, "");
+        return connector;
     }
 
     public Map<String, Object> getTransportOptions() {

Modified: activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportFactory.java?rev=1378035&r1=1378034&r2=1378035&view=diff
==============================================================================
--- activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportFactory.java (original)
+++ activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportFactory.java Tue Aug 28 09:24:53 2012
@@ -28,7 +28,6 @@ import org.apache.activemq.transport.Tra
 import org.apache.activemq.util.IOExceptionSupport;
 import org.apache.activemq.util.IntrospectionSupport;
 import org.apache.activemq.util.URISupport;
-
 /**
  * 
  * Factory for WebSocket (ws) transport
@@ -40,7 +39,7 @@ public class WSTransportFactory extends 
         try {
             Map<String, String> options = new HashMap<String, String>(URISupport.parseParameters(location));
             WSTransportServer result = new WSTransportServer(location);
-            Map<String, Object> transportOptions = IntrospectionSupport.extractProperties(options, "transport.");
+            Map<String, Object> transportOptions = IntrospectionSupport.extractProperties(options, "");
             result.setTransportOption(transportOptions);
             return result;
         } catch (URISyntaxException e) {

Modified: activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java?rev=1378035&r1=1378034&r2=1378035&view=diff
==============================================================================
--- activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java (original)
+++ activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/ws/WSTransportServer.java Tue Aug 28 09:24:53 2012
@@ -41,8 +41,6 @@ import java.util.Map;
  */
 public class WSTransportServer extends WebTransportServerSupport {
 
-    int maxTextMessageSize = -1;
-
     public WSTransportServer(URI location) {
         super(location);
         this.bindAddress = location;
@@ -64,9 +62,14 @@ public class WSTransportServer extends W
                 new ServletContextHandler(server, "/", ServletContextHandler.NO_SECURITY);
 
         ServletHolder holder = new ServletHolder();
-        if (maxTextMessageSize != -1) {
-            holder.setInitParameter("maxTextMessageSize", String.valueOf(maxTextMessageSize));
+        Map<String, Object> webSocketOptions = IntrospectionSupport.extractProperties(transportOptions, "websocket.");
+        for(Map.Entry<String,Object> webSocketEntry : webSocketOptions.entrySet()) {
+            Object value = webSocketEntry.getValue();
+            if (value != null) {
+                holder.setInitParameter(webSocketEntry.getKey(), value.toString());
+            }
         }
+
         holder.setServlet(new StompServlet());
         contextHandler.addServlet(holder, "/");
 
@@ -97,16 +100,9 @@ public class WSTransportServer extends W
 
     @Override
     public void setTransportOption(Map<String, Object> transportOptions) {
-        IntrospectionSupport.setProperties(this, transportOptions);
-        socketConnectorFactory.setTransportOptions(transportOptions);
+        Map<String, Object> socketOptions = IntrospectionSupport.extractProperties(transportOptions, "transport.");
+        socketConnectorFactory.setTransportOptions(socketOptions);
         super.setTransportOption(transportOptions);
     }
 
-    public int getMaxTextMessageSize() {
-        return maxTextMessageSize;
-    }
-
-    public void setMaxTextMessageSize(int maxTextMessageSize) {
-        this.maxTextMessageSize = maxTextMessageSize;
-    }
 }

Modified: activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/wss/WSSTransportFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/wss/WSSTransportFactory.java?rev=1378035&r1=1378034&r2=1378035&view=diff
==============================================================================
--- activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/wss/WSSTransportFactory.java (original)
+++ activemq/trunk/activemq-optional/src/main/java/org/apache/activemq/transport/wss/WSSTransportFactory.java Tue Aug 28 09:24:53 2012
@@ -41,7 +41,7 @@ public class WSSTransportFactory extends
         try {
             Map<String, String> options = new HashMap<String, String>(URISupport.parseParameters(location));
             WSSTransportServer result = new WSSTransportServer(location, SslContext.getCurrentSslContext());
-            Map<String, Object> transportOptions = IntrospectionSupport.extractProperties(options, "transport.");
+            Map<String, Object> transportOptions = IntrospectionSupport.extractProperties(options, "");
             result.setTransportOption(transportOptions);
             return result;
         } catch (URISyntaxException e) {

Modified: activemq/trunk/activemq-optional/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-optional/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java?rev=1378035&r1=1378034&r2=1378035&view=diff
==============================================================================
--- activemq/trunk/activemq-optional/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java (original)
+++ activemq/trunk/activemq-optional/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java Tue Aug 28 09:24:53 2012
@@ -64,7 +64,7 @@ public class WSTransportTest {
                 new URI("broker:()/localhost?persistent=false&useJmx=false"));
 
         stompUri = broker.addConnector("stomp://localhost:0").getPublishableConnectString();
-        wsUri = broker.addConnector("ws://127.0.0.1:61623").getPublishableConnectString();
+        wsUri = broker.addConnector("ws://127.0.0.1:61623?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001").getPublishableConnectString();
         broker.setDeleteAllMessagesOnStartup(deleteMessages);
         broker.start();
         broker.waitUntilStarted();