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/04/18 00:16:10 UTC
svn commit: r766166 - 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/
test/java/org/apache/shindig/gadgets/render/
Author: johnh
Date: Fri Apr 17 22:16:10 2009
New Revision: 766166
URL: http://svn.apache.org/viewvc?rev=766166&view=rev
Log:
Change LockedDomainService APIs to take Gadget rather than GadgetSpec. This in turn affords access to Gadget.getAllFeatures(...) making it possible for transitively-included "locked-domain" to enable that feature.
Resolves SHINDIG-1015.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/LockedDomainService.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/Renderer.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultUrlGenerator.java Fri Apr 17 22:16:10 2009
@@ -125,7 +125,7 @@
default:
Uri iframeBaseUri = iframeBaseUris.get(context.getContainer());
uri = iframeBaseUri != null ? new UriBuilder(iframeBaseUri) : new UriBuilder();
- String host = lockedDomainService.getLockedDomainForGadget(spec, context.getContainer());
+ String host = lockedDomainService.getLockedDomainForGadget(gadget, context.getContainer());
if (host != null) {
uri.setAuthority(host);
}
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java Fri Apr 17 22:16:10 2009
@@ -19,7 +19,6 @@
import org.apache.shindig.common.util.Base32;
import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.spec.GadgetSpec;
import com.google.common.collect.Maps;
import com.google.inject.Inject;
@@ -88,7 +87,7 @@
return true;
}
- public boolean gadgetCanRender(String host, GadgetSpec gadget, String container) {
+ public boolean gadgetCanRender(String host, Gadget gadget, String container) {
container = normalizeContainer(container);
if (enabled) {
if (gadgetWantsLockedDomain(gadget) ||
@@ -101,7 +100,7 @@
return true;
}
- public String getLockedDomainForGadget(GadgetSpec gadget, String container) {
+ public String getLockedDomainForGadget(Gadget gadget, String container) {
container = normalizeContainer(container);
if (enabled) {
if (gadgetWantsLockedDomain(gadget) ||
@@ -112,18 +111,18 @@
return null;
}
- private String getLockedDomain(GadgetSpec gadget, String container) {
+ private String getLockedDomain(Gadget gadget, String container) {
String suffix = lockedSuffixes.get(container);
if (suffix == null) {
return null;
}
- byte[] sha1 = DigestUtils.sha(gadget.getUrl().toString());
+ byte[] sha1 = DigestUtils.sha(gadget.getSpec().getUrl().toString());
String hash = new String(Base32.encodeBase32(sha1));
return hash + suffix;
}
- private boolean gadgetWantsLockedDomain(GadgetSpec gadget) {
- return gadget.getModulePrefs().getFeatures().containsKey("locked-domain");
+ private boolean gadgetWantsLockedDomain(Gadget gadget) {
+ return gadget.getAllFeatures().contains("locked-domain");
}
private boolean hostRequiresLockedDomain(String host) {
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/LockedDomainService.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/LockedDomainService.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/LockedDomainService.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/LockedDomainService.java Fri Apr 17 22:16:10 2009
@@ -18,8 +18,6 @@
*/
package org.apache.shindig.gadgets;
-import org.apache.shindig.gadgets.spec.GadgetSpec;
-
import com.google.inject.ImplementedBy;
/**
@@ -45,7 +43,7 @@
* @param container container
* @return true if the gadget can render
*/
- boolean gadgetCanRender(String host, GadgetSpec gadget, String container);
+ boolean gadgetCanRender(String host, Gadget gadget, String container);
/**
* Calculate the locked domain for a particular gadget on a particular
@@ -56,6 +54,6 @@
* @return the host name on which the gadget should render, or null if locked domain should not
* be used to render this gadget.
*/
- public String getLockedDomainForGadget(GadgetSpec gadget, String container);
+ public String getLockedDomainForGadget(Gadget gadget, String container);
}
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/Renderer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/Renderer.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/Renderer.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/Renderer.java Fri Apr 17 22:16:10 2009
@@ -81,8 +81,7 @@
return RenderingResults.mustRedirect(gadget.getCurrentView().getHref());
}
- GadgetSpec spec = gadget.getSpec();
- if (!lockedDomainService.gadgetCanRender(context.getHost(), spec, context.getContainer())) {
+ if (!lockedDomainService.gadgetCanRender(context.getHost(), gadget, context.getContainer())) {
return RenderingResults.error("Invalid domain");
}
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultUrlGeneratorTest.java Fri Apr 17 22:16:10 2009
@@ -181,7 +181,7 @@
"</Module>";
GadgetSpec spec = new GadgetSpec(Uri.parse(SPEC_URL), xml);
- expect(lockedDomainService.getLockedDomainForGadget(isA(GadgetSpec.class), eq(CONTAINER)))
+ expect(lockedDomainService.getLockedDomainForGadget(isA(Gadget.class), eq(CONTAINER)))
.andReturn("locked.example.org");
replay();
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/HashLockedDomainServiceTest.java Fri Apr 17 22:16:10 2009
@@ -30,30 +30,43 @@
import org.apache.shindig.gadgets.spec.GadgetSpec;
import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
public class HashLockedDomainServiceTest extends EasyMockTestCase {
private HashLockedDomainService lockedDomainService;
- private final GadgetSpec wantsLocked = makeSpec(true, "http://somehost.com/somegadget.xml");
- private final GadgetSpec notLocked = makeSpec(false, "not-locked");
+ private Gadget wantsLocked = null;
+ private Gadget notLocked = null;
private final ContainerConfig requiredConfig = mock(ContainerConfig.class);
private final ContainerConfig enabledConfig = mock(ContainerConfig.class);
- private static GadgetSpec makeSpec(boolean wantsLocked, String url) {
+ private Gadget makeGadget(boolean wantsLocked, String url) {
String gadgetXml;
+ List<String> features = new ArrayList<String>();
+ List<GadgetFeature> gadgetFeatures = new ArrayList<GadgetFeature>();
if (wantsLocked) {
gadgetXml =
"<Module><ModulePrefs title=''>" +
" <Require feature='locked-domain'/>" +
"</ModulePrefs><Content/></Module>";
+ features = Arrays.asList("locked-domain");
+ gadgetFeatures = Arrays.asList(new GadgetFeature("locked-domain",
+ new ArrayList<JsLibrary>(), null));
} else {
gadgetXml = "<Module><ModulePrefs title=''/><Content/></Module>";
}
+ GadgetSpec spec = null;
try {
- return new GadgetSpec(Uri.parse(url), gadgetXml);
+ spec = new GadgetSpec(Uri.parse(url), gadgetXml);
} catch (GadgetException e) {
return null;
}
+
+ GadgetFeatureRegistry registry = mock(GadgetFeatureRegistry.class);
+ expect(registry.getFeatures(isA(Collection.class))).andReturn(gadgetFeatures).anyTimes();
+ return new Gadget().setSpec(spec).setGadgetFeatureRegistry(registry);
}
@Override
@@ -70,6 +83,8 @@
LOCKED_DOMAIN_SUFFIX_KEY)).andReturn("-a.example.com:8080").anyTimes();
expect(enabledConfig.getContainers())
.andReturn(Arrays.asList(ContainerConfig.DEFAULT_CONTAINER)).anyTimes();
+ wantsLocked = makeGadget(true, "http://somehost.com/somegadget.xml");
+ notLocked = makeGadget(false, "not-locked");
}
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java?rev=766166&r1=766165&r2=766166&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java Fri Apr 17 22:16:10 2009
@@ -228,12 +228,12 @@
protected FakeLockedDomainService() {
}
- public boolean gadgetCanRender(String host, GadgetSpec gadget, String container) {
+ public boolean gadgetCanRender(String host, Gadget gadget, String container) {
wasChecked = true;
return canRender;
}
- public String getLockedDomainForGadget(GadgetSpec gadget, String container) {
+ public String getLockedDomainForGadget(Gadget gadget, String container) {
return null;
}