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(