You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ro...@apache.org on 2006/12/13 03:23:16 UTC
svn commit: r486458 - in
/labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed:
SpeedyfeedResponseStream.java SpeedyfeedResponseWrapper.java
Author: rooneg
Date: Tue Dec 12 18:23:15 2006
New Revision: 486458
URL: http://svn.apache.org/viewvc?view=rev&rev=486458
Log:
Sketch out some implementation details.
* src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
(passThroughStream, checkedContentType, isAtomContent, closed): New fields.
(abdera): Remove.
(checkContentType): New method.
(write, write, write): Partially implement.
(closed): Implement.
(close): Implement.
* src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
(isAtomContent): New method.
Modified:
labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
Modified: labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java?view=diff&rev=486458&r1=486457&r2=486458
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java (original)
+++ labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java Tue Dec 12 18:23:15 2006
@@ -25,39 +25,84 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.abdera.Abdera;
+import org.apache.abdera.parser.Parser;
class SpeedyfeedResponseStream extends ServletOutputStream {
SpeedyfeedResponseWrapper response = null;
- Abdera abdera = null;
+ ServletOutputStream passThroughStream = null;
- public SpeedyfeedResponseStream(SpeedyfeedResponseWrapper response) {
+ boolean checkedContentType = false;
+ boolean isAtomContent = false;
+ boolean closed = false;
+
+ public SpeedyfeedResponseStream(SpeedyfeedResponseWrapper response)
+ {
super();
this.response = response;
}
+ private void checkContentType() throws IOException
+ {
+ checkedContentType = true;
+
+ isAtomContent = response.isAtomContent();
+
+ if (! isAtomContent) {
+ passThroughStream = response.createOutputStream();
+ } else {
+ // XXX
+ }
+ }
+
public void write(int b) throws IOException
{
- // XXX writeme
+ if (checkedContentType && ! isAtomContent) {
+ passThroughStream.write(b);
+ } else if (! checkedContentType) {
+ checkContentType();
+ write(b);
+ } else {
+ // XXX write to buffer
+ }
}
- public void write(int b[]) throws IOException
+ public void write(byte b[]) throws IOException
{
this.write(b, 0, b.length);
}
- public void write(int b[], int off, int len) throws IOException
+ public void write(byte b[], int off, int len) throws IOException
{
- // XXX writeme
+ if (checkedContentType && ! isAtomContent) {
+ passThroughStream.write(b, off, len);
+ } else if (! checkedContentType) {
+ checkContentType();
+ write(b, off, len);
+ } else {
+ // XXX write to buffer
+ }
}
public boolean closed()
{
- return true;
+ return closed;
}
public void close() throws IOException
{
- // XXX writeme
+ if (checkedContentType && isAtomContent) {
+ passThroughStream.close();
+ } else if (! checkedContentType) {
+ checkContentType();
+ close();
+ } else {
+ Parser p = Abdera.getNewParser();
+
+ // XXX parse buffered data, filter out entries that aren't
+ // needed, write to output and close
+ }
+
+ closed = true;
}
}
Modified: labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java?view=diff&rev=486458&r1=486457&r2=486458
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java (original)
+++ labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java Tue Dec 12 18:23:15 2006
@@ -41,6 +41,11 @@
wrapped.setContentType(contentType);
}
+ boolean isAtomContent()
+ {
+ return "application/atom+xml".equals(contentType);
+ }
+
public ServletOutputStream createOutputStream()
throws IOException
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org