You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2009/11/10 22:36:15 UTC

svn commit: r834682 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java

Author: johnh
Date: Tue Nov 10 21:36:15 2009
New Revision: 834682

URL: http://svn.apache.org/viewvc?rev=834682&view=rev
Log:
Restore "optional" semantics to externalized/libs= features.


Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java?rev=834682&r1=834681&r2=834682&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java Tue Nov 10 21:36:15 2009
@@ -240,7 +240,8 @@
     List<FeatureResource> externResources =
         featureRegistry.getFeatureResources(gadget.getContext(), extern, unsupported);
     if (!unsupported.isEmpty()) {
-      throw new UnsupportedFeatureException("In extern &libs=: " + unsupported.toString());
+      LOG.info("Unknown feature(s) in extern &libs=: " + unsupported.toString());
+      unsupported.clear();
     }
     
     // Get all resources requested by the gadget's requires/optional features.

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java?rev=834682&r1=834681&r2=834682&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java Tue Nov 10 21:36:15 2009
@@ -626,6 +626,9 @@
     reset(featureRegistry);
     expect(featureRegistry.getFeatureResources(same(gadget.getContext()),
         eq(ImmutableSet.<String>of()), eq(Lists.<String>newArrayList())))
+        .andReturn(ImmutableList.<FeatureResource>of());
+    expect(featureRegistry.getFeatureResources(same(gadget.getContext()),
+        eq(ImmutableList.<String>of("foo", "core")), eq(Lists.<String>newArrayList())))
         .andAnswer(new IAnswer<List<FeatureResource>>() {
           @SuppressWarnings("unchecked")
           public List<FeatureResource> answer() throws Throwable {
@@ -638,6 +641,47 @@
 
     rewrite(gadget, "");
   }
+  
+  @Test
+  public void unsupportedExternFeatureDoesNotThrow() throws Exception {
+    String gadgetXml =
+      "<Module><ModulePrefs title=''>" +
+      "</ModulePrefs>" +
+      "<Content type='html'/>" +
+      "</Module>";
+    
+    GadgetContext context = new GadgetContext() {
+      @Override
+      public String getParameter(String name) {
+        if (name.equals("libs")) {
+          return "bar";
+        }
+        return null;
+      }
+    };
+    
+    Gadget gadget = makeGadgetWithSpec(gadgetXml).setContext(context);
+    
+    reset(featureRegistry);
+    expect(featureRegistry.getFeatureResources(same(gadget.getContext()),
+        eq(ImmutableSet.<String>of("bar")), eq(Lists.<String>newArrayList())))
+        .andAnswer(new IAnswer<List<FeatureResource>>() {
+          @SuppressWarnings("unchecked")
+          public List<FeatureResource> answer() throws Throwable {
+            List<String> unsupported = (List<String>)getCurrentArguments()[2];
+            unsupported.add("bar");
+            return Lists.newArrayList();
+          }
+        });
+    expect(featureRegistry.getFeatureResources(same(gadget.getContext()),
+        eq(ImmutableList.<String>of("core")), eq(Lists.<String>newArrayList())))
+        .andReturn(ImmutableList.<FeatureResource>of());
+    expect(featureRegistry.getFeatures(eq(ImmutableList.of("core", "bar"))))
+        .andReturn(ImmutableList.of("core"));
+    replay(featureRegistry);
+    
+    rewrite(gadget, "");
+  }
 
   @Test
   public void unsupportedOptionalFeatureDoesNotThrow() throws Exception {