You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by ie...@apache.org on 2008/10/02 13:38:39 UTC

svn commit: r701087 - in /incubator/shindig/trunk/java: server/src/test/java/org/apache/shindig/server/endtoend/ social-api/src/main/java/org/apache/shindig/social/core/config/ social-api/src/main/java/org/apache/shindig/social/opensocial/service/ soci...

Author: ieb
Date: Thu Oct  2 04:38:38 2008
New Revision: 701087

URL: http://svn.apache.org/viewvc?rev=701087&view=rev
Log:
SHINDIG-638
Patch from Adam Winer

HandlerProvider gives Class<? extends DataRequestHandlers>, then ApiServlet uses Injector.getInstance().

It'd be cleaner if HandlerProvider gave Provider<? extends DataRequestHandler>, so ApiServlet didn't need to use the Injector at all.

Thanks

Removed:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/service/SampleContainerHandlerProvider.java
Modified:
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerProvider.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java
    incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java

Modified: incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java (original)
+++ incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java Thu Oct  2 04:38:38 2008
@@ -59,7 +59,5 @@
 
     bind(new TypeLiteral<List<AuthenticationHandler>>(){}).toProvider(
         AuthenticationHandlerProvider.class);
-
-    bind(HandlerProvider.class).toInstance(HandlerProvider.defaultProviders());
   }
 }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/config/SocialApiGuiceModule.java Thu Oct  2 04:38:38 2008
@@ -28,9 +28,11 @@
 import org.apache.shindig.social.opensocial.service.BeanConverter;
 import org.apache.shindig.social.opensocial.service.DataServiceServletFetcher;
 import org.apache.shindig.social.opensocial.service.HandlerProvider;
-import org.apache.shindig.social.sample.service.SampleContainerHandlerProvider;
+import org.apache.shindig.social.sample.service.SampleContainerHandler;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.TypeLiteral;
 import com.google.inject.name.Names;
 
@@ -47,7 +49,7 @@
   /** {@inheritDoc} */
   @Override
   protected void configure() {
-    bind(HandlerProvider.class).to(SampleContainerHandlerProvider.class);
+    bind(HandlerProvider.class).toProvider(HandlerProviderProvider.class);
 
     bind(ParameterFetcher.class).annotatedWith(Names.named("DataServiceServlet"))
         .to(DataServiceServletFetcher.class);
@@ -69,4 +71,25 @@
     bind(new TypeLiteral<List<AuthenticationHandler>>(){}).toProvider(
         AuthenticationHandlerProvider.class);
   }
+
+  /**
+   * Provider for the HandlerProvider.  Adds the sample container handler
+   * at "samplecontainer".
+   */
+  static class HandlerProviderProvider implements Provider<HandlerProvider> {
+    private final HandlerProvider handlerProvider;
+    private final Provider<SampleContainerHandler> sampleHandler;
+
+    @Inject
+    public HandlerProviderProvider(HandlerProvider handlerProvider,
+        Provider<SampleContainerHandler> sampleHandler) {
+      this.handlerProvider = handlerProvider;
+      this.sampleHandler = sampleHandler;
+    }
+
+    public HandlerProvider get() {
+      handlerProvider.addHandler("samplecontainer", sampleHandler);
+      return handlerProvider;
+    }
+  }
 }

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/ApiServlet.java Thu Oct  2 04:38:38 2008
@@ -26,7 +26,7 @@
 import org.apache.shindig.social.opensocial.spi.SocialSpiException;
 
 import com.google.inject.Inject;
-import com.google.inject.Injector;
+import com.google.inject.Provider;
 import com.google.inject.name.Named;
 
 import java.io.IOException;
@@ -43,7 +43,7 @@
 public abstract class ApiServlet extends InjectedServlet {
   protected static final String DEFAULT_ENCODING = "UTF-8";
 
-  private Map<String, Class<? extends DataRequestHandler>> handlers;
+  private Map<String, Provider<? extends DataRequestHandler>> handlers;
   protected BeanJsonConverter jsonConverter;
   protected BeanConverter xmlConverter;
   protected BeanConverter atomConverter;
@@ -64,11 +64,6 @@
     this.atomConverter = atomConverter;
   }
 
