Author: etnu
Date: Tue Jan 27 20:09:13 2009
New Revision: 738213
URL: http://svn.apache.org/viewvc?rev=738213&view=rev
Log:
Fixed some dangling issues related to request pipeline refactoring:
- Deleted unused classes
- Fixed bindings for Default*Factory to properly use the pipeline and not the
http fetchers directly.
Removed:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ChainedContentFetcher.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/InterceptingContentFetcher.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultMessageBundleFactoryTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java?rev=738213&r1=738212&r2=738213&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
Tue Jan 27 20:09:13 2009
@@ -23,15 +23,15 @@
import org.apache.shindig.common.cache.SoftExpiringCache;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
+import org.apache.shindig.gadgets.http.RequestPipeline;
import org.apache.shindig.gadgets.spec.GadgetSpec;
+import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
-import com.google.common.base.Preconditions;
import java.net.URI;
import java.util.logging.Logger;
@@ -48,15 +48,15 @@
static final String ERROR_KEY = "parse.exception";
static final Logger LOG =
Logger.getLogger(DefaultGadgetSpecFactory.class.getName());
- private final HttpFetcher fetcher;
+ private final RequestPipeline pipeline;
private final SoftExpiringCache<Uri, GadgetSpec> cache;
private final long refresh;
@Inject
- public DefaultGadgetSpecFactory(HttpFetcher fetcher,
+ public DefaultGadgetSpecFactory(RequestPipeline pipeline,
CacheProvider cacheProvider,
@Named("shindig.cache.xml.refreshInterval")
long refresh) {
- this.fetcher = fetcher;
+ this.pipeline = pipeline;
Cache<Uri, GadgetSpec> baseCache = cacheProvider.createCache(CACHE_NAME);
this.cache = new SoftExpiringCache<Uri, GadgetSpec>(baseCache);
this.refresh = refresh;
@@ -133,7 +133,7 @@
// globally. This ensures propagation to shared caches when this is set.
request.setCacheTtl((int) (refresh / 1000));
- HttpResponse response = fetcher.fetch(request);
+ HttpResponse response = pipeline.execute(request);
if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
throw new
GadgetException(GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
"Unable to retrieve gadget xml. HTTP error " +
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java?rev=738213&r1=738212&r2=738213&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
Tue Jan 27 20:09:13 2009
@@ -23,9 +23,9 @@
import org.apache.shindig.common.cache.SoftExpiringCache;
import org.apache.shindig.common.cache.SoftExpiringCache.CachedObject;
import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
+import org.apache.shindig.gadgets.http.RequestPipeline;
import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.apache.shindig.gadgets.spec.LocaleSpec;
import org.apache.shindig.gadgets.spec.MessageBundle;
@@ -48,15 +48,15 @@
private static final Locale ALL_ALL = new Locale("all", "ALL");
public static final String CACHE_NAME = "messageBundles";
static final Logger LOG =
Logger.getLogger(DefaultMessageBundleFactory.class.getName());
- private final HttpFetcher fetcher;
+ private final RequestPipeline pipeline;
final SoftExpiringCache<String, MessageBundle> cache;
private final long refresh;
@Inject
- public DefaultMessageBundleFactory(HttpFetcher fetcher,
+ public DefaultMessageBundleFactory(RequestPipeline pipeline,
CacheProvider cacheProvider,
@Named("shindig.cache.xml.refreshInterval") long refresh) {
- this.fetcher = fetcher;
+ this.pipeline = pipeline;
Cache<String, MessageBundle> baseCache =
cacheProvider.createCache(CACHE_NAME);
this.cache = new SoftExpiringCache<String, MessageBundle>(baseCache);
this.refresh = refresh;
@@ -134,7 +134,7 @@
// globally. This ensures propagation to shared caches when this is set.
request.setCacheTtl((int) (refresh / 1000));
- HttpResponse response = fetcher.fetch(request);
+ HttpResponse response = pipeline.execute(request);
if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
throw new
GadgetException(GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
"Unable to retrieve message bundle xml. HTTP error " +
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java?rev=738213&r1=738212&r2=738213&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
Tue Jan 27 20:09:13 2009
@@ -27,10 +27,10 @@
import org.apache.shindig.common.cache.LruCacheProvider;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.ContainerConfig;
-import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.http.HttpResponseBuilder;
+import org.apache.shindig.gadgets.http.RequestPipeline;
import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.easymock.EasyMock;
@@ -102,12 +102,12 @@
private static final int MAX_AGE = 10000;
- private final HttpFetcher fetcher =
EasyMock.createNiceMock(HttpFetcher.class);
+ private final RequestPipeline pipeline =
EasyMock.createNiceMock(RequestPipeline.class);
private final CacheProvider cacheProvider = new LruCacheProvider(5);
private final DefaultGadgetSpecFactory specFactory
- = new DefaultGadgetSpecFactory(fetcher, cacheProvider, MAX_AGE);
+ = new DefaultGadgetSpecFactory(pipeline, cacheProvider, MAX_AGE);
private static HttpRequest createIgnoreCacheRequest() {
return new HttpRequest(SPEC_URL)
@@ -126,8 +126,8 @@
public void specFetched() throws Exception {
HttpRequest request = createIgnoreCacheRequest();
HttpResponse response = new HttpResponse(LOCAL_SPEC_XML);
- expect(fetcher.fetch(request)).andReturn(response);
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(response);
+ replay(pipeline);
GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
@@ -139,8 +139,8 @@
HttpRequest request = createIgnoreCacheRequest();
HttpResponse response = new HttpResponse(LOCAL_SPEC_XML);
- expect(fetcher.fetch(request)).andReturn(response);
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(response);
+ replay(pipeline);
GadgetSpec spec = specFactory.getGadgetSpec(NO_CACHE_CONTEXT);
@@ -150,11 +150,11 @@
@Test
public void specFetchedFromParam() throws Exception {
// Set up request as if it's a regular spec request, and ensure that
- // the return value comes from rawxml, not the fetcher.
+ // the return value comes from rawxml, not the pipeline.
HttpRequest request = createIgnoreCacheRequest();
HttpResponse response = new HttpResponse(LOCAL_SPEC_XML);
- expect(fetcher.fetch(request)).andReturn(response);
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(response);
+ replay(pipeline);
GadgetSpec spec = specFactory.getGadgetSpec(RAWXML_GADGET_CONTEXT);
@@ -172,9 +172,9 @@
.setResponse(LOCAL_SPEC_XML.getBytes("UTF-8"))
.create();
HttpResponse updatedResponse = new HttpResponse(ALT_LOCAL_SPEC_XML);
- expect(fetcher.fetch(request)).andReturn(expiredResponse).once();
- expect(fetcher.fetch(retriedRequest)).andReturn(updatedResponse).once();
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(expiredResponse).once();
+ expect(pipeline.execute(retriedRequest)).andReturn(updatedResponse).once();
+ replay(pipeline);
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
@@ -191,9 +191,9 @@
.setResponse(LOCAL_SPEC_XML.getBytes("UTF-8"))
.addHeader("Pragma", "no-cache")
.create();
- expect(fetcher.fetch(request)).andReturn(expiredResponse);
-
expect(fetcher.fetch(retriedRequest)).andReturn(HttpResponse.notFound()).once();
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(expiredResponse);
+
expect(pipeline.execute(retriedRequest)).andReturn(HttpResponse.notFound()).once();
+ replay(pipeline);
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
@@ -202,23 +202,23 @@
}
@Test
- public void ttlPropagatesToFetcher() throws Exception {
- CapturingFetcher capturingFetcher = new CapturingFetcher();
+ public void ttlPropagatesToPipeline() throws Exception {
+ CapturingPipeline capturingpipeline = new CapturingPipeline();
DefaultGadgetSpecFactory forcedCacheFactory
- = new DefaultGadgetSpecFactory(capturingFetcher, cacheProvider, 10000);
+ = new DefaultGadgetSpecFactory(capturingpipeline, cacheProvider,
10000);
forcedCacheFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
- assertEquals(10, capturingFetcher.request.getCacheTtl());
+ assertEquals(10, capturingpipeline.request.getCacheTtl());
}
@Test
public void typeUrlNotFetchedRemote() throws Exception {
HttpRequest request = createIgnoreCacheRequest();
HttpResponse response = new HttpResponse(URL_SPEC_XML);
- expect(fetcher.fetch(request)).andReturn(response);
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(response);
+ replay(pipeline);
GadgetSpec spec = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
@@ -229,8 +229,8 @@
@Test(expected = GadgetException.class)
public void badFetchThrows() throws Exception {
HttpRequest request = createIgnoreCacheRequest();
- expect(fetcher.fetch(request)).andReturn(HttpResponse.error());
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(HttpResponse.error());
+ replay(pipeline);
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
}
@@ -238,10 +238,10 @@
@Test(expected = GadgetException.class)
public void badFetchServesCached() throws Exception {
HttpRequest firstRequest = createCacheableRequest();
- expect(fetcher.fetch(firstRequest)).andReturn(new
HttpResponse(LOCAL_SPEC_XML)).once();
+ expect(pipeline.execute(firstRequest)).andReturn(new
HttpResponse(LOCAL_SPEC_XML)).once();
HttpRequest secondRequest = createIgnoreCacheRequest();
-
expect(fetcher.fetch(secondRequest)).andReturn(HttpResponse.error()).once();
- replay(fetcher);
+
expect(pipeline.execute(secondRequest)).andReturn(HttpResponse.error()).once();
+ replay(pipeline);
GadgetSpec original = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(),
false);
GadgetSpec cached = specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
@@ -253,8 +253,8 @@
@Test(expected = GadgetException.class)
public void malformedGadgetSpecThrows() throws Exception {
HttpRequest request = createIgnoreCacheRequest();
- expect(fetcher.fetch(request)).andReturn(new HttpResponse("malformed
junk"));
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(new HttpResponse("malformed
junk"));
+ replay(pipeline);
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
}
@@ -262,8 +262,8 @@
@Test(expected = GadgetException.class)
public void malformedGadgetSpecIsCachedAndThrows() throws Exception {
HttpRequest request = createCacheableRequest();
- expect(fetcher.fetch(request)).andReturn(new HttpResponse("malformed
junk")).once();
- replay(fetcher);
+ expect(pipeline.execute(request)).andReturn(new HttpResponse("malformed
junk")).once();
+ replay(pipeline);
try {
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), false);
@@ -275,19 +275,19 @@
}
@Test(expected = GadgetException.class)
- public void throwingFetcherRethrows() throws Exception {
+ public void throwingpipelineRethrows() throws Exception {
HttpRequest request = createIgnoreCacheRequest();
- expect(fetcher.fetch(request)).andThrow(
+ expect(pipeline.execute(request)).andThrow(
new GadgetException(GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT));
- replay(fetcher);
+ replay(pipeline);
specFactory.getGadgetSpec(SPEC_URL.toJavaUri(), true);
}
- protected static class CapturingFetcher implements HttpFetcher {
+ protected static class CapturingPipeline implements RequestPipeline {
HttpRequest request;
- public HttpResponse fetch(HttpRequest request) {
+ public HttpResponse execute(HttpRequest request) {
this.request = request;
return new HttpResponse(LOCAL_SPEC_XML);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultMessageBundleFactoryTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultMessageBundleFactoryTest.java?rev=738213&r1=738212&r2=738213&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultMessageBundleFactoryTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultMessageBundleFactoryTest.java
Tue Jan 27 20:09:13 2009
@@ -30,10 +30,10 @@
import org.apache.shindig.common.cache.LruCacheProvider;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.util.TimeSource;
-import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.http.HttpResponseBuilder;
+import org.apache.shindig.gadgets.http.RequestPipeline;
import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.apache.shindig.gadgets.spec.MessageBundle;
@@ -86,12 +86,12 @@
private static final int MAX_AGE = 10000;
- private final HttpFetcher fetcher =
EasyMock.createNiceMock(HttpFetcher.class);
+ private final RequestPipeline pipeline =
EasyMock.createNiceMock(RequestPipeline.class);
private final CacheProvider cacheProvider = new LruCacheProvider(10);
private final Cache<String, MessageBundle> cache
= cacheProvider.createCache(DefaultMessageBundleFactory.CACHE_NAME);
private final DefaultMessageBundleFactory bundleFactory
- = new DefaultMessageBundleFactory(fetcher, cacheProvider, MAX_AGE);
+ = new DefaultMessageBundleFactory(pipeline, cacheProvider, MAX_AGE);
private final GadgetSpec gadgetSpec;
public DefaultMessageBundleFactoryTest() {
@@ -106,8 +106,8 @@
@Test
public void getBundle() throws Exception {
HttpResponse response = new HttpResponse(BASIC_BUNDLE);
- expect(fetcher.fetch(isA(HttpRequest.class))).andReturn(response);
- replay(fetcher);
+ expect(pipeline.execute(isA(HttpRequest.class))).andReturn(response);
+ replay(pipeline);
MessageBundle bundle = bundleFactory.getBundle(gadgetSpec, LOCALE, true);
@@ -119,8 +119,8 @@
@Test
public void getBundleFromCache() throws Exception {
HttpResponse response = new HttpResponse(BASIC_BUNDLE);
- expect(fetcher.fetch(isA(HttpRequest.class))).andReturn(response).once();
- replay(fetcher);
+
expect(pipeline.execute(isA(HttpRequest.class))).andReturn(response).once();
+ replay(pipeline);
MessageBundle bundle0 = bundleFactory.getBundle(gadgetSpec, LOCALE, false);
MessageBundle bundle1 = bundleFactory.getBundle(gadgetSpec, LOCALE, false);
@@ -157,11 +157,11 @@
.create();
HttpResponse badResponse = HttpResponse.error();
- expect(fetcher.fetch(isA(HttpRequest.class)))
+ expect(pipeline.execute(isA(HttpRequest.class)))
.andReturn(expiredResponse).once();
- expect(fetcher.fetch(isA(HttpRequest.class)))
+ expect(pipeline.execute(isA(HttpRequest.class)))
.andReturn(badResponse).once();
- replay(fetcher);
+ replay(pipeline);
final AtomicLong time = new AtomicLong();
@@ -180,7 +180,7 @@
MessageBundle bundle1 = bundleFactory.getBundle(gadgetSpec, LOCALE, false);
- verify(fetcher);
+ verify(pipeline);
assertSame("Did not respond from cache when refresh failed.", bundle0,
bundle1);
}
@@ -189,13 +189,13 @@
public void badResponseIsEmptyWhenNotInCache() throws Exception {
HttpResponse badResponse = HttpResponse.error();
- expect(fetcher.fetch(isA(HttpRequest.class)))
+ expect(pipeline.execute(isA(HttpRequest.class)))
.andReturn(badResponse).once();
- replay(fetcher);
+ replay(pipeline);
MessageBundle bundle = bundleFactory.getBundle(gadgetSpec, LOCALE, false);
- verify(fetcher);
+ verify(pipeline);
assertEquals(0, bundle.getMessages().size());
}
@@ -212,13 +212,13 @@
assertEquals(MAX_AGE / 1000, capturingFetcher.request.getCacheTtl());
}
- private static class CapturingFetcher implements HttpFetcher {
+ private static class CapturingFetcher implements RequestPipeline {
HttpRequest request;
protected CapturingFetcher() {
}
- public HttpResponse fetch(HttpRequest request) {
+ public HttpResponse execute(HttpRequest request) {
this.request = request;
return new HttpResponse(BASIC_BUNDLE);
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java?rev=738213&r1=738212&r2=738213&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
Tue Jan 27 20:09:13 2009
@@ -17,8 +17,8 @@
*/
package org.apache.shindig.gadgets.rewrite;
-import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.common.EasyMockTestCase;
+import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetContext;
@@ -26,10 +26,12 @@
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
import org.apache.shindig.gadgets.http.HttpResponseBuilder;
+import org.apache.shindig.gadgets.http.RequestPipeline;
import org.apache.shindig.gadgets.parse.GadgetHtmlParser;
import org.apache.shindig.gadgets.parse.ParseModule;
import org.apache.shindig.gadgets.spec.GadgetSpec;
+import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -65,7 +67,8 @@
SPEC_URL,
defaultRewriterFeature,
DEFAULT_PROXY_BASE);
- injector = Guice.createInjector(new ParseModule(), new PropertiesModule());
+ injector = Guice.createInjector(new ParseModule(), new PropertiesModule(),
+ new TestRequestPipelineModule());
parser = injector.getInstance(GadgetHtmlParser.class);
fakeResponse = new HttpResponseBuilder().setHeader("Content-Type",
"unknown")
.setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}).create();
@@ -154,4 +157,14 @@
return feature;
}
}
+
+ private static class TestRequestPipelineModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(RequestPipeline.class).toInstance(new RequestPipeline() {
+ public HttpResponse execute(HttpRequest request) { return null; }
+ });
+ }
+ }
}