You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/08/26 23:35:58 UTC
svn commit: r689242 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/
main/java/org/apache/shindig/gadgets/servlet/
test/java/org/apache/shindig/gadgets/
Author: etnu
Date: Tue Aug 26 14:35:58 2008
New Revision: 689242
URL: http://svn.apache.org/viewvc?rev=689242&view=rev
Log:
Implemented SHINDIG-546 by binding to ExecutorService as well as Executor. We will keep the Executor binding for a short while, but should remove it before the first release build.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java Tue Aug 26 14:35:58 2008
@@ -37,7 +37,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
import java.util.logging.Logger;
/**
@@ -53,7 +53,7 @@
private final HttpFetcher fetcher;
private final ContentRewriterRegistry rewriterRegistry;
- private final Executor executor;
+ private final ExecutorService executor;
private final long minTtl;
private final long maxTtl;
@@ -174,7 +174,7 @@
public BasicGadgetSpecFactory(HttpFetcher fetcher,
CacheProvider cacheProvider,
ContentRewriterRegistry rewriterRegistry,
- Executor executor,
+ ExecutorService executor,
@Named("shindig.gadget-spec.cache.capacity")int gadgetSpecCacheCapacity,
@Named("shindig.gadget-spec.cache.minTTL")long minTtl,
@Named("shindig.gadget-spec.cache.maxTTL")long maxTtl) {
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java Tue Aug 26 14:35:58 2008
@@ -18,13 +18,6 @@
*/
package org.apache.shindig.gadgets;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Properties;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-
import org.apache.shindig.common.util.ResourceLoader;
import org.apache.shindig.gadgets.http.HttpResponse;
@@ -33,6 +26,14 @@
import com.google.inject.name.Names;
import com.google.inject.spi.Message;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Properties;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
/**
* Creates a module to supply all of the Basic* classes
*/
@@ -42,11 +43,12 @@
/** {@inheritDoc} */
@Override
- protected void configure() {
- System.out.println("Created default injector: " + this);
+ protected void configure() {
Names.bindProperties(this.binder(), properties);
- bind(Executor.class).toInstance(Executors.newCachedThreadPool());
+ ExecutorService service = Executors.newCachedThreadPool();
+ bind(Executor.class).toInstance(service);
+ bind(ExecutorService.class).toInstance(service);
// We perform static injection on HttpResponse for cache TTLs.
requestStaticInjection(HttpResponse.class);
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java Tue Aug 26 14:35:58 2008
@@ -38,8 +38,8 @@
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
-import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
/**
@@ -48,7 +48,7 @@
*/
@Singleton
public class GadgetServer {
- private final Executor executor;
+ private final ExecutorService executor;
private final GadgetFeatureRegistry registry;
private final GadgetBlacklist blacklist;
@@ -57,7 +57,7 @@
private MessageBundleFactory bundleFactory;
@Inject
- public GadgetServer(Executor executor,
+ public GadgetServer(ExecutorService executor,
GadgetFeatureRegistry registry,
GadgetBlacklist blacklist,
ContentFetcherFactory preloadFetcherFactory,
@@ -169,6 +169,7 @@
/**
* Provides a task for preloading data into the gadget content
+ * TODO: Remove when new preloading is committed.
*/
class PreloadTask implements Callable<HttpResponse> {
private final Preload preload;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java Tue Aug 26 14:35:58 2008
@@ -30,7 +30,6 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -41,8 +40,8 @@
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.ExecutorService;
/**
* Processes JSON-RPC requests by retrieving all necessary meta data in parallel
@@ -51,7 +50,7 @@
@Singleton
public class JsonRpcHandler {
- private final Executor executor;
+ private final ExecutorService executor;
private final GadgetServer server;
private final UrlGenerator urlGenerator;
@@ -221,7 +220,7 @@
}
@Inject
- public JsonRpcHandler(Executor executor, GadgetServer server,
+ public JsonRpcHandler(ExecutorService executor, GadgetServer server,
UrlGenerator iframeUrlGenerator) {
this.executor = executor;
this.server = server;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/BasicGadgetSpecFactoryTest.java Tue Aug 26 14:35:58 2008
@@ -18,17 +18,18 @@
*/
package org.apache.shindig.gadgets;
-import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.cache.CacheProvider;
import org.apache.shindig.common.cache.DefaultCacheProvider;
+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.HttpResponseBuilder;
+import org.apache.shindig.gadgets.rewrite.BasicContentRewriterRegistry;
import org.apache.shindig.gadgets.rewrite.ContentRewriter;
import org.apache.shindig.gadgets.rewrite.ContentRewriterRegistry;
-import org.apache.shindig.gadgets.rewrite.BasicContentRewriterRegistry;
import org.apache.shindig.gadgets.spec.GadgetSpec;
+
import org.easymock.EasyMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.classextension.EasyMock.replay;
@@ -38,7 +39,9 @@
import org.junit.Test;
import java.net.URI;
-import java.util.concurrent.Executor;
+import java.util.concurrent.AbstractExecutorService;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
/**
* Tests for BasicGadgetSpecFactory
@@ -80,9 +83,31 @@
return SPEC_URL.toJavaUri();
}
};
- private final static Executor FAKE_EXECUTOR = new Executor() {
- public void execute(Runnable runnable) {
- runnable.run();
+ private final static ExecutorService FAKE_EXECUTOR = new AbstractExecutorService() {
+ private boolean shutdown;
+
+ public void execute(Runnable command) {
+ command.run();
+ }
+
+ public boolean isTerminated() {
+ return shutdown;
+ }
+
+ public boolean isShutdown() {
+ return shutdown;
+ }
+
+ public boolean awaitTermination(long timeout, TimeUnit unit) {
+ return true;
+ }
+
+ public void shutdown() {
+ shutdown = true;
+ }
+
+ public void shutdownNow() {
+ shutdown();
}
};
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java?rev=689242&r1=689241&r2=689242&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java Tue Aug 26 14:35:58 2008
@@ -36,7 +36,9 @@
import org.apache.shindig.gadgets.servlet.JsonRpcHandler;
import org.apache.shindig.gadgets.servlet.UrlGenerator;
-import java.util.concurrent.Executor;
+import java.util.concurrent.AbstractExecutorService;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -67,9 +69,31 @@
public final LockedDomainService lockedDomainService = mock(LockedDomainService.class);
public final ContentRewriter rewriter = new NoOpContentRewriter();
public final FakeTimeSource timeSource = new FakeTimeSource();
- public final Executor executor = new Executor() {
- public void execute(Runnable r) {
- r.run();
+ public final ExecutorService executor = new AbstractExecutorService() {
+ private boolean shutdown;
+
+ public void execute(Runnable command) {
+ command.run();
+ }
+
+ public boolean isTerminated() {
+ return shutdown;
+ }
+
+ public boolean isShutdown() {
+ return shutdown;
+ }
+
+ public boolean awaitTermination(long timeout, TimeUnit unit) {
+ return true;
+ }
+
+ public void shutdown() {
+ shutdown = true;
+ }
+
+ public void shutdownNow() {
+ shutdown();
}
};
public final GadgetSpecFactory specFactory = new BasicGadgetSpecFactory(