Author: zhoresh
Date: Thu May  5 17:23:24 2011
New Revision: 1099881

URL: http://svn.apache.org/viewvc?rev=1099881&view=rev
Log:
Patch by Igor Belakovskiy
Support localization of feature parameters | 
https://issues.apache.org/jira/browse/SHINDIG-1523

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java?rev=1099881&r1=1099880&r2=1099881&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Feature.java
 Thu May  5 17:23:24 2011
@@ -165,4 +165,21 @@ public class Feature {
     String viewNames = XmlUtil.getAttribute(feature, "views", "").trim();
     this.views = 
ImmutableSet.copyOf(Splitter.on(',').omitEmptyStrings().trimResults().split(viewNames));
   }
+
+  
+  /**
+   * @param name feature name
+   * @param params feature parameters
+   * @param required true if feature is required, false otherwise
+   * @param views views declared in the feature.
+   */
+  public Feature(String name, Multimap<String, String> params,
+      boolean required, Set<String> views) {
+    this.name = name;
+    this.params = params;
+    this.required = required;
+    this.views = views;
+  }
+  
+ 
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java?rev=1099881&r1=1099880&r2=1099881&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
 Thu May  5 17:23:24 2011
@@ -168,7 +168,21 @@ public class ModulePrefs {
       String substituted = substituter.substituteString(attr.getValue());
       attributes.put(attr.getKey(), substituted);
     }
-
+    
+    ImmutableMap.Builder<String, Feature> featureBuilder= 
ImmutableMap.builder();
+    for (Map.Entry<String, Feature> feature : features.entrySet()) {
+      ImmutableMultimap.Builder<String, String> params = 
ImmutableMultimap.builder();
+      for (Map.Entry<String, String> param: 
feature.getValue().getParams().entries()){     
+        String substituted=substituter.substituteString(param.getValue());
+        params.put(param.getKey(), substituted);
+      }
+      Feature oldFeature=feature.getValue();
+      Feature newFeature=new Feature(oldFeature.getName(), params.build(), 
oldFeature.getRequired(), oldFeature.getViews());
+      featureBuilder.put(feature.getKey(), newFeature);
+    }
+    this.features=featureBuilder.build();
+    
+    
     this.extraElements = ImmutableMultimap.copyOf(prefs.extraElements);
     this.attributes = attributes.build();
     this.needsUserPrefSubstitution = prefs.needsUserPrefSubstitution;

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java?rev=1099881&r1=1099880&r2=1099881&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
 Thu May  5 17:23:24 2011
@@ -256,12 +256,16 @@ public class ModulePrefsTest {
                  "  <Icon>__MSG_icon__</Icon>" +
                  "  <Link rel='__MSG_rel__' href='__MSG_link_href__'/>" +
                  "  <Preload href='__MSG_pre_href__'/>" +
+                 "    <Require feature=\"testFeature\">" +
+                 "           <Param 
name=\"test_param\">__MSG_test_param__</Param>" +
+                 "  </Require>" +
                  "</ModulePrefs>";
     String title = "blah";
     String icon = "http://example.org/icon.gif";;
     String rel = "foo-bar";
     String linkHref = "http://example.org/link.html";;
     String preHref = "http://example.org/preload.html";;
+    String testParam = "bar-foo"; 
 
     ModulePrefs prefs = new ModulePrefs(XmlUtil.parse(xml), SPEC_URL);
     Substitutions subst = new Substitutions();
@@ -270,6 +274,7 @@ public class ModulePrefsTest {
     subst.addSubstitution(Substitutions.Type.MESSAGE, "rel", rel);
     subst.addSubstitution(Substitutions.Type.MESSAGE, "link_href", linkHref);
     subst.addSubstitution(Substitutions.Type.MESSAGE, "pre_href", preHref);
+    subst.addSubstitution(Substitutions.Type.MESSAGE, "test_param", testParam);
     prefs = prefs.substitute(subst);
 
     assertEquals(title, prefs.getTitle());
@@ -277,6 +282,7 @@ public class ModulePrefsTest {
     assertEquals(rel, prefs.getLinks().get(rel).getRel());
     assertEquals(linkHref, prefs.getLinks().get(rel).getHref().toString());
     assertEquals(preHref, prefs.getPreloads().get(0).getHref().toString());
+    assertEquals(testParam, 
prefs.getFeatures().get("testFeature").getParam("test_param"));
   }
 
   @Test


Reply via email to