Author: lryan
Date: Tue May 13 11:51:11 2008
New Revision: 655969

URL: http://svn.apache.org/viewvc?rev=655969&view=rev
Log:
Small refactor to move the creation of GadgetSpec and MessageBundles behind 
factory interfaces. This allows for caching of already parsed & transoformed 
products

Added:
    
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/BasicMessageBundleFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetSpecFactory.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/MessageBundleFactory.java
Modified:
    
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/oauth/BasicGadgetOAuthTokenStore.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
    
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/GadgetTestFixture.java

Added: 
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=655969&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetSpecFactory.java
 Tue May 13 11:51:11 2008
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets;
+
+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.spec.GadgetSpec;
+
+import com.google.inject.Inject;
+
+import java.net.URI;
+
+/**
+ * Basic implementation of a gadget spec factory
+ */
+public class BasicGadgetSpecFactory implements GadgetSpecFactory {
+
+  private HttpFetcher specFetcher;
+
+  public GadgetSpec getGadgetSpec(GadgetContext context)
+      throws GadgetException {
+    return getGadgetSpec(context.getUrl(), context.getIgnoreCache());
+  }
+
+  public GadgetSpec getGadgetSpec(URI gadgetUri, boolean ignoreCache)
+      throws GadgetException {
+    HttpRequest request = HttpRequest.getRequest(
+        gadgetUri, ignoreCache);
+    HttpResponse response = specFetcher.fetch(request);
+    if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
+      throw new GadgetException(
+          GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
+          "Unable to retrieve gadget xml. HTTP error " +
+              response.getHttpStatusCode());
+    }
+    GadgetSpec spec
+        = new GadgetSpec(gadgetUri, response.getResponseAsString());
+    return spec;
+  }
+
+  @Inject
+  public BasicGadgetSpecFactory(
+      @GadgetSpecFetcher HttpFetcher specFetcher) {
+    this.specFetcher = specFetcher;
+  }
+}

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java?rev=655969&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
 Tue May 13 11:51:11 2008
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets;
+
+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.spec.LocaleSpec;
+import org.apache.shindig.gadgets.spec.MessageBundle;
+
+import com.google.inject.Inject;
+
+import java.net.URI;
+
+/**
+ * Basic implementation of a message bundle factory
+ */
+public class BasicMessageBundleFactory implements MessageBundleFactory {
+
+  private HttpFetcher bundleFetcher;
+
+  public MessageBundle getBundle(LocaleSpec localeSpec, GadgetContext context)
+      throws GadgetException {
+    return getBundle(localeSpec.getMessages(), context.getIgnoreCache());
+  }
+
+  public MessageBundle getBundle(URI bundleUrl, boolean ignoreCache)
+      throws GadgetException {
+    HttpRequest request
+        = HttpRequest.getRequest(bundleUrl, ignoreCache);
+    HttpResponse response = bundleFetcher.fetch(request);
+    if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
+      throw new GadgetException(
+          GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
+          "Unable to retrieve message bundle xml. HTTP error " +
+          response.getHttpStatusCode());
+    }
+    MessageBundle bundle
+        = new MessageBundle(bundleUrl, response.getResponseAsString());
+    return bundle;
+  }
+
+  @Inject
+  public BasicMessageBundleFactory(
+      @MessageBundleFetcher HttpFetcher bundleFetcher) {
+    this.bundleFetcher = bundleFetcher;
+  }
+}

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=655969&r1=655968&r2=655969&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 May 13 11:51:11 2008
@@ -21,9 +21,9 @@
 import org.apache.shindig.common.util.ResourceLoader;
 import org.apache.shindig.gadgets.http.BasicHttpCache;
 import org.apache.shindig.gadgets.http.BasicHttpFetcher;
+import org.apache.shindig.gadgets.http.ContentFetcherFactory;
 import org.apache.shindig.gadgets.http.HttpCache;
 import org.apache.shindig.gadgets.http.HttpFetcher;
