You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/08/05 02:42:52 UTC
svn commit: r682553 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
Author: doll
Date: Mon Aug 4 17:42:52 2008
New Revision: 682553
URL: http://svn.apache.org/viewvc?rev=682553&view=rev
Log:
SHINDIG-490
Patch from Jasvir Nagra. Adds support for script tags in cajoled gadgets.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java?rev=682553&r1=682552&r2=682553&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentFilter.java Mon Aug 4 17:42:52 2008
@@ -36,12 +36,15 @@
import com.google.caja.reporting.SimpleMessageQueue;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.net.URI;
+import java.util.logging.Logger;
public class CajaContentFilter implements GadgetContentFilter {
private final URI retrievedUri;
+ private final Logger logger = Logger.getLogger("org.apache.shindig.gadgets");
public CajaContentFilter(URI retrievedUri) {
this.retrievedUri = retrievedUri;
@@ -49,18 +52,32 @@
public String filter(String content) throws GadgetException {
UriCallback cb = new UriCallback() {
- public UriCallbackOption getOption(ExternalReference externalReference,
- String string) {
+ public UriCallbackOption getOption(ExternalReference externalReference, String string) {
return UriCallbackOption.REWRITE;
}
public Reader retrieve(ExternalReference externalReference, String string)
throws UriCallbackException {
- throw new UriCallbackException(externalReference);
+ logger.info("Retrieving " + externalReference.toString());
+ try {
+ Reader in = new InputStreamReader(
+ externalReference.getUri().toURL().openConnection().getInputStream(),
+ "UTF-8");
+ char[] buf = new char[4096];
+ StringBuilder sb = new StringBuilder();
+ for (int n; (n = in.read(buf)) > 0;) {
+ sb.append(buf, 0, n);
+ }
+ return new StringReader(sb.toString());
+ } catch (java.net.MalformedURLException ex) {
+ throw new UriCallbackException(externalReference, ex);
+ } catch (IOException ex) {
+ throw new UriCallbackException(externalReference, ex);
+ }
}
public URI rewrite(ExternalReference externalReference, String string) {
- return externalReference.getUri();
+ return retrievedUri.resolve(externalReference.getUri());
}
};