-  // Only for testing use. Do not override the injector.
-  public void setInjector(Injector injector) {
-    this.injector = injector;
-  }
-
   protected SecurityToken getSecurityToken(HttpServletRequest servletRequest) {
     return new AuthInfo(servletRequest).getSecurityToken();
   }
@@ -85,15 +80,16 @@
   /**
    * Delivers a request item to the appropriate DataRequestHandler.
    */
-  protected Future<?> handleRequestItem(RequestItem requestItem, HttpServletRequest servletRequest) {
-    Class<? extends DataRequestHandler> handlerClass = handlers.get(requestItem.getService());
+  protected Future<?> handleRequestItem(RequestItem requestItem,
+      HttpServletRequest servletRequest) {
+    Provider<? extends DataRequestHandler> handlerProvider = handlers.get(requestItem.getService());
 
-    if (handlerClass == null) {
+    if (handlerProvider == null) {
       return ImmediateFuture.errorInstance(new SocialSpiException(ResponseError.NOT_IMPLEMENTED,
           "The service " + requestItem.getService() + " is not implemented"));
     }
 
-    DataRequestHandler handler = injector.getInstance(handlerClass);
+    DataRequestHandler handler = handlerProvider.get();
     return handler.handleItem(requestItem);
   }
 

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerProvider.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerProvider.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerProvider.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/HandlerProvider.java Thu Oct  2 04:38:38 2008
@@ -18,9 +18,11 @@
 
 package org.apache.shindig.social.opensocial.service;
 
+import com.google.inject.Inject;
 import com.google.inject.Provider;
 import com.google.common.collect.Maps;
 
+import java.util.Collections;
 import java.util.Map;
 
 /**
@@ -33,34 +35,31 @@
  * Provider<Map<String, Class<? extends DataRequestHandler>>> along
  * with a default set of handlers.
  */
-public class HandlerProvider implements Provider<Map<String,
-    Class<? extends DataRequestHandler>>> {
-  
-  private Map<String, Class<? extends DataRequestHandler>> handlers;
-  
-  private static Map<String, Class<? extends DataRequestHandler>> DEFAULT_HANDLERS =
-      Maps.immutableMap(
-          DataServiceServlet.PEOPLE_ROUTE, PersonHandler.class,
-          DataServiceServlet.ACTIVITY_ROUTE, ActivityHandler.class,
-          DataServiceServlet.APPDATA_ROUTE, AppDataHandler.class);
-  
-  protected HandlerProvider(boolean useDefaultProviders) {
-    handlers = Maps.newHashMap(useDefaultProviders ? DEFAULT_HANDLERS : null);
-  }
-  
-  public void addHandler(String path, Class<? extends DataRequestHandler> handler) {
-    handlers.put(path, handler);
+public class HandlerProvider implements Provider<Map<String, Provider<? extends DataRequestHandler>>> {
+  private final Map<String, Provider<? extends DataRequestHandler>> handlers;
+
+  /**
+   * Constructor for the default handlers.
+   */
+  @Inject
+  public HandlerProvider(Provider<PersonHandler> personHandlerProvider,
+      Provider<ActivityHandler> activityHandlerProvider,
+      Provider<AppDataHandler> appDataHandlerProvider) {
+    this(Maps.immutableMap(
+        DataServiceServlet.PEOPLE_ROUTE, personHandlerProvider,
+        DataServiceServlet.ACTIVITY_ROUTE, activityHandlerProvider,
+        DataServiceServlet.APPDATA_ROUTE, appDataHandlerProvider));
   }
-  
-  public HandlerProvider(Map<String,Class<? extends DataRequestHandler>> handlers) {
+
+  public HandlerProvider(Map<String,Provider<? extends DataRequestHandler>> handlers) {
     this.handlers = Maps.newHashMap(handlers);
   }
-  
-  public Map<String, Class<? extends DataRequestHandler>> get() {
-    return handlers;
+
+  public void addHandler(String path, Provider<? extends DataRequestHandler> handler) {
+    handlers.put(path, handler);
   }
   
-  public static HandlerProvider defaultProviders() {
-    return new HandlerProvider(DEFAULT_HANDLERS);
+  public Map<String, Provider<? extends DataRequestHandler>> get() {
+    return Collections.unmodifiableMap(handlers);
   }
 }

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/dataservice/integration/AbstractLargeRestfulTests.java Thu Oct  2 04:38:38 2008
@@ -31,6 +31,8 @@
 
 import com.google.common.collect.Maps;
 import com.google.inject.Guice;
+import com.google.inject.Injector;
+
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
 import org.json.JSONObject;
@@ -63,13 +65,12 @@
 
   @Override
   protected void setUp() throws Exception {
-    Map<String, Class<? extends DataRequestHandler>> handlers = Maps.newHashMap();
+    Injector injector = Guice.createInjector(new SocialApiTestsGuiceModule());
     
     servlet = new DataServiceServlet();
-    servlet.setHandlers(HandlerProvider.defaultProviders());
-    servlet.setInjector(Guice.createInjector(new SocialApiTestsGuiceModule()));
-    servlet.setBeanConverters(new BeanJsonConverter(
-        Guice.createInjector(new SocialApiTestsGuiceModule())), new BeanXmlConverter(),
+
+    servlet.setHandlers(injector.getInstance(HandlerProvider.class));
+    servlet.setBeanConverters(new BeanJsonConverter(injector), new BeanXmlConverter(),
         new BeanAtomConverter());
 
     req = EasyMock.createMock(HttpServletRequest.class);

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/DataServiceServletTest.java Thu Oct  2 04:38:38 2008
@@ -29,7 +29,8 @@
 
 import com.google.common.collect.Maps;
 import com.google.inject.Guice;
-import com.google.inject.Injector;
+import com.google.inject.Provider;
+
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
 
@@ -52,7 +53,6 @@
   private PersonHandler peopleHandler;
   private ActivityHandler activityHandler;
   private AppDataHandler appDataHandler;
-  private Injector injector;
   private BeanJsonConverter jsonConverter;
 
   private final ServletInputStream dummyPostData = new ServletInputStream() {
@@ -72,18 +72,19 @@
     activityHandler = EasyMock.createMock(ActivityHandler.class);
     appDataHandler = EasyMock.createMock(AppDataHandler.class);
 
-    injector = EasyMock.createMock(Injector.class);
-    servlet.setInjector(injector);
-
-    servlet.setHandlers(HandlerProvider.defaultProviders());
+    servlet.setHandlers(new HandlerProvider(constant(peopleHandler),
+        constant(activityHandler), constant(appDataHandler)));
 
     servlet.setBeanConverters(jsonConverter, xmlConverter, atomConverter);
   }
 
-  private void setupInjector() {
-    EasyMock.expect(injector.getInstance(PersonHandler.class)).andStubReturn(peopleHandler);
-    EasyMock.expect(injector.getInstance(ActivityHandler.class)).andStubReturn(activityHandler);
-    EasyMock.expect(injector.getInstance(AppDataHandler.class)).andStubReturn(appDataHandler);
+  // TODO: replace with Providers.of() when Guice version is upgraded
+  private static <T> Provider<T> constant(final T value) {
+    return new Provider<T>() {
+      public T get() {
+        return value;
+      }
+    };
   }
 
   public void testPeopleUriRecognition() throws Exception {
@@ -118,8 +119,6 @@
   public void testFailedRequest() throws Exception {
     String route = '/' + DataServiceServlet.APPDATA_ROUTE;
     setupRequest(route, "GET", null);
-    EasyMock.expect(injector.getInstance(AppDataHandler.class)).andStubReturn(appDataHandler);
-    setupInjector();
 
     EasyMock.expect(appDataHandler.handleItem(EasyMock.isA(RestfulRequestItem.class)));
     EasyMock.expectLastCall().andReturn(
@@ -128,10 +127,10 @@
     res.sendError(500, "FAILED");
     res.setCharacterEncoding("UTF-8");
 
-    EasyMock.replay(req, res, appDataHandler, injector, jsonConverter);
+    EasyMock.replay(req, res, appDataHandler, jsonConverter);
     servlet.service(req, res);
-    EasyMock.verify(req, res, appDataHandler, injector, jsonConverter);
-    EasyMock.reset(req, res, appDataHandler, injector, jsonConverter);
+    EasyMock.verify(req, res, appDataHandler, jsonConverter);
+    EasyMock.reset(req, res, appDataHandler, jsonConverter);
   }
 
   private void verifyHandlerWasFoundForPathInfo(String peoplePathInfo, DataRequestHandler handler)
@@ -143,7 +142,6 @@
   private void verifyHandlerWasFoundForPathInfo(String pathInfo, DataRequestHandler handler,
       String actualMethod, String overrideMethod, String expectedMethod) throws Exception {
     setupRequest(pathInfo, actualMethod, overrideMethod);
-    setupInjector();
 
     String jsonObject = "my lovely json";
 
@@ -158,10 +156,10 @@
     writerMock.write(jsonObject);
     res.setCharacterEncoding("UTF-8");
 
-    EasyMock.replay(req, res, handler, injector, jsonConverter);
+    EasyMock.replay(req, res, handler, jsonConverter);
     servlet.service(req, res);
-    EasyMock.verify(req, res, handler, injector, jsonConverter);
-    EasyMock.reset(req, res, handler, injector, jsonConverter);
+    EasyMock.verify(req, res, handler, jsonConverter);
+    EasyMock.reset(req, res, handler, jsonConverter);
   }
 
   private void setupRequest(String pathInfo, String actualMethod, String overrideMethod)

Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java?rev=701087&r1=701086&r2=701087&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java Thu Oct  2 04:38:38 2008
@@ -24,7 +24,8 @@
 import org.apache.shindig.social.core.util.BeanXmlConverter;
 
 import com.google.common.collect.Maps;
-import com.google.inject.Injector;
+import com.google.inject.Provider;
+
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
 import org.json.JSONArray;
@@ -55,8 +56,6 @@
   private ActivityHandler activityHandler;
   private AppDataHandler appDataHandler;
 
-  private Injector injector;
-
   private BeanJsonConverter jsonConverter;
   private BeanXmlConverter xmlConverter;
 
@@ -72,18 +71,19 @@
     activityHandler = EasyMock.createMock(ActivityHandler.class);
     appDataHandler = EasyMock.createMock(AppDataHandler.class);
 
-    injector = EasyMock.createMock(Injector.class);
-    servlet.setInjector(injector);
-
-    servlet.setHandlers(HandlerProvider.defaultProviders());
+    servlet.setHandlers(new HandlerProvider(constant(peopleHandler), constant(activityHandler),
+        constant(appDataHandler)));
 
     servlet.setBeanConverters(jsonConverter, xmlConverter, atomConverter);
   }
 
-  private void setupInjector() {
-    EasyMock.expect(injector.getInstance(PersonHandler.class)).andStubReturn(peopleHandler);
-    EasyMock.expect(injector.getInstance(ActivityHandler.class)).andStubReturn(activityHandler);
-    EasyMock.expect(injector.getInstance(AppDataHandler.class)).andStubReturn(appDataHandler);
+  // TODO: replace with Providers.of() when Guice version is upgraded
+  private static <T> Provider<T> constant(final T value) {
+    return new Provider<T>() {
+      public T get() {
+        return value;
+      }
+    };
   }
 
   public void testPeopleMethodRecognition() throws Exception {
@@ -104,7 +104,6 @@
   public void testInvalidService() throws Exception {
     String json = "{method:junk.get,id:id,params:{userId:5,groupId:@self}}";
     setupRequest(json);
-    setupInjector();
 
     JSONObject err = new JSONObject(
         "{id:id,error:{message:'notImplemented: The service junk is not implemented',code:501}}");
@@ -114,10 +113,10 @@
     writerMock.write(EasyMock.eq(err.toString()));
     EasyMock.expectLastCall();
 
-    EasyMock.replay(req, res, injector, jsonConverter, writerMock);
+    EasyMock.replay(req, res, jsonConverter, writerMock);
     servlet.service(req, res);
-    EasyMock.verify(req, res, injector, jsonConverter, writerMock);
-    EasyMock.reset(req, res, injector, jsonConverter);
+    EasyMock.verify(req, res, jsonConverter, writerMock);
+    EasyMock.reset(req, res, jsonConverter);
   }
 
 
@@ -127,9 +126,6 @@
    */
   public void testFailedRequest() throws Exception {
     setupRequest("{id:id,method:appdata.get}");
-    EasyMock.expect(injector.getInstance(AppDataHandler.class)).andStubReturn(appDataHandler);
-    setupInjector();
-
     EasyMock.expect(appDataHandler.handleItem(EasyMock.isA(RpcRequestItem.class)));
     EasyMock.expectLastCall().andReturn(
         ImmediateFuture.errorInstance(new RuntimeException("FAILED")));
@@ -142,16 +138,15 @@
     writerMock.write(EasyMock.eq(err.toString()));
     EasyMock.expectLastCall();
 
-    EasyMock.replay(req, res, appDataHandler, injector, jsonConverter, writerMock);
+    EasyMock.replay(req, res, appDataHandler, jsonConverter, writerMock);
     servlet.service(req, res);
-    EasyMock.verify(req, res, appDataHandler, injector, jsonConverter, writerMock);
-    EasyMock.reset(req, res, appDataHandler, injector, jsonConverter);
+    EasyMock.verify(req, res, appDataHandler, jsonConverter, writerMock);
+    EasyMock.reset(req, res, appDataHandler, jsonConverter);
   }
 
   private void verifyHandlerWasFoundForMethod(String json, DataRequestHandler handler)
       throws Exception {
     setupRequest(json);
-    setupInjector();
 
     String resultObject = "my lovely json";
 
@@ -169,17 +164,16 @@
     writerMock.write(EasyMock.eq(result.toString()));
     EasyMock.expectLastCall();
 
-    EasyMock.replay(req, res, handler, injector, jsonConverter, writerMock);
+    EasyMock.replay(req, res, handler, jsonConverter, writerMock);
     servlet.service(req, res);
-    EasyMock.verify(req, res, handler, injector, jsonConverter, writerMock);
-    EasyMock.reset(req, res, handler, injector, jsonConverter);
+    EasyMock.verify(req, res, handler, jsonConverter, writerMock);
+    EasyMock.reset(req, res, handler, jsonConverter);
   }
 
   public void testBasicBatch() throws Exception {
     String batchJson =
         "[{method:people.get,id:'1'},{method:activities.get,id:'2'}]";
     setupRequest(batchJson);
-    setupInjector();
 
     String resultObject = "my lovely json";
     Future<?> responseItemFuture = ImmediateFuture.newInstance(resultObject);
@@ -197,10 +191,10 @@
     writerMock.write(EasyMock.eq(result.toString()));
     EasyMock.expectLastCall();
 
-    EasyMock.replay(req, res, peopleHandler, activityHandler, injector, jsonConverter, writerMock);
+    EasyMock.replay(req, res, peopleHandler, activityHandler, jsonConverter, writerMock);
     servlet.service(req, res);
-    EasyMock.verify(req, res, peopleHandler, activityHandler, injector, jsonConverter, writerMock);
-    EasyMock.reset(req, res, peopleHandler, activityHandler, injector, jsonConverter);
+    EasyMock.verify(req, res, peopleHandler, activityHandler, jsonConverter, writerMock);
+    EasyMock.reset(req, res, peopleHandler, activityHandler, jsonConverter);
   }
 
   public void testGetExecution() throws Exception {
@@ -210,7 +204,6 @@
     EasyMock.expect(req.getAttribute(EasyMock.isA(String.class))).andReturn(FAKE_GADGET_TOKEN);
     EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");
     res.setCharacterEncoding("UTF-8");
-    setupInjector();
 
     String resultObject = "my lovely json";
 
@@ -227,10 +220,10 @@
     writerMock.write(EasyMock.eq(result.toString()));
     EasyMock.expectLastCall();
 
-    EasyMock.replay(req, res, peopleHandler, activityHandler, injector, jsonConverter, writerMock);
+    EasyMock.replay(req, res, peopleHandler, activityHandler, jsonConverter, writerMock);
     servlet.service(req, res);
-    EasyMock.verify(req, res, peopleHandler, activityHandler, injector, jsonConverter, writerMock);
-    EasyMock.reset(req, res, peopleHandler, activityHandler, injector, jsonConverter);
+    EasyMock.verify(req, res, peopleHandler, activityHandler, jsonConverter, writerMock);
+    EasyMock.reset(req, res, peopleHandler, activityHandler, jsonConverter);
   }
 
   private void setupRequest(String json) throws IOException {