-import org.apache.shindig.gadgets.http.ContentFetcherFactory;
 import org.apache.shindig.gadgets.http.RemoteContentFetcherFactory;
 import org.apache.shindig.gadgets.oauth.OAuthFetcherFactory;
 
@@ -57,19 +57,20 @@
 
     bind(RemoteContentFetcherFactory.class);
     bind(SigningFetcherFactory.class);
-    // Needed becuase OAuth fetcher factory fetches its config
-    bind(HttpFetcher.class)
-        .annotatedWith(OAuthFetcherFactory.OAuthConfigFetcher.class)
-        .to(BasicHttpFetcher.class);
     bind(OAuthFetcherFactory.class);
     bind(ContentFetcherFactory.class);
 
     bind(HttpFetcher.class)
         .annotatedWith(GadgetSpecFetcher.class)
         .toProvider(ContentFetcherFactory.class);
+    bind(GadgetSpecFactory.class)
+        .to(BasicGadgetSpecFactory.class);
+
     bind(HttpFetcher.class)
         .annotatedWith(MessageBundleFetcher.class)
         .toProvider(ContentFetcherFactory.class);
+    bind(MessageBundleFactory.class)
+        .to(BasicMessageBundleFactory.class);
 
     bind(GadgetBlacklist.class).to(BasicGadgetBlacklist.class);
     bind(Executor.class).toInstance(Executors.newCachedThreadPool());

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=655969&r1=655968&r2=655969&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 May 13 11:51:11 2008
@@ -17,10 +17,9 @@
  */
 package org.apache.shindig.gadgets;
 
-import org.apache.shindig.gadgets.http.HttpFetcher;
 import org.apache.shindig.gadgets.http.ContentFetcherFactory;
-import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.http.HttpRequest;
+import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.spec.Auth;
 import org.apache.shindig.gadgets.spec.Feature;
 import org.apache.shindig.gadgets.spec.GadgetSpec;
@@ -30,7 +29,6 @@
 
 import com.google.inject.Inject;
 
-import java.net.URI;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -53,22 +51,23 @@
   private final GadgetBlacklist blacklist;
 
   private ContentFetcherFactory preloadFetcherFactory;
