You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by aw...@apache.org on 2009/04/08 20:38:54 UTC

svn commit: r763345 - /incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java

Author: awiner
Date: Wed Apr  8 18:38:53 2009
New Revision: 763345

URL: http://svn.apache.org/viewvc?rev=763345&view=rev
Log:
The prior checkin broke some subclasses that overrode createExpressionContent(), since createExpressionContext() was now getting called within the JsonContainerConfig constructor itself.  This adds a hacky way for subclasses to delay init() until at least the subclasses constructor has fully executed.

Modified:
    incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java

Modified: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java?rev=763345&r1=763344&r2=763345&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java Wed Apr  8 18:38:53 2009
@@ -82,7 +82,7 @@
       throws ContainerConfigException {
     this.expressions = expressions;
     config = createContainers(loadContainers(containers));
-    evaluateConfig();
+    init();
   }
 
   /**
@@ -91,9 +91,20 @@
   public JsonContainerConfig(JSONObject json, Expressions expressions) {
     this.expressions = expressions;
     config = createContainers(json);
-    evaluateConfig();
+    init();
   }
 
+  /**
+   * Initializes the configuration.  Called during construction.
+   */
+  protected void init() {
+    for (Map.Entry<String, Map<String, Object>> configEntry : config.entrySet()) {
+      @SuppressWarnings("unchecked")
+      Map<String, Object> value = (Map<String, Object>) evaluateAll(configEntry.getValue());
+      configEntry.setValue(value);
+    }
+  }
+  
   @Override
   public Collection<String> getContainers() {
     return Collections.unmodifiableSet(config.keySet());
@@ -354,14 +365,6 @@
   public String toString() {
     return JsonSerializer.serialize(config);
   }
-
-  private void evaluateConfig() {
-    for (Map.Entry<String, Map<String, Object>> configEntry : config.entrySet()) {
-      @SuppressWarnings("unchecked")
-      Map<String, Object> value = (Map<String, Object>) evaluateAll(configEntry.getValue());
-      configEntry.setValue(value);
-    }
-  }
   
   private Object evaluateAll(Object value) {
     if (value instanceof CharSequence) {