You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ra...@apache.org on 2003/12/04 21:34:11 UTC
cvs commit: jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf jetspeed.properties
raphael 2003/12/04 12:34:11
Modified: portal/src/java/org/apache/jetspeed/aggregator Tag:
aggregation_1-branch PageAggregator.java
portal/src/java/org/apache/jetspeed/aggregator/impl Tag:
aggregation_1-branch ContentDispatcherImpl.java
HttpBufferedResponse.java
portal/src/webapp/WEB-INF/conf Tag: aggregation_1-branch
jetspeed.properties
Log:
- fix parallel rendering in generic case (still have an issue at first request)
- make parallel the defalt rendering scheme
Revision Changes Path
No revision
No revision
1.1.2.3 +6 -22 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/PageAggregator.java
Index: PageAggregator.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/Attic/PageAggregator.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- PageAggregator.java 1 Dec 2003 22:57:14 -0000 1.1.2.2
+++ PageAggregator.java 4 Dec 2003 20:34:11 -0000 1.1.2.3
@@ -138,31 +138,15 @@
PortletRenderer renderer = (PortletRenderer)CommonPortletServices.getPortalService(PortletRenderer.SERVICE_NAME);
/*
- ProfilerService profiler = (ProfilerService)CommonPortletServices.getPortalService(ProfilerService.SERVICE_NAME);
-
- // retrieve page associated to profile
- Page page = null;
-
- try
+ ProfileLocator locator = context.getProfileLocator();
+ if (null == locator)
{
- if (context.getPage()!=null)
- {
- page = context.getPage();
- }
- else
- {
- page = profiler.getPage(profiler.getProfile(context));
- context.setPage(page);
- }
+ throw new JetspeedException("Failed to find ProfileLocator in BasicAggregator.build");
}
- catch (Exception e)
- {
- throw new JetspeedException("Failed to get Locator from ProfilerService");
- }
-
+ Page page = Profiler.getPage(locator);
if (null == page)
{
- throw new JetspeedException("Failed to find Page for " + profiler.getProfile(context));
+ throw new JetspeedException("Failed to find PSML Pin BasicAggregator.build");
}
*/
//DEBUG CODE: use this to test a specific page
No revision
No revision
1.1.2.4 +69 -25 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/ContentDispatcherImpl.java
Index: ContentDispatcherImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/ContentDispatcherImpl.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- ContentDispatcherImpl.java 1 Dec 2003 22:57:14 -0000 1.1.2.3
+++ ContentDispatcherImpl.java 4 Dec 2003 20:34:11 -0000 1.1.2.4
@@ -53,6 +53,8 @@
*/
package org.apache.jetspeed.aggregator.impl;
+import java.io.CharArrayWriter;
+import java.io.PrintWriter;
import java.util.Map;
import java.util.Hashtable;
@@ -69,7 +71,6 @@
import org.apache.jetspeed.om.page.Fragment;
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.util.JetspeedObjectID;
-import org.apache.jetspeed.util.ByteArrayServletOutputStream;
import org.apache.pluto.om.common.ObjectID;
import org.apache.pluto.om.window.PortletWindow;
@@ -89,6 +90,8 @@
private boolean isParallel = true;
+ private static boolean DEBUG = true;
+
public ContentDispatcherImpl()
{
}
@@ -108,12 +111,18 @@
{
ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
- log.debug("Including content for OID "+ oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Including content for OID "+ oid);
+ }
// If we work synchronously, call Renderer.renderNow
if (!isParallel)
{
- log.debug("Synchronous rendering for OID "+ oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Synchronous rendering for OID "+ oid);
+ }
PortletRenderer renderer = (PortletRenderer)CommonPortletServices.getPortalService(PortletRenderer.SERVICE_NAME);
renderer.renderNow(fragment,req,rsp);
return;
@@ -127,7 +136,11 @@
{
if (!content.isComplete())
{
- log.debug("Waiting for content OID "+oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Waiting for content OID "+oid);
+ }
+
try
{
content.wait();
@@ -135,20 +148,28 @@
catch (InterruptedException e)
{
}
- log.debug("Been notified that OID "+oid+" is complete");
+
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Been notified that OID "+oid+" is complete");
+ }
+ }
+
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Content OID "+oid+": "+content.toString());
}
- log.debug("Content OID "+oid+": "+new String(content.toByteArray()));
}
try
{
try
{
- rsp.getWriter().write(content.toString(rsp.getCharacterEncoding()));
+ content.writeTo(rsp.getWriter());
}
catch (IllegalStateException e)
{
- content.writeTo(rsp.getOutputStream());
+ rsp.getOutputStream().print(content.toString());
}
}
catch (Exception e)
@@ -159,14 +180,20 @@
{
synchronized(contents)
{
- log.debug("Removing content OID "+oid);
- contents.remove(oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Removing content OID "+oid);
+ }
+ ((PortletContent)contents.remove(oid)).release();
}
}
}
else
{
- log.debug("Content is null for OID "+oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Content is null for OID "+oid);
+ }
}
}
@@ -178,7 +205,10 @@
{
synchronized (content)
{
- log.debug("Notifying complete OID "+oid);
+ if (DEBUG && log.isDebugEnabled())
+ {
+ log.debug("Notifying complete OID "+oid);
+ }
content.setComplete(true);
content.notifyAll();
}
@@ -194,38 +224,52 @@
contents.put(window.getId(),myContent);
}
- return new HttpBufferedResponse(request.getResponse(),
- myContent.getOutputStream());
+ return new HttpBufferedResponse(request.getResponse(),myContent.getWriter());
}
protected class PortletContent
{
- private ByteArrayServletOutputStream os;
+ private CharArrayWriter cw;
+ private PrintWriter writer;
private boolean complete = false;
PortletContent()
{
- os = new ByteArrayServletOutputStream();
+ init();
+ }
+
+ public PrintWriter getWriter()
+ {
+ return writer;
+ }
+
+ public void init()
+ {
+ cw = new CharArrayWriter();
+ writer = new PrintWriter(cw);
}
- public ServletOutputStream getOutputStream()
+ public void release()
{
- return os;
+ writer.close();
}
- public String toString(String enc) throws java.io.UnsupportedEncodingException
+ public String toString()
{
- return os.toString(enc);
+ writer.flush();
+ return cw.toString();
}
- public void writeTo(java.io.OutputStream out) throws java.io.IOException
+ public void writeTo(java.io.Writer out) throws java.io.IOException
{
- os.writeTo(out);
+ writer.flush();
+ cw.writeTo(out);
}
- public byte[] toByteArray()
+ public char[] toCharArray()
{
- return os.toByteArray();
+ writer.flush();
+ return cw.toCharArray();
}
public boolean isComplete()
1.1.2.3 +13 -19 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/HttpBufferedResponse.java
Index: HttpBufferedResponse.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/Attic/HttpBufferedResponse.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- HttpBufferedResponse.java 1 Dec 2003 22:57:14 -0000 1.1.2.2
+++ HttpBufferedResponse.java 4 Dec 2003 20:34:11 -0000 1.1.2.3
@@ -61,6 +61,7 @@
import org.apache.commons.logging.LogFactory;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
+import org.apache.pluto.util.PrintWriterServletOutputStream;
public class HttpBufferedResponse extends javax.servlet.http.HttpServletResponseWrapper
{
@@ -71,13 +72,13 @@
protected final static Log log = LogFactory.getLog(HttpBufferedResponse.class);
private ServletOutputStream wrappedStream;
- private PrintWriter wrappedWriter;
+ private PrintWriter writer;
public HttpBufferedResponse(HttpServletResponse servletResponse,
- ServletOutputStream wrappedStream)
+ PrintWriter writer)
{
super(servletResponse);
- this.wrappedStream = wrappedStream;
+ this.writer = writer;
}
public ServletOutputStream getOutputStream() throws IllegalStateException, IOException
@@ -87,9 +88,14 @@
throw new IllegalStateException("getOutputStream can't be used after getWriter was invoked");
}
+ if (wrappedStream == null)
+ {
+ wrappedStream = new PrintWriterServletOutputStream(getResponse().getWriter(),
+ getResponse().getCharacterEncoding());
+ }
+
usingStream = true;
- log.debug("getOutputStream: "+wrappedStream);
return wrappedStream;
}
@@ -100,46 +106,34 @@
throw new IllegalStateException("getWriter can't be used after getOutputStream was invoked");
}
- if (wrappedWriter == null)
- {
- wrappedWriter = new PrintWriter(wrappedStream);
- }
-
usingWriter = true;
- log.debug("getWriter: "+wrappedWriter+ " bytes "
- +((org.apache.jetspeed.util.ByteArrayServletOutputStream)wrappedStream).toByteArray().length);
- return wrappedWriter;
+ return writer;
}
public void setBufferSize(int size)
{
- log.debug("setBufferSize");
// ignore
}
public int getBufferSize()
{
- log.debug("getBufferSize");
return 0;
}
public void flushBuffer() throws IOException
{
- log.debug("flushBuffer");
- wrappedStream.flush();
+ writer.flush();
}
public boolean isCommitted()
{
- log.debug("isCommitted");
return false;
}
public void reset()
{
- log.debug("reset");
- ((org.apache.jetspeed.util.ByteArrayServletOutputStream)wrappedStream).reset();
+ // ignore right now
}
}
No revision
No revision
1.11.2.2 +2 -2 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/jetspeed.properties
Index: jetspeed.properties
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/jetspeed.properties,v
retrieving revision 1.11.2.1
retrieving revision 1.11.2.2
diff -u -r1.11.2.1 -r1.11.2.2
--- jetspeed.properties 1 Dec 2003 22:57:15 -0000 1.11.2.1
+++ jetspeed.properties 4 Dec 2003 20:34:11 -0000 1.11.2.2
@@ -105,7 +105,7 @@
# E N G I N E
# -------------------------------------------------------------------
services.Aggregator.classname=org.apache.jetspeed.aggregator.PageAggregator
-services.Aggregator.strategy.default=sequential
+services.Aggregator.strategy.default=parallel
services.PortletRenderer.classname=org.apache.jetspeed.aggregator.impl.PortletRendererImpl
# -------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org