Author: michael
Date: Mon Jun 18 15:10:40 2012
New Revision: 1351381
URL: http://svn.apache.org/viewvc?rev=1351381&view=rev
Log:
Fix long paste of text in waves (WAVE-352)
Patch By Vicente J. Ruiz Jurado
Modified:
incubator/wave/trunk/server-config.xml
incubator/wave/trunk/server.config.example
incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java
incubator/wave/trunk/src/org/waveprotocol/box/server/ServerModule.java
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WebSocketServerChannel.java
Modified: incubator/wave/trunk/server-config.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/server-config.xml?rev=1351381&r1=1351380&r2=1351381&view=diff
==============================================================================
--- incubator/wave/trunk/server-config.xml (original)
+++ incubator/wave/trunk/server-config.xml Mon Jun 18 15:10:40 2012
@@ -15,6 +15,8 @@
<property name="account_store_directory" value="_accounts" />
<property name="delta_store_directory" value="_deltas" />
<property name="sessions_store_directory" value="_sessions" />
+ <property name="websocket_max_message_size" value="2" />
+ <property name="websocket_max_idle_time" value="0" />
<property name="admin_user" value="@${wave_server_domain}" />
<property name="welcome_wave_id" value="" />
<property name="listener_executor_thread_count" value="1" />
@@ -84,6 +86,8 @@
value="${account_store_directory}" />
<token key="DELTA_STORE_DIRECTORY" value="${delta_store_directory}"
/>
<token key="SESSIONS_STORE_DIRECTORY"
value="${sessions_store_directory}" />
+ <token key="WEBSOCKET_MAX_MESSAGE_SIZE"
value="${websocket_max_message_size}" />
+ <token key="WEBSOCKET_MAX_IDLE_TIME"
value="${websocket_max_idle_time}" />
<token key="ADMIN_USER" value="${admin_user}" />
<token key="WELCOME_WAVE_ID" value="${welcome_wave_id}" />
<token key="LISTENER_EXECUTOR_THREAD_COUNT"
value="${listener_executor_thread_count}" />
Modified: incubator/wave/trunk/server.config.example
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/server.config.example?rev=1351381&r1=1351380&r2=1351381&view=diff
==============================================================================
--- incubator/wave/trunk/server.config.example (original)
+++ incubator/wave/trunk/server.config.example Mon Jun 18 15:10:40 2012
@@ -71,6 +71,14 @@ delta_store_directory = @DELTA_STORE_DIR
# Default value: _sessions
sessions_store_directory = @SESSIONS_STORE_DIRECTORY@
+# The time in ms that the websocket connection can be idle before closing
+# Default value: 0
+websocket_max_idle_time = @WEBSOCKET_MAX_IDLE_TIME@
+
+# Maximum websocket message size to be received in MB
+# Default value: 2
+websocket_max_message_size = @WEBSOCKET_MAX_MESSAGE_SIZE@
+
# Note: the default value for admin is an invalid user id that cannot be
registered.
# To become an admin: Register a user and set its address as the value below.
# Admin has a privilege to change passwords of other users using an agent
robot.
Modified: incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java?rev=1351381&r1=1351380&r2=1351381&view=diff
==============================================================================
--- incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java
(original)
+++ incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java Mon
Jun 18 15:10:40 2012
@@ -44,6 +44,8 @@ public class CoreSettings {
public static final String DELTA_STORE_DIRECTORY = "delta_store_directory";
public static final String SESSIONS_STORE_DIRECTORY =
"sessions_store_directory";
public static final String FLASHSOCKET_POLICY_PORT =
"flashsocket_policy_port";
+ public static final String WEBSOCKET_MAX_MESSAGE_SIZE =
"websocket_max_message_size";
+ public static final String WEBSOCKET_MAX_IDLE_TIME =
"websocket_max_idle_time";
public static final String GADGET_SERVER_HOSTNAME = "gadget_server_hostname";
public static final String GADGET_SERVER_PORT = "gadget_server_port";
public static final String GADGET_SERVER_PATH = "gadget_server_path";
@@ -140,6 +142,14 @@ public class CoreSettings {
defaultValue = "843")
private static int flashsocketPolicyPort;
+ @Setting(name = WEBSOCKET_MAX_IDLE_TIME,
+ description = "The time in ms that the websocket connection can be idle
before closing", defaultValue = "0")
+ private static int websocketMaxIdleTime;
+
+ @Setting(name = WEBSOCKET_MAX_MESSAGE_SIZE,
+ description = "Maximum websocket message size to be received in MB",
defaultValue = "2")
+ private static int websocketMaxMessageSize;
+
@Setting(name = GADGET_SERVER_HOSTNAME, description = "The hostname of the
gadget server.",
defaultValue = "gmodules.com")
private static String gadgetServerHostname;
Modified: incubator/wave/trunk/src/org/waveprotocol/box/server/ServerModule.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/ServerModule.java?rev=1351381&r1=1351380&r2=1351381&view=diff
==============================================================================
--- incubator/wave/trunk/src/org/waveprotocol/box/server/ServerModule.java
(original)
+++ incubator/wave/trunk/src/org/waveprotocol/box/server/ServerModule.java Mon
Jun 18 15:10:40 2012
@@ -32,6 +32,7 @@ import org.waveprotocol.box.server.robot
import org.waveprotocol.box.server.robots.register.RobotRegistrarImpl;
import org.waveprotocol.box.server.rpc.ProtoSerializer;
import org.waveprotocol.box.server.rpc.ServerRpcProvider;
+import org.waveprotocol.box.server.rpc.WebSocketServerChannel;
import org.waveprotocol.box.server.waveserver.LookupExecutor;
import org.waveprotocol.box.server.waveserver.WaveServerImpl;
import org.waveprotocol.box.server.waveserver.WaveServerModule;
@@ -107,6 +108,8 @@ public class ServerModule extends Abstra
bind(ServerRpcProvider.class).in(Singleton.class);
bind(RobotRegistrar.class).to(RobotRegistrarImpl.class);
+
+ requestStaticInjection(WebSocketServerChannel.class);
}
@Provides
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WebSocketServerChannel.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WebSocketServerChannel.java?rev=1351381&r1=1351380&r2=1351381&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WebSocketServerChannel.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WebSocketServerChannel.java
Mon Jun 18 15:10:40 2012
@@ -17,7 +17,11 @@
package org.waveprotocol.box.server.rpc;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
import org.eclipse.jetty.websocket.WebSocket;
+import org.waveprotocol.box.server.CoreSettings;
import org.waveprotocol.wave.util.logging.Log;
import java.io.IOException;
@@ -27,6 +31,13 @@ import java.io.IOException;
*/
public class WebSocketServerChannel extends WebSocketChannel implements
WebSocket,
WebSocket.OnTextMessage {
+
+ @Inject
+ private static @Named(CoreSettings.WEBSOCKET_MAX_MESSAGE_SIZE) int
websocketMaxMessageSize;
+
+ @Inject
+ private static @Named(CoreSettings.WEBSOCKET_MAX_IDLE_TIME) int
websocketMaxIdleTime;
+
private static final Log LOG = Log.get(WebSocketServerChannel.class);
private Connection connection;
@@ -48,7 +59,9 @@ public class WebSocketServerChannel exte
@Override
public void onOpen(Connection connection) {
this.connection = connection;
- connection.setMaxIdleTime(0);
+ connection.setMaxIdleTime(websocketMaxIdleTime);
+ connection.setMaxTextMessageSize(websocketMaxMessageSize * 1024 * 1024);
+ connection.setMaxBinaryMessageSize(websocketMaxMessageSize * 1024 * 1024);
}
/**