-  private HttpFetcher gadgetSpecFetcher;
-  private HttpFetcher messageBundleFetcher;
+  private GadgetSpecFactory specFactory;
+  private MessageBundleFactory bundleFactory;
+
 
   @Inject
   public GadgetServer(Executor executor,
       GadgetFeatureRegistry registry,
       GadgetBlacklist blacklist,
       ContentFetcherFactory preloadFetcherFactory,
-      @GadgetSpecFetcher HttpFetcher gadgetSpecFetcher,
-      @MessageBundleFetcher HttpFetcher messageBundleFetcher) {
+      GadgetSpecFactory specFactory,
+      MessageBundleFactory bundleFactory) {
     this.executor = executor;
     this.registry = registry;
     this.blacklist = blacklist;
     this.preloadFetcherFactory = preloadFetcherFactory;
-    this.gadgetSpecFetcher = gadgetSpecFetcher;
-    this.messageBundleFetcher = messageBundleFetcher;
+    this.specFactory = specFactory;
+    this.bundleFactory = bundleFactory;
   }
 
   /**
@@ -82,19 +81,7 @@
     if (blacklist.isBlacklisted(context.getUrl())) {
       throw new GadgetException(GadgetException.Code.BLACKLISTED_GADGET);
     }
-
-    HttpRequest request = HttpRequest.getRequest(
-        context.getUrl(), context.getIgnoreCache());
-    HttpResponse response = gadgetSpecFetcher.fetch(request);
-    if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
-      throw new GadgetException(
-          GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
-          "Unable to retrieve gadget xml. HTTP error " +
-          response.getHttpStatusCode());
-    }
-    GadgetSpec spec
-        = new GadgetSpec(context.getUrl(), response.getResponseAsString());
-    return createGadgetFromSpec(spec, context);
+    return createGadgetFromSpec(specFactory.getGadgetSpec(context), context);
   }
 
   /**
@@ -106,19 +93,7 @@
    */
   private MessageBundle getBundle(LocaleSpec localeSpec, GadgetContext context)
       throws GadgetException {
-    URI bundleUrl = localeSpec.getMessages();
-    HttpRequest request
-        = HttpRequest.getRequest(bundleUrl, context.getIgnoreCache());
-    HttpResponse response = messageBundleFetcher.fetch(request);
-    if (response.getHttpStatusCode() != HttpResponse.SC_OK) {
-      throw new GadgetException(
-          GadgetException.Code.FAILED_TO_RETRIEVE_CONTENT,
-          "Unable to retrieve message bundle xml. HTTP error " +
-          response.getHttpStatusCode());
-    }
-    MessageBundle bundle
-        = new MessageBundle(bundleUrl, response.getResponseAsString());
-    return bundle;
+    return bundleFactory.getBundle(localeSpec, context);
   }
 
   /**

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetSpecFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetSpecFactory.java?rev=655969&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetSpecFactory.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetSpecFactory.java
 Tue May 13 11:51:11 2008
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets;
+
+import org.apache.shindig.gadgets.spec.GadgetSpec;
+
+import java.net.URI;
+
+/** Factory of gadget specs */
+public interface GadgetSpecFactory {
+
+  /** Return a gadget spec for a context */
+  public GadgetSpec getGadgetSpec(GadgetContext context) throws 
GadgetException;
+
+  /** Return a gadget spec for a URI */
+  public GadgetSpec getGadgetSpec(URI gadgetUri, boolean ignoreCache)
+      throws GadgetException;
+
+}

Added: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/MessageBundleFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/MessageBundleFactory.java?rev=655969&view=auto
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/MessageBundleFactory.java
 (added)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/MessageBundleFactory.java
 Tue May 13 11:51:11 2008
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.gadgets;
+
+import org.apache.shindig.gadgets.spec.LocaleSpec;
+import org.apache.shindig.gadgets.spec.MessageBundle;
+
+import java.net.URI;
+
+/**
+ * Factory of message bundles
+ */
+public interface MessageBundleFactory {
+
+  MessageBundle getBundle(LocaleSpec localeSpec, GadgetContext context)
+      throws GadgetException;
+
+  MessageBundle getBundle(URI bundleUri, boolean ignoreCache)
+      throws GadgetException;
+}

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java?rev=655969&r1=655968&r2=655969&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicGadgetOAuthTokenStore.java
 Tue May 13 11:51:11 2008
@@ -20,10 +20,7 @@
 
 import org.apache.shindig.common.util.ResourceLoader;
 import org.apache.shindig.gadgets.GadgetException;
-import org.apache.shindig.gadgets.http.HttpFetcher;
-import org.apache.shindig.gadgets.http.HttpResponse;
-import org.apache.shindig.gadgets.http.HttpRequest;
-import org.apache.shindig.gadgets.spec.GadgetSpec;
+import org.apache.shindig.gadgets.GadgetSpecFactory;
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -45,7 +42,7 @@
     super(store);
   }
 
-  public void initFromConfigFile(HttpFetcher fetcher)
+  public void initFromConfigFile(GadgetSpecFactory specFactory)
   throws GadgetException {
     // Read our consumer keys and secrets from config/oauth.js
     // This actually involves fetching gadget specs
@@ -57,7 +54,7 @@
       for (Iterator<?> i = oauthConfigs.keys(); i.hasNext();) {
         String url = (String) i.next();
         URI gadgetUri = new URI(url);
-        storeProviderInfos(fetcher, gadgetUri);
+        storeProviderInfos(specFactory, gadgetUri);
 
         JSONObject oauthConfig = oauthConfigs.getJSONObject(url);
         storeConsumerInfos(gadgetUri, oauthConfig);
@@ -71,14 +68,10 @@
     }
   }
 
