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/05/14 13:55:56 UTC
svn commit: r656241 - in
/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social:
RestServerServlet.java abdera/json/JSONFilter.java
abdera/json/JSONStream.java abdera/json/JSONUtil.java
abdera/json/JSONWriter.java
Author: doll
Date: Wed May 14 04:55:56 2008
New Revision: 656241
URL: http://svn.apache.org/viewvc?rev=656241&view=rev
Log:
SHINDIG-266
Patch from Vasu Nori. Changes the comments on the abdera/json classes. Also changes a logging level in the rest servlet.
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONFilter.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONStream.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONUtil.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONWriter.java
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java?rev=656241&r1=656240&r2=656241&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java Wed May 14 04:55:56 2008
@@ -89,7 +89,7 @@
for (String s : writer.getOutputFormats()) {
sbuf.append(s + ", ");
}
- logger.info("NamedWriter: " + writer.getClass().getName() +
+ logger.fine("NamedWriter: " + writer.getClass().getName() +
" is for writing '" + writer.getName() + "'" +
". Handles the following formats: " + sbuf.toString());
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONFilter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONFilter.java?rev=656241&r1=656240&r2=656241&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONFilter.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONFilter.java Wed May 14 04:55:56 2008
@@ -15,14 +15,10 @@
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
-/**
- * THIS IS COPIED from org.apache.abdera.ext.json package.
- */
package org.apache.shindig.social.abdera.json;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.io.OutputStream;
import org.apache.abdera.Abdera;
@@ -37,47 +33,51 @@
import org.apache.abdera.writer.Writer;
/**
+ * TODO: This file is copied and modified from Abdera code as we needed
+ * functionality different from the Abdera Json writer code base.
+ * This file definitely needs cleanup and heavy refactoring
+ *
* Filter implementation that will convert an Atom document returned by
* the server into a JSON document if the request specifies a higher
* preference value for JSON or explicitly requests JSON by including
* a format=json querystring parameter
*/
-public class JSONFilter
+public class JSONFilter
implements Filter {
-
+
public ResponseContext filter(
- RequestContext request,
+ RequestContext request,
FilterChain chain) {
ResponseContext resp = chain.next(request);
String format = request.getParameter("format");
if (format != null && format.equalsIgnoreCase("atom")) {
return resp;
}
- // if there is no content, it could be either due to some error such as
+ // if there is no content, it could be either due to some error such as
// 404 or, there is no content to be translated into json. return
// TODO verify this claim
if (resp.getContentType() == null) {
return resp;
}
-
+
return jsonPreferred(request,resp.getContentType().toString()) ||
format == null || format.equalsIgnoreCase("json") ?
new JsonResponseContext(resp,request.getAbdera()) :
resp;
}
-
+
private boolean jsonPreferred(RequestContext request, String type) {
return ProviderHelper.isPreferred(
request,
"application/json",
type);
}
-
- private class JsonResponseContext
+
+ private class JsonResponseContext
extends ResponseContextWrapper {
private final Abdera abdera;
-
+
public JsonResponseContext(
ResponseContext response,
Abdera abdera) {
@@ -85,11 +85,11 @@
setContentType("application/json");
this.abdera = abdera;
}
-
+
+ @Override
public void writeTo(
- OutputStream out,
- Writer writer)
- throws IOException {
+ OutputStream out,
+ Writer writer) {
try {
toJson(out,writer);
} catch (Exception se) {
@@ -98,10 +98,10 @@
throw new RuntimeException(se);
}
}
-
+
+ @Override
public void writeTo(
- OutputStream out)
- throws IOException {
+ OutputStream out) {
try {
toJson(out,null);
} catch (Exception se) {
@@ -110,14 +110,14 @@
throw new RuntimeException(se);
}
}
-
+
private void toJson(OutputStream aout,Writer writer) throws Exception {
Document<Element> doc = null;
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
if (writer == null)
super.writeTo(out);
- else
+ else
super.writeTo(out,writer);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
doc = abdera.getParser().parse(in);
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONStream.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONStream.java?rev=656241&r1=656240&r2=656241&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONStream.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONStream.java Wed May 14 04:55:56 2008
@@ -15,9 +15,6 @@
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
-/**
- * THIS IS COPIED from org.apache.abdera.ext.json package.
- */
package org.apache.shindig.social.abdera.json;
import java.io.IOException;
@@ -31,6 +28,11 @@
import org.apache.abdera.model.AtomDate;
import org.apache.abdera.util.EntityTag;
+/*
+ * TODO: This file is copied and modified from Abdera code as we needed
+ * functionality different from the Abdera Json writer code base.
+ * This file definitely needs cleanup and heavy refactoring
+ */
public class JSONStream {
private final Writer writer;
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONUtil.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONUtil.java?rev=656241&r1=656240&r2=656241&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONUtil.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONUtil.java Wed May 14 04:55:56 2008
@@ -15,9 +15,6 @@
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
-/**
- * THIS IS COPIED from org.apache.abdera.ext.json package.
- */
package org.apache.shindig.social.abdera.json;
import java.io.IOException;
@@ -53,6 +50,11 @@
import org.apache.abdera.model.TextValue;
import org.apache.abdera.xpath.XPath;
+/*
+ * TODO: This file is copied and modified from Abdera code as we needed
+ * functionality different from the Abdera Json writer code base.
+ * This file definitely needs cleanup and heavy refactoring
+ */
@SuppressWarnings("unchecked")
public class JSONUtil {
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONWriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONWriter.java?rev=656241&r1=656240&r2=656241&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONWriter.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/json/JSONWriter.java Wed May 14 04:55:56 2008
@@ -15,10 +15,6 @@
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
-
-/**
- * THIS IS COPIED from org.apache.abdera.ext.json package.
- */
package org.apache.shindig.social.abdera.json;
import java.io.ByteArrayOutputStream;
@@ -32,6 +28,11 @@
import org.apache.abdera.writer.NamedWriter;
import org.apache.abdera.writer.WriterOptions;
+/*
+ * TODO: This file is copied and modified from Abdera code as we needed
+ * functionality different from the Abdera Json writer code base.
+ * This file definitely needs cleanup and heavy refactoring
+ */
public class JSONWriter
extends AbstractNamedWriter
implements NamedWriter {
@@ -41,16 +42,17 @@
public static final String[] FORMATS = {
"application/json",
};
-
+
public JSONWriter() {
super(NAME,FORMATS);
}
- @Override
+ @Override
protected WriterOptions initDefaultWriterOptions() {
return new AbstractWriterOptions() {};
}
-
+
+ @Override
public String getName() {
return NAME;
}
@@ -62,7 +64,7 @@
return new String(out.toByteArray(),options.getCharset());
} catch (IOException i) {
throw i;
- } catch (Exception e) {
+ } catch (Exception e) {
throw new IOException(e.getMessage());
}
}