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