-  private void storeProviderInfos(HttpFetcher fetcher, URI gadgetUri)
+  private void storeProviderInfos(GadgetSpecFactory specFactory, URI gadgetUri)
       throws GadgetException {
-    HttpRequest request = HttpRequest.getRequest(
-        gadgetUri, false);
-    HttpResponse response = fetcher.fetch(request);
-    GadgetSpec spec
-        = new GadgetSpec(gadgetUri, response.getResponseAsString());
-    storeServiceInfoFromGadgetSpec(gadgetUri, spec);
+    storeServiceInfoFromGadgetSpec(gadgetUri,
+        specFactory.getGadgetSpec(gadgetUri, false));
   }
 
   private void storeConsumerInfos(URI gadgetUri, JSONObject oauthConfig)

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java?rev=655969&r1=655968&r2=655969&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcherFactory.java
 Tue May 13 11:51:11 2008
@@ -23,15 +23,11 @@
 import org.apache.shindig.common.crypto.BlobCrypter;
 import org.apache.shindig.common.crypto.Crypto;
 import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.GadgetSpecFactory;
 import org.apache.shindig.gadgets.http.HttpFetcher;
 
-import com.google.inject.BindingAnnotation;
 import com.google.inject.Inject;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -54,14 +50,14 @@
    * BlobCrypter and consumer keys/secrets read from oauth.js
    */
   @Inject
-  public OAuthFetcherFactory(@OAuthConfigFetcher HttpFetcher fetcher) {
+  public OAuthFetcherFactory(GadgetSpecFactory specFactory) {
     try {
       this.oauthCrypter = new BasicBlobCrypter(
           Crypto.getRandomBytes(BasicBlobCrypter.MASTER_KEY_MIN_LEN));
 
       BasicGadgetOAuthTokenStore basicStore =
           new BasicGadgetOAuthTokenStore(new BasicOAuthStore());
-      basicStore.initFromConfigFile(fetcher);
+      basicStore.initFromConfigFile(specFactory);
       tokenStore = basicStore;
     } catch (Throwable t) {
       // Since this happens at startup, we don't want to kill the server just
@@ -102,10 +98,4 @@
     fetcher.init();
     return fetcher;
   }
-
-  @Retention(RetentionPolicy.RUNTIME)
-  @Target({ElementType.FIELD, ElementType.PARAMETER})
-  @BindingAnnotation
-  public @interface OAuthConfigFetcher {
-  }
 }

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=655969&r1=655968&r2=655969&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 May 13 11:51:11 2008
@@ -20,8 +20,8 @@
 package org.apache.shindig.gadgets;
 
 import org.apache.shindig.common.SecurityTokenDecoder;
-import org.apache.shindig.gadgets.http.HttpFetcher;
 import org.apache.shindig.gadgets.http.ContentFetcherFactory;
+import org.apache.shindig.gadgets.http.HttpFetcher;
 
 import java.util.concurrent.Executor;
 
@@ -38,6 +38,10 @@
       = mock(ContentFetcherFactory.class);
   public final HttpFetcher fetcher = mock(HttpFetcher.class);
   public final GadgetBlacklist blacklist = mock(GadgetBlacklist.class);
+  public final GadgetSpecFactory specFactory =
+      new BasicGadgetSpecFactory(fetcher);
+  public final MessageBundleFactory bundleFactory =
+      new BasicMessageBundleFactory(fetcher);
   public GadgetFeatureRegistry registry;
   public ContainerConfig containerConfig;
   public final Executor executor = new Executor() {
@@ -63,6 +67,6 @@
     }
 
     gadgetServer = new GadgetServer(executor, registry, blacklist,
-        fetcherFactory, fetcher, fetcher);
+        fetcherFactory, specFactory, bundleFactory);
   }
 }


Reply via email to