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