Author: etnu
Date: Mon Jun 16 09:12:41 2008
New Revision: 668218
URL: http://svn.apache.org/viewvc?rev=668218&view=rev
Log:
Fixed SHINDIG-385 by placing Singleton annotations on classes that should be
singletons. This may be overridden with an explicit scope by custom bindings.
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.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/ContainerConfig.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/GadgetFeatureRegistry.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/HashLockedDomainService.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriter.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyHandler.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/UrlGenerator.java
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/BasicSecurityTokenDecoder.java
Mon Jun 16 09:12:41 2008
@@ -20,6 +20,8 @@
import org.apache.shindig.common.crypto.BlobCrypterException;
+import com.google.inject.Singleton;
+
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
@@ -27,6 +29,7 @@
* A SecurityTokenDecoder implementation that just provides dummy data to
satisfy
* tests and API calls. Do not use this for any security applications.
*/
[EMAIL PROTECTED]
public class BasicSecurityTokenDecoder implements SecurityTokenDecoder {
private static final int OWNER_INDEX = 0;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java
Mon Jun 16 09:12:41 2008
@@ -18,6 +18,7 @@
package org.apache.shindig.gadgets;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import java.io.BufferedReader;
@@ -55,6 +56,7 @@
* REGEXP http://[^/]*baz.com/.*
*
*/
[EMAIL PROTECTED]
public class BasicGadgetBlacklist implements GadgetBlacklist {
private static final char COMMENT_MARKER = '#';
Modified:
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=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicMessageBundleFactory.java
Mon Jun 16 09:12:41 2008
@@ -27,6 +27,7 @@
import org.apache.shindig.gadgets.spec.MessageBundle;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import java.net.URI;
@@ -36,6 +37,7 @@
/**
* Basic implementation of a message bundle factory
*/
[EMAIL PROTECTED]
public class BasicMessageBundleFactory implements MessageBundleFactory {
private static final Logger logger
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/ContainerConfig.java
Mon Jun 16 09:12:41 2008
@@ -22,6 +22,7 @@
import org.apache.shindig.common.util.ResourceLoader;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import org.apache.commons.lang.StringUtils;
@@ -45,6 +46,7 @@
* We use a cascading model, so you only have to specify attributes in
* your config that you actually want to change.
*/
[EMAIL PROTECTED]
public class ContainerConfig {
private final Map<String, JSONObject> config;
public static final char FILE_SEPARATOR = ',';
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=668218&r1=668217&r2=668218&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
Mon Jun 16 09:12:41 2008
@@ -18,12 +18,6 @@
*/
package org.apache.shindig.gadgets;
-import com.google.inject.AbstractModule;
-import com.google.inject.CreationException;
-import com.google.inject.Scopes;
-import com.google.inject.name.Names;
-import com.google.inject.spi.Message;
-
import org.apache.shindig.common.util.ResourceLoader;
import org.apache.shindig.gadgets.http.BasicHttpCache;
import org.apache.shindig.gadgets.http.BasicHttpFetcher;
@@ -35,6 +29,11 @@
import org.apache.shindig.gadgets.rewrite.ContentRewriter;
import org.apache.shindig.gadgets.rewrite.DefaultContentRewriter;
+import com.google.inject.AbstractModule;
+import com.google.inject.CreationException;
+import com.google.inject.name.Names;
+import com.google.inject.spi.Message;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
@@ -74,9 +73,9 @@
bind(Executor.class).toInstance(Executors.newCachedThreadPool());
bind(LockedDomainService.class).to(HashLockedDomainService.class);
- bind(ContainerConfig.class).in(Scopes.SINGLETON);
- bind(GadgetFeatureRegistry.class).in(Scopes.SINGLETON);
- bind(GadgetServer.class).in(Scopes.SINGLETON);
+ bind(ContainerConfig.class);
+ bind(GadgetFeatureRegistry.class);
+ bind(GadgetServer.class);
}
public DefaultGuiceModule(Properties properties) {
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
Mon Jun 16 09:12:41 2008
@@ -21,6 +21,7 @@
import com.google.common.collect.Maps;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import java.util.Collection;
@@ -39,6 +40,7 @@
* GadgetFeatureRegistry registry = // get your global registry
* registry.register("my-feature", null, new MyFeatureFactory());
*/
[EMAIL PROTECTED]
public class GadgetFeatureRegistry {
private final Map<String, GadgetFeature> features;
private final Map<String, GadgetFeature> core;
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=668218&r1=668217&r2=668218&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
Mon Jun 16 09:12:41 2008
@@ -28,6 +28,7 @@
import org.apache.shindig.gadgets.spec.Preload;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import java.util.Collection;
import java.util.HashSet;
@@ -44,6 +45,7 @@
* Primary gadget processing facility. Converts an input Context into an output
* Gadget
*/
[EMAIL PROTECTED]
public class GadgetServer {
private final Executor executor;
private final GadgetFeatureRegistry registry;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/HashLockedDomainService.java
Mon Jun 16 09:12:41 2008
@@ -21,6 +21,7 @@
import org.apache.shindig.gadgets.spec.Feature;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import org.apache.commons.codec.digest.DigestUtils;
@@ -39,6 +40,7 @@
*
* Other domain locking schemes are possible as well.
*/
[EMAIL PROTECTED]
public class HashLockedDomainService implements LockedDomainService {
private final ContainerConfig config;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcher.java
Mon Jun 16 09:12:41 2008
@@ -14,13 +14,6 @@
package org.apache.shindig.gadgets;
-import net.oauth.OAuth;
-import net.oauth.OAuth.Parameter;
-import net.oauth.OAuthAccessor;
-import net.oauth.OAuthConsumer;
-import net.oauth.OAuthMessage;
-import net.oauth.signature.RSA_SHA1;
-
import org.apache.shindig.common.SecurityToken;
import org.apache.shindig.common.crypto.Crypto;
import org.apache.shindig.common.util.TimeSource;
@@ -29,6 +22,13 @@
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
+import net.oauth.OAuth;
+import net.oauth.OAuthAccessor;
+import net.oauth.OAuthConsumer;
+import net.oauth.OAuthMessage;
+import net.oauth.OAuth.Parameter;
+import net.oauth.signature.RSA_SHA1;
+
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -83,7 +83,7 @@
protected final String keyName;
/**
- * The cache to fetch results in.
+ * The cache to fetch results in.
*/
protected final HttpCache cache;
@@ -327,7 +327,7 @@
/**
* Strip out any owner or viewer id passed by the client.
- * @throws RequestSigningException
+ * @throws RequestSigningException
*/
private List<Parameter> sanitize(List<Parameter> params)
throws RequestSigningException {
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/SigningFetcherFactory.java
Mon Jun 16 09:12:41 2008
@@ -24,6 +24,7 @@
import org.apache.shindig.gadgets.http.HttpFetcher;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import org.apache.commons.io.IOUtils;
@@ -33,6 +34,7 @@
/**
* Produces Signing content fetchers for input tokens.
*/
[EMAIL PROTECTED]
public class SigningFetcherFactory {
private final HttpCache cache;
private final String keyName;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriter.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriter.java
Mon Jun 16 09:12:41 2008
@@ -17,14 +17,16 @@
*/
package org.apache.shindig.gadgets.rewrite;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.GadgetSpecFactory;
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 com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
import java.io.ByteArrayOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
@@ -42,6 +44,7 @@
/**
* Default implementation of content rewriting.
*/
[EMAIL PROTECTED]
public class DefaultContentRewriter implements ContentRewriter {
private final GadgetSpecFactory specFactory;
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=668218&r1=668217&r2=668218&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
Mon Jun 16 09:12:41 2008
@@ -29,6 +29,7 @@
import org.apache.shindig.gadgets.spec.View;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import org.json.JSONArray;
import org.json.JSONException;
@@ -47,6 +48,7 @@
* Processes JSON-RPC requests by retrieving all necessary meta data in
parallel
* and coalescing into a single output JSON construct.
*/
[EMAIL PROTECTED]
public class JsonRpcHandler {
private final Executor executor;
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
Mon Jun 16 09:12:41 2008
@@ -34,6 +34,7 @@
import com.google.common.collect.Maps;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import org.json.JSONException;
import org.json.JSONObject;
@@ -55,6 +56,7 @@
*
* Unlike ProxyHandler, this may perform operations such as OAuth or signed
fetch.
*/
[EMAIL PROTECTED]
public class MakeRequestHandler extends ProxyBase{
// Relaxed visibility for ease of integration. Try to avoid relying on these.
public static final String UNPARSEABLE_CRUFT = "throw 1; < don't be evil' >";
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyHandler.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyHandler.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyHandler.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyHandler.java
Mon Jun 16 09:12:41 2008
@@ -26,6 +26,7 @@
import org.apache.shindig.gadgets.rewrite.ContentRewriter;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import java.io.IOException;
import java.net.URI;
@@ -38,6 +39,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+/**
+ * Handles open proxy requests.
+ */
[EMAIL PROTECTED]
public class ProxyHandler extends ProxyBase {
private static final Logger logger =
Logger.getLogger(ProxyHandler.class.getPackage().getName());
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/UrlGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/UrlGenerator.java?rev=668218&r1=668217&r2=668218&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/UrlGenerator.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/UrlGenerator.java
Mon Jun 16 09:12:41 2008
@@ -31,6 +31,7 @@
import org.apache.shindig.gadgets.spec.View;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
import com.google.inject.name.Named;
import java.io.UnsupportedEncodingException;
@@ -41,6 +42,7 @@
/**
* Generates urls for various public entrypoints
*/
[EMAIL PROTECTED]
public class UrlGenerator {
private final String jsPrefix;