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 2009/10/27 22:34:21 UTC

svn commit: r830351 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/ main/java/org/apache/shindig/gadgets/render/ test/java/org/apache/shindig/gadgets/render/

Author: lindner
Date: Tue Oct 27 21:34:20 2009
New Revision: 830351

URL: http://svn.apache.org/viewvc?rev=830351&view=rev
Log:
SHINDIG-1199 | Patch from Jon Weygandt | OpenSocialI18NGadgetRewriter's creation of JsLibrary should be consistent with JsFeatureLoader

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriterTest.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java?rev=830351&r1=830350&r2=830351&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java Tue Oct 27 21:34:20 2009
@@ -21,6 +21,7 @@
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
 import org.apache.shindig.common.util.ResourceLoader;
 import org.apache.shindig.common.xml.XmlException;
@@ -53,6 +54,7 @@
  * loader.loadFeatures("res://features/", registry);
  * loader.loadFeatures("/home/user/my-features/", registry);
  */
+@Singleton
 public class JsFeatureLoader {
 
   public final static char FILE_SEPARATOR = ',';
@@ -316,7 +318,7 @@
     }
   }
   
-  protected JsLibrary createJsLibrary(JsLibrary.Type type, String content, String feature,
+  public JsLibrary createJsLibrary(JsLibrary.Type type, String content, String feature,
       HttpFetcher fetcher) throws GadgetException {
     return JsLibrary.create(type, content, feature, fetcher);
   }

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java?rev=830351&r1=830350&r2=830351&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriter.java Tue Oct 27 21:34:20 2009
@@ -22,6 +22,7 @@
 import org.apache.shindig.common.xml.DomUtil;
 import org.apache.shindig.gadgets.Gadget;
 import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.JsFeatureLoader;
 import org.apache.shindig.gadgets.JsLibrary;
 import org.apache.shindig.gadgets.rewrite.GadgetRewriter;
 import org.apache.shindig.gadgets.rewrite.MutableContent;
@@ -29,10 +30,12 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
+import com.google.inject.Inject;
+
 import java.io.IOException;
-import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * Produce data constants that are needed by the opensocial-i18n
@@ -41,8 +44,14 @@
 public class OpenSocialI18NGadgetRewriter implements GadgetRewriter {
   private static final String I18N_FEATURE_NAME = "opensocial-i18n";
   private static final String DATA_PATH = "features/i18n/data/";
-  private Map<Locale, String> i18nConstantsCache = new HashMap<Locale, String>();
+  private Map<Locale, String> i18nConstantsCache = new ConcurrentHashMap<Locale, String>();
+  private JsFeatureLoader jsFeatureLoader;
 
+  @Inject
+  public OpenSocialI18NGadgetRewriter(JsFeatureLoader jsFeatureLoader) {
+	  this.jsFeatureLoader = jsFeatureLoader;
+  }
+  
   public void rewrite(Gadget gadget, MutableContent mutableContent) {
     // Don't touch sanitized gadgets.
     if (gadget.sanitizeOutput()) {
@@ -73,10 +82,10 @@
     } else {
       // load gadgets.i18n.DateTimeConstants and gadgets.i18n.NumberFormatConstants
       String localeName = getLocaleNameForLoadingI18NConstants(locale);
-      JsLibrary dateTimeConstants = JsLibrary.create(JsLibrary.Type.RESOURCE,
+      JsLibrary dateTimeConstants = jsFeatureLoader.createJsLibrary(JsLibrary.Type.RESOURCE,
           DATA_PATH + "DateTimeConstants__" + localeName + ".js",
           "opensocial-i18n", null);
-      JsLibrary numberConstants = JsLibrary.create(JsLibrary.Type.RESOURCE,
+      JsLibrary numberConstants = jsFeatureLoader.createJsLibrary(JsLibrary.Type.RESOURCE,
           DATA_PATH + "NumberFormatConstants__" + localeName + ".js",
           "opensocial-i18n", null);
       inlineJs.append(dateTimeConstants.getContent())
@@ -94,7 +103,7 @@
     String country = locale.getCountry(); 
     if (!language.equalsIgnoreCase("ALL")) {
       try {
-        String content = attemptToLoadResource(language);
+        attemptToLoadResource(language);
         localeName = language; 
       } catch (IOException e) {
       }
@@ -102,7 +111,7 @@
 
     if (!country.equalsIgnoreCase("ALL")) {
       try {
-        String content = attemptToLoadResource(localeName + '_' + country);
+        attemptToLoadResource(localeName + '_' + country);
         localeName += '_' + country;
       } catch (IOException e) {
       }

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriterTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriterTest.java?rev=830351&r1=830350&r2=830351&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriterTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/OpenSocialI18NGadgetRewriterTest.java Tue Oct 27 21:34:20 2009
@@ -20,7 +20,7 @@
 
 import static org.junit.Assert.assertEquals;
 
-import org.apache.shindig.common.util.ResourceLoader;
+import org.apache.shindig.gadgets.JsFeatureLoader;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -111,6 +111,7 @@
   private static class FakeOpenSocialI18NGadgetRewriter extends OpenSocialI18NGadgetRewriter {
     private Map<String, String> resources = new HashMap<String,String>();
     public FakeOpenSocialI18NGadgetRewriter() {
+      super(new JsFeatureLoader(null));
       resources.put("features/i18n/data/DateTimeConstants__en.js", "content for en");
       resources.put("features/i18n/data/DateTimeConstants__en_US.js", "content for en_US");
       resources.put("features/i18n/data/DateTimeConstants__zh.js", "content for zh");