You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/06/25 03:17:50 UTC

svn commit: r957774 - in /shindig/trunk: config/ java/common/src/main/java/org/apache/shindig/common/ java/common/src/main/java/org/apache/shindig/config/ java/common/src/test/java/org/apache/shindig/config/ java/gadgets/src/test/java/org/apache/shindi...

Author: lindner
Date: Fri Jun 25 01:17:49 2010
New Revision: 957774

URL: http://svn.apache.org/viewvc?rev=957774&view=rev
Log:
Dynamically set the SERVER_PORT for tests and defaults

Modified:
    shindig/trunk/config/container.js
    shindig/trunk/java/common/src/main/java/org/apache/shindig/common/PropertiesModule.java
    shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java
    shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ConcatProxyServletTest.java
    shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
    shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java

Modified: shindig/trunk/config/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/config/container.js?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/config/container.js (original)
+++ shindig/trunk/config/container.js Fri Jun 25 01:17:49 2010
@@ -102,10 +102,10 @@
 //"gadgets.securityTokenKeyFile" : "/path/to/key/file.txt",
 
 // URI for the default shindig test instance.
-"defaultShindigTestHost": "http://localhost:9003",
+"defaultShindigTestHost": "http://localhost:${SERVER_PORT}",
 
 // Authority (host:port without scheme) for the proxy and concat servlets.
-"defaultShindigProxyConcatAuthority": "localhost:9003",
+"defaultShindigProxyConcatAuthority": "localhost:${SERVER_PORT}",
 
 // Default Uri config: these must be overridden - specified here for testing purposes
 "gadgets.uri.iframe.unlockedDomain": "${Cur['defaultShindigTestHost']}",

Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/common/PropertiesModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/PropertiesModule.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/common/PropertiesModule.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/common/PropertiesModule.java Fri Jun 25 01:17:49 2010
@@ -57,6 +57,19 @@ public class PropertiesModule extends Ab
   @Override
   protected void configure() {
     Names.bindProperties(this.binder(), getProperties());
+    // This could be generalized to inject any system property...
+    this.binder().bindConstant().annotatedWith(Names.named("shindig.port")).to(getServerPort());
+  }
+
+  /**
+   * Should return the port that the current server is running on.  Useful for testing and working out of the box configs.
+   * Looks for a port in system properties "shindig.port" then "jetty.port", if not set uses fixed value of "8080"
+   * @return an integer port number as a string.
+   */
+  protected String getServerPort() {
+    return System.getProperty("shindig.port") != null ? System.getProperty("shindig.port") :
+           System.getProperty("jetty.port") != null ? System.getProperty("jetty.port") :
+           "8080";
   }
 
   protected static String getDefaultPropertiesPath() {

Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java Fri Jun 25 01:17:49 2010
@@ -73,17 +73,30 @@ public class JsonContainerConfig extends
 
   private final Map<String, Map<String, Object>> config;
   private final Expressions expressions;
+
   private static final Pattern CRLF_PATTERN = Pattern.compile("[\r\n]+");
 
+  // Used by tests
+  public JsonContainerConfig(String containers, Expressions expressions) throws ContainerConfigException {
+    this(containers, "8080", expressions);
+  }
   /**
    * Creates a new configuration from files.
    * @throws ContainerConfigException
    */
   @Inject
-  public JsonContainerConfig(@Named("shindig.containers.default") String containers, Expressions expressions)
+  public JsonContainerConfig(@Named("shindig.containers.default") String containers,
+                             @Named("shindig.port") String port,
+                             Expressions expressions)
       throws ContainerConfigException {
     this.expressions = expressions;
-    config = createContainers(loadContainers(containers));
+    JSONObject configJson = loadContainers(containers);
+    try {
+      configJson.getJSONObject(ContainerConfig.DEFAULT_CONTAINER).put("SERVER_PORT", port);
+    } catch (JSONException e) {
+      // ignore
+    }
+    config = createContainers(configJson);
     init();
   }
 

Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigTest.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigTest.java Fri Jun 25 01:17:49 2010
@@ -193,6 +193,19 @@ public class JsonContainerConfigTest {
   }
 
   @Test
+  public void shindigPortTest() throws Exception {
+    // We use a JSON Object here to guarantee that we're well formed up front.
+    JSONObject json = new JSONObject();
+    json.put(CONTAINER_KEY, new String[]{DEFAULT_CONTAINER});
+    json.put("expression", "port=${SERVER_PORT}");
+
+    ContainerConfig config = new JsonContainerConfig(createContainer(json).getAbsolutePath(), Expressions.forTesting());
+
+    assertEquals("port=8080", config.getString(DEFAULT_CONTAINER, "expression"));
+
+  }
+
+  @Test
   public void expressionEvaluationUsingParent() throws Exception {
     // We use a JSON Object here to guarantee that we're well formed up front.
     JSONObject json = new JSONObject();

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ConcatProxyServletTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ConcatProxyServletTest.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ConcatProxyServletTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ConcatProxyServletTest.java Fri Jun 25 01:17:49 2010
@@ -259,7 +259,7 @@ public class ConcatProxyServletTest exte
     verify();
     String results = "_js={\r\n"
       + addVar(URL1.toString(), SCRT1_ESCAPED)
-      + "FAILED_TO_RETRIEVE_CONTENT concat(http://example.org/4.js) null";
+      + "FAILED_TO_RETRIEVE_CONTENT concat(http://example.org/4.js) null};\r\n";
     assertEquals(results, recorder.getResponseAsString());
     assertEquals(400, recorder.getHttpStatusCode());
   }
@@ -274,7 +274,7 @@ public class ConcatProxyServletTest exte
 
     String results = "_js={\r\n"
         + addVar(URL1.toString(), SCRT1_ESCAPED)
-        + "HTML_PARSE_ERROR concat(http://example.org/4.js) null";
+        + "HTML_PARSE_ERROR concat(http://example.org/4.js) null};\r\n";
 
     expectRequestWithUris(Lists.newArrayList(URL1, URL4), "_js");
     

Modified: shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java (original)
+++ shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java Fri Jun 25 01:17:49 2010
@@ -105,6 +105,9 @@ public class EndToEndServer {
    * Starts the server for end-to-end tests.
    */
   private Server createServer(int port) throws Exception {
+    System.setProperty("shindig.port", String.valueOf(port));
+    System.setProperty("jetty.port", String.valueOf(port));
+
     Server newServer = new Server(port);
 
     // Attach the test resources in /endtoend as static content for the test

Modified: shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java?rev=957774&r1=957773&r2=957774&view=diff
==============================================================================
--- shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java (original)
+++ shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java Fri Jun 25 01:17:49 2010
@@ -73,9 +73,9 @@ public class SocialApiTestsGuiceModule e
         .toInstance(ImmutableSet.<Object>of(ActivityHandler.class, AppDataHandler.class,
             PersonHandler.class, MessageHandler.class));
 
-    bind(String.class).annotatedWith(
-        Names.named("shindig.containers.default"))
-        .toInstance("res://containers/default/container.js");
+    bindConstant().annotatedWith(Names.named("shindig.containers.default"))
+        .to("res://containers/default/container.js");
+    bindConstant().annotatedWith(Names.named("shindig.port")).to("8080");
     bind(ContainerConfig.class).to(JsonContainerConfig.class);
     
     bind(Integer.class).annotatedWith(