Author: fmeschbe
Date: Wed Mar 30 09:57:08 2011
New Revision: 1086883

URL: http://svn.apache.org/viewvc?rev=1086883&view=rev
Log:
SLING-2039? Removing Engine's internal output buffering altogether (see issue 
for details)

Removed:
    
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/output/
Modified:
    
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
    
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/ContentData.java
    
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java

Modified: 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java?rev=1086883&r1=1086882&r2=1086883&view=diff
==============================================================================
--- 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
 (original)
+++ 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
 Wed Mar 30 09:57:08 2011
@@ -127,15 +127,9 @@ public class SlingHttpServletResponseImp
     //---------- SlingHttpServletResponse interface
 
     @Override
-    public Locale getLocale() {
-        // TODO Should use our Locale Resolver and not let the component set 
the locale, right ??
-        return getResponse().getLocale();
-    }
-
-    @Override
     public ServletOutputStream getOutputStream() throws IOException {
         if (this.out == null) {
-            ServletOutputStream sos = 
getRequestData().getBufferProvider().getOutputStream();
+            ServletOutputStream sos = getResponse().getOutputStream();
             this.out = new LoggerResponseOutputStream(sos);
         }
         return this.out;
@@ -144,54 +138,12 @@ public class SlingHttpServletResponseImp
     @Override
     public PrintWriter getWriter() throws IOException {
         if (this.writer == null) {
-            PrintWriter pw = getRequestData().getBufferProvider().getWriter();
+            PrintWriter pw = getResponse().getWriter();
             this.writer = new LoggerResponseWriter(pw);
         }
         return this.writer;
     }
 
-    @Override
-    public boolean isCommitted() {
-        // TODO: integrate with our output catcher
-        return getResponse().isCommitted();
-    }
-
-    @Override
-    public void reset() {
-        if (isCommitted()) {
-            throw new IllegalStateException("Response already committed");
-        }
-        getRequestData().getContentData().resetBuffer();
-        getResponse().reset();
-    }
-
-    @Override
-    public void flushBuffer() throws IOException {
-        getRequestData().getContentData().flushBuffer();
-        getResponse().flushBuffer();
-    }
-
-    @Override
-    public void resetBuffer() {
-        if (isCommitted()) {
-            throw new IllegalStateException("Response already committed");
-        }
-
-        getRequestData().getContentData().resetBuffer();
-        getResponse().resetBuffer();
-    }
-
-    @Override
-    public void setBufferSize(int size) {
-        getRequestData().getContentData().setBufferSize(size);
-        getResponse().setBufferSize(size);
-    }
-
-    @Override
-    public int getBufferSize() {
-        return getRequestData().getContentData().getBufferSize();
-    }
-
     // ---------- Redirection support through PathResolver --------------------
 
     @Override

Modified: 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/ContentData.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/ContentData.java?rev=1086883&r1=1086882&r2=1086883&view=diff
==============================================================================
--- 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/ContentData.java
 (original)
+++ 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/ContentData.java
 Wed Mar 30 09:57:08 2011
@@ -18,19 +18,9 @@
  */
 package org.apache.sling.engine.impl.request;
 
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-
 import javax.servlet.Servlet;
-import javax.servlet.ServletOutputStream;
-
 import org.apache.sling.api.request.RequestPathInfo;
 import org.apache.sling.api.resource.Resource;
-import org.apache.sling.engine.impl.output.Buffer;
-import org.apache.sling.engine.impl.output.BufferProvider;
-import org.apache.sling.engine.impl.output.BufferedPrintWriter;
-import org.apache.sling.engine.impl.output.BufferedServletOutputStream;
 
 /**
  * The <code>ContentData</code> class provides objects which are relevant for
@@ -38,7 +28,7 @@ import org.apache.sling.engine.impl.outp
  *
  * @see RequestData
  */
-public class ContentData implements BufferProvider {
+public class ContentData {
 
     private RequestPathInfo requestPathInfo;
 
@@ -46,29 +36,13 @@ public class ContentData implements Buff
 
     private Servlet servlet;
 
-    private Buffer buffer;
-
-    private int requestedBufferSize;
-
-    private BufferProvider parent;
-
-    public ContentData(Resource resource, RequestPathInfo requestPathInfo,
-            BufferProvider parent) {
+    public ContentData(Resource resource, RequestPathInfo requestPathInfo) {
         this.resource = resource;
         this.requestPathInfo = requestPathInfo;
-        this.parent = parent;
-        this.requestedBufferSize = parent.getBufferSize();
     }
 
     /* package */void dispose() {
         this.requestPathInfo = null;
-
-        // flush buffer contents to output
-        try {
-            this.flushBuffer();
-        } catch (IOException ioe) {
-            // TODO: handle
-        }
     }
 
     public Resource getResource() {
@@ -86,64 +60,4 @@ public class ContentData implements Buff
     public void setServlet(Servlet servlet) {
         this.servlet = servlet;
     }
-
-    // ---------- BufferProvider interface -------------------------------
-
-    public void setBufferSize(int buffersize) {
-        if (this.buffer != null) {
-            this.buffer.setBufferSize(buffersize);
-        }
-
-        this.requestedBufferSize = buffersize;
-    }
-
-    public int getBufferSize() {
-        if (this.buffer != null) {
-            return this.buffer.getBufferSize();
-        }
-
-        return this.requestedBufferSize;
-    }
-
-    public void flushBuffer() throws IOException {
-        if (this.buffer != null) {
-            this.buffer.flushBuffer();
-        }
-    }
-
-    public void resetBuffer() {
-        if (this.buffer != null) {
-            this.buffer.resetBuffer();
-        }
-    }
-
-    public ServletOutputStream getOutputStream() throws IOException {
-        if (this.buffer instanceof OutputStream) {
-            return (ServletOutputStream) this.buffer;
-        } else if (this.buffer != null) {
-            throw new IllegalStateException("Writer already retrieved");
-        }
-
-        ServletOutputStream parentStream = this.parent.getOutputStream();
-        BufferedServletOutputStream stream = new BufferedServletOutputStream(
-            parentStream, this.getBufferSize());
-        this.buffer = stream;
-
-        return stream;
-    }
-
-    public PrintWriter getWriter() throws IOException {
-        if (this.buffer instanceof PrintWriter) {
-            return (PrintWriter) this.buffer;
-        } else if (this.buffer != null) {
-            throw new IllegalStateException("OutputStream already retrieved");
-        }
-
-        PrintWriter parentWriter = this.parent.getWriter();
-        BufferedPrintWriter writer = new BufferedPrintWriter(parentWriter,
-            this.getBufferSize());
-        this.buffer = writer;
-
-        return writer;
-    }
 }

Modified: 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java?rev=1086883&r1=1086882&r2=1086883&view=diff
==============================================================================
--- 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
 (original)
+++ 
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
 Wed Mar 30 09:57:08 2011
@@ -22,14 +22,12 @@ import static org.apache.sling.api.Sling
 
 import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
 import java.util.LinkedList;
 
 import javax.servlet.Servlet;
 import javax.servlet.ServletException;
 import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletRequestWrapper;
 import javax.servlet.ServletResponse;
@@ -56,7 +54,6 @@ import org.apache.sling.engine.impl.Slin
 import org.apache.sling.engine.impl.SlingRequestProcessorImpl;
 import org.apache.sling.engine.impl.adapter.SlingServletRequestAdapter;
 import org.apache.sling.engine.impl.adapter.SlingServletResponseAdapter;
-import org.apache.sling.engine.impl.output.BufferProvider;
 import org.apache.sling.engine.impl.parameters.ParameterSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -74,7 +71,7 @@ import org.slf4j.LoggerFactory;
  * </ol>
  * @see ContentData
  */
-public class RequestData implements BufferProvider {
+public class RequestData {
 
     /** default log */
     private final Logger log = LoggerFactory.getLogger(RequestData.class);
@@ -544,7 +541,6 @@ public class RequestData implements Buff
 
     public ContentData pushContent(Resource resource,
             RequestPathInfo requestPathInfo) {
-        BufferProvider parent;
         if (currentContentData != null) {
             if (contentDataStack == null) {
                 contentDataStack = new LinkedList<ContentData>();
@@ -554,12 +550,9 @@ public class RequestData implements Buff
             }
 
             contentDataStack.add(currentContentData);
-            parent = currentContentData;
-        } else {
-            parent = this;
         }
 
-        currentContentData = new ContentData(resource, requestPathInfo, 
parent);
+        currentContentData = new ContentData(resource, requestPathInfo);
         return currentContentData;
     }
 
@@ -630,30 +623,6 @@ public class RequestData implements Buff
         return SLING_MAIN_SERVLET.getMimeType(fileName);
     }
 
-    // ---------- BufferProvider -----------------------------------------
-
-    public BufferProvider getBufferProvider() {
-        return (currentContentData != null)
-                ? (BufferProvider) currentContentData
-                : this;
-    }
-
-    public int getBufferSize() {
-        return getServletResponse().getBufferSize();
-    }
-
-    public void setBufferSize(int size) {
-        getServletResponse().setBufferSize(size);
-    }
-
-    public ServletOutputStream getOutputStream() throws IOException {
-        return getServletResponse().getOutputStream();
-    }
-
-    public PrintWriter getWriter() throws IOException {
-        return getServletResponse().getWriter();
-    }
-
     // ---------- Parameter support -------------------------------------------
 
     public ServletInputStream getInputStream() throws IOException {


Reply via email to