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