Author: al
Date: Tue Sep 25 12:23:30 2012
New Revision: 1389830

URL: http://svn.apache.org/viewvc?rev=1389830&view=rev
Log:
Make the presented websocket address configurable

By Ali Lown (https://reviews.apache.org/r/7230/)

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/rpc/WaveClientServlet.java

Modified: incubator/wave/trunk/server-config.xml
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/server-config.xml?rev=1389830&r1=1389829&r2=1389830&view=diff
==============================================================================
--- incubator/wave/trunk/server-config.xml (original)
+++ incubator/wave/trunk/server-config.xml Tue Sep 25 12:23:30 2012
@@ -5,6 +5,7 @@
   <property name="wave_server_domain" value="local.net" />
   <property name="http_frontend_public_address" value="localhost:9898" />
   <property name="http_websocket_public_address" 
value="${http_frontend_public_address}" />
+  <property name="http_websocket_presented_address" 
value="${http_frontend_public_address}" />
   <property name="http_frontend_addresses" 
value="${http_frontend_public_address}" />
   <property name="resource_bases" value="./war" />
   <property name="signer_info_store_type" value="file" />
@@ -74,6 +75,8 @@
                  value="${http_frontend_public_address}" />
           <token key="HTTP_WEBSOCKET_PUBLIC_ADDRESS"
                  value="${http_websocket_public_address}" />
+          <token key="HTTP_WEBSOCKET_PRESENTED_ADDRESS"
+                 value="${http_websocket_presented_address}" />
           <token key="HTTP_FRONTEND_ADDRESSES"
                  value="${http_frontend_addresses}" />
           <token key="RESOURCE_BASES" value="${resource_bases}" />

Modified: incubator/wave/trunk/server.config.example
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/server.config.example?rev=1389830&r1=1389829&r2=1389830&view=diff
==============================================================================
--- incubator/wave/trunk/server.config.example (original)
+++ incubator/wave/trunk/server.config.example Tue Sep 25 12:23:30 2012
@@ -32,6 +32,11 @@ http_frontend_public_address = @HTTP_FRO
 # Default value: localhost:9898
 http_websocket_public_address = @HTTP_WEBSOCKET_PUBLIC_ADDRESS@
 
+# An optional host:port address for which the client is told to attempt 
websocket connections.
+# If no value is set for http_websocket_presented_address it defaults to 
http_websocket_public_address
+# Default value: localhost:9898
+http_websocket_presented_address = @HTTP_WEBSOCKET_PRESENTED_ADDRESS@
+
 # Default value: values passed to http_frontend_public_address.
 http_frontend_addresses = @HTTP_FRONTEND_ADDRESSES@
 

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=1389830&r1=1389829&r2=1389830&view=diff
==============================================================================
--- incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java 
(original)
+++ incubator/wave/trunk/src/org/waveprotocol/box/server/CoreSettings.java Tue 
Sep 25 12:23:30 2012
@@ -29,6 +29,7 @@ public class CoreSettings {
   public static final String WAVE_SERVER_DOMAIN = "wave_server_domain";
   public static final String HTTP_FRONTEND_PUBLIC_ADDRESS = 
"http_frontend_public_address";
   public static final String HTTP_WEBSOCKET_PUBLIC_ADDRESS = 
"http_websocket_public_address";
+  public static final String HTTP_WEBSOCKET_PRESENTED_ADDRESS = 
"http_websocket_presented_address";
   public static final String HTTP_FRONTEND_ADDRESSES = 
"http_frontend_addresses";
   public static final String RESOURCE_BASES = "resource_bases";
   public static final String WAVESERVER_DISABLE_VERIFICATION = 
"waveserver_disable_verification";
@@ -77,6 +78,10 @@ public class CoreSettings {
       description = "The server's websocket public address.")
   private static String httpWebsocketPublicAddress;
 
+  @Setting(name = HTTP_WEBSOCKET_PRESENTED_ADDRESS, defaultValue = 
"localhost:9898",
+      description = "The presented server's websocket address.")
+  private static String httpWebsocketPresentedAddress;
+
   @Setting(name = HTTP_FRONTEND_ADDRESSES, defaultValue = "localhost:9898",
       description = "A comman seperated list of address on which to listen for 
connections."
           + " Each address is a host or ip and port seperated by a colon.")

Modified: 
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WaveClientServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WaveClientServlet.java?rev=1389830&r1=1389829&r2=1389830&view=diff
==============================================================================
--- 
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WaveClientServlet.java 
(original)
+++ 
incubator/wave/trunk/src/org/waveprotocol/box/server/rpc/WaveClientServlet.java 
Tue Sep 25 12:23:30 2012
@@ -72,6 +72,7 @@ public class WaveClientServlet extends H
   private final String analyticsAccount;
   private final SessionManager sessionManager;
   private final String websocketAddress;
+  private final String websocketPresentedAddress;
 
   /**
    * Creates a servlet for the wave client.
@@ -81,11 +82,14 @@ public class WaveClientServlet extends H
       @Named(CoreSettings.WAVE_SERVER_DOMAIN) String domain,
       @Named(CoreSettings.HTTP_FRONTEND_ADDRESSES) List<String> httpAddresses,
       @Named(CoreSettings.HTTP_WEBSOCKET_PUBLIC_ADDRESS) String 
websocketAddress,
+      @Named(CoreSettings.HTTP_WEBSOCKET_PRESENTED_ADDRESS) String 
websocketPresentedAddress,
       @Named(CoreSettings.ANALYTICS_ACCOUNT) String analyticsAccount,
       SessionManager sessionManager) {
     this.domain = domain;
     this.websocketAddress = StringUtils.isEmpty(websocketAddress) ?
         httpAddresses.get(0) : websocketAddress;
+    this.websocketPresentedAddress = 
StringUtils.isEmpty(websocketPresentedAddress) ?
+        this.websocketAddress : websocketPresentedAddress;
     this.analyticsAccount = analyticsAccount;
     this.sessionManager = sessionManager;
   }
@@ -113,7 +117,7 @@ public class WaveClientServlet extends H
 
     try {
       WaveClientPage.write(response.getWriter(), new 
GxpContext(request.getLocale()),
-          getSessionJson(request.getSession(false)), getClientFlags(request), 
websocketAddress,
+          getSessionJson(request.getSession(false)), getClientFlags(request), 
websocketPresentedAddress,
           TopBar.getGxpClosure(username, userDomain), analyticsAccount);
     } catch (IOException e) {
       LOG.warning("Failed to write GXP for request " + request, e);


Reply via email to