portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wea...@apache.org
Subject cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl PortletContentImpl.java RenderingJob.java PortletAggregatorImpl.java ContentDispatcherImpl.java PortletRendererImpl.java PageAggregatorImpl.java
Date Tue, 11 Jan 2005 20:02:01 GMT
weaver      2005/01/11 12:02:01

  Modified:    portal/src/java/org/apache/jetspeed/aggregator/impl
                        RenderingJob.java PortletAggregatorImpl.java
                        ContentDispatcherImpl.java PortletRendererImpl.java
                        PageAggregatorImpl.java
  Added:       portal/src/java/org/apache/jetspeed/aggregator/impl
                        PortletContentImpl.java
  Log:
  Moved ContentDispatcher functionallity into FragmentImpl and RenderingJob.  Split PortletContent
into a top level interface and implementation.
  
  Revision  Changes    Path
  1.7       +19 -30    jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJob.java
  
  Index: RenderingJob.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJob.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- RenderingJob.java	4 Jan 2005 16:05:44 -0000	1.6
  +++ RenderingJob.java	11 Jan 2005 20:02:00 -0000	1.7
  @@ -16,8 +16,6 @@
   
   package org.apache.jetspeed.aggregator.impl;
   
  -import java.io.IOException;
  -
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   
  @@ -26,7 +24,7 @@
   import org.apache.jetspeed.PortalReservedParameters;
   import org.apache.jetspeed.aggregator.ContentDispatcher;
   import org.apache.jetspeed.aggregator.ContentDispatcherCtrl;
  -import org.apache.jetspeed.aggregator.UnrenderedContentException;
  +import org.apache.jetspeed.aggregator.PortletContent;
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.request.RequestContext;
   import org.apache.pluto.PortletContainer;
  @@ -54,6 +52,8 @@
       private PortletContainer container = null;
       private Fragment fragment = null;
       private RequestContext requestContext = null;
  +
  +    private PortletContent portletContent;
       
       public RenderingJob(PortletContainer container, ContentDispatcher dispatcher, Fragment
fragment, HttpServletRequest request, HttpServletResponse response, RequestContext requestContext,
PortletWindow window)
       {
  @@ -76,17 +76,16 @@
       {       
           try
           {
  -            execute();
  -            dispatcher.include(fragment);                   
  -        }
  -        catch (UnrenderedContentException e)
  -        {
  -            log.error("Failed to include fragment: "+e.toString(), e);
  +            execute();                     
           }
           finally
           {
  -            log.debug("Notifying dispatcher OID "+this.window.getId());
  -            dispatcherCtrl.notify(this.window.getId());
  +            
  +            synchronized (portletContent)
  +            {
  +               log.debug("Notifying completion of rendering job for fragment " + fragment.getId());
               
  +               portletContent.notifyAll();
  +            }
           }
       }
       
  @@ -99,6 +98,7 @@
        */
       protected void execute()
       {
  +        portletContent = dispatcher.getPortletContent(fragment);
           try
           {
               log.debug("Rendering OID "+this.window.getId()+" "+ this.request +" "+this.response);
           
  @@ -106,32 +106,21 @@
               this.request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE, requestContext.getPage());
               this.request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE,
requestContext);
               this.request.setAttribute(PortalReservedParameters.CONTENT_DISPATCHER_ATTRIBUTE,dispatcher);
  -            container.renderPortlet(this.window, this.request, this.response);     
  +            container.renderPortlet(this.window, this.request, this.response);        
      
  +            this.response.flushBuffer();             
  +            fragment.setPortletContent(portletContent);                        
           }
           catch (Throwable t)
           {
  -            // this will happen is request is prematurely aborted
  +            // this will happen is request is prematurely aborted            
               log.error("Error rendering portlet OID " + this.window.getId(), t);
  -			try
  -            {
  -                t.printStackTrace(dispatcherCtrl.getResponseForWindow(this.window, this.requestContext).getWriter());
  -            }
  -            catch (IOException e)
  -            {
  -                // not important
  -            }
  +            fragment.overrideRenderedContent("Error rendering portlet fragment: "+fragment.getId());
           }
           finally
           {
  -			try
  -            {            	
  -                this.response.flushBuffer();                       
  -            }
  -            catch (Exception e)
  -            {
  -                log.error("Error flushing response buffer: "+e.toString(), e);
  -            }
  +            portletContent.complete();
           }
  +
       }
   
       /**
  
  
  
  1.9       +3 -11     jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
  
  Index: PortletAggregatorImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- PortletAggregatorImpl.java	4 Jan 2005 16:05:44 -0000	1.8
  +++ PortletAggregatorImpl.java	11 Jan 2005 20:02:00 -0000	1.9
  @@ -71,18 +71,10 @@
               log.debug("No sepecific decorator portlet so using page default: "+decorator);
           }
           
  -//        {
  -//            log.debug("decorator=" + fragment.getDecorator());
  -//	        addStyle(context, fragment.getDecorator(), "portlet");
  -//        } 
  -//        else 
  -//        {
  -//            log.debug("no decorator for portlet:" + fragment.getId());
  -//        }
  -        
  +
           ContentDispatcher dispatcher = renderer.getDispatcher(context, false);
           renderer.renderNow(fragment, context);
  -        dispatcher.include(fragment);
  + //       dispatcher.include(fragment);
           context.getResponse().getWriter().write(fragment.getRenderedContent());
           
       }
  
  
  
  1.9       +34 -195   jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java
  
  Index: ContentDispatcherImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/ContentDispatcherImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ContentDispatcherImpl.java	4 Jan 2005 16:05:44 -0000	1.8
  +++ ContentDispatcherImpl.java	11 Jan 2005 20:02:00 -0000	1.9
  @@ -15,8 +15,6 @@
    */
   package org.apache.jetspeed.aggregator.impl;
   
  -import java.io.CharArrayWriter;
  -import java.io.PrintWriter;
   import java.util.Hashtable;
   import java.util.Map;
   
  @@ -26,8 +24,7 @@
   import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.aggregator.ContentDispatcher;
   import org.apache.jetspeed.aggregator.ContentDispatcherCtrl;
  -import org.apache.jetspeed.aggregator.FailedToRenderFragmentException;
  -import org.apache.jetspeed.aggregator.UnrenderedContentException;
  +import org.apache.jetspeed.aggregator.PortletContent;
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.request.RequestContext;
   import org.apache.jetspeed.util.JetspeedObjectID;
  @@ -61,109 +58,34 @@
           this.isParallel = isParallel;
       }
   
  -    /**
  -     * Include in the provided PortletResponse output stream the rendered
  -     * content of the request fragment. If the fragment rendered content is not
  -     * yet available, the method will hold until it's completely rendered.
  -     * 
  -     * @throws FailedToRenderFragmentException
  -     *                   if the Fragment to include could not be rendered.
  -     * @throws UnrenderedContentException
  -     */
  -    public void include( Fragment fragment )
  -            throws  UnrenderedContentException
  -    {
  -        ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
  -        PortletContent content = (PortletContent) contents.get(oid);
  -        log.debug("Including content for OID " + oid);
  -
  -        if (!isParallel)
  -        {
  -             log.debug("Synchronous rendering for OID " + oid);
  -             if(content.toString().length() > 0)
  -             {
  -                fragment.setRenderedContent(content.toString());
  -             }
  -        }
  -        else
  -        {
  -
  -            if (content != null)
  -            {
  -                synchronized (content)
  -                {
  -                    if (!content.isComplete())
  -                    {
  -                        log.debug("Waiting for content OID " + oid);
  -                        try
  -                        {
  -                            content.wait();
  -                        }
  -                        catch (InterruptedException e)
  -                        {
  -                        }
  -                        log.debug("Been notified that OID " + oid + " is complete");
  -                    }
  -
  -                    log.debug("Content OID " + oid + ": " + content.toString());
  -                }
  -
  -                try
  -                {
  -                    if(content.toString().length() > 0)
  -                    {
  -                        fragment.setRenderedContent(content.toString());
  -                    }
  -                }
  -                catch (Exception e)
  -                {
  -                    log.error("Unable to include content OID " + oid + " in response object",
e);
  -                }
  -                finally
  -                {
  -                    synchronized (contents)
  -                    {
  -                        log.debug("Removing content OID " + oid);
  -                        ((PortletContent) contents.remove(oid)).release();
  -                    }
  -                }
  -            }
  -            else
  -            {
  -                throw new UnrenderedContentException("It appears that the content for fragment
"+oid+" was not rendered.  "+
  -                        "Please verify that your aggregagtion implementation fully renders
all content.");
  -            }
  -        }
  -    }
  -
  -    public void notify( ObjectID oid )
  -    {
  -        PortletContent content = (PortletContent) contents.get(oid);
  -
  -        if (content != null)
  -        {
  -            synchronized (content)
  -            {
  -                if ((debugLevel > 0) && log.isDebugEnabled())
  -                {
  -                    log.debug("Notifying complete OID " + oid);
  -                }
  -                content.setComplete(true);
  -                content.notifyAll();
  -            }
  -        }
  -    }
  +//    public void notify( ObjectID oid )
  +//    {
  +//        PortletContentImpl content = (PortletContentImpl) contents.get(oid);
  +//
  +//        if (content != null)
  +//        {
  +//            synchronized (content)
  +//            {
  +//                if ((debugLevel > 0) && log.isDebugEnabled())
  +//                {
  +//                    log.debug("Notifying complete OID " + oid);
  +//                }
  +//                content.complete();
  +//                content.notifyAll();
  +//            }
  +//        }
  +//    }
   
       public HttpServletResponse getResponseForWindow( PortletWindow window, RequestContext
request )
       {
  -        PortletContent myContent = new PortletContent();
  +        PortletContentImpl myContent = new PortletContentImpl();
   
           return getResponseForId(request, myContent, window.getId());
       }
       
       public HttpServletResponse getResponseForFragment( Fragment fragment, RequestContext
request )
       {
  -        PortletContent myContent = new PortletContent();
  +        PortletContentImpl myContent = new PortletContentImpl();
           ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
           
           return getResponseForId(request, myContent, oid);
  @@ -179,7 +101,7 @@
        * @param oid
        * @return
        */
  -    protected HttpServletResponse getResponseForId( RequestContext request, PortletContent
myContent, ObjectID oid )
  +    protected HttpServletResponse getResponseForId( RequestContext request, PortletContentImpl
myContent, ObjectID oid )
       {
           synchronized (contents)
           {
  @@ -189,102 +111,19 @@
           return new HttpBufferedResponse(request.getResponse(), myContent.getWriter());
       }
   
  -    protected class PortletContent
  -    {
  -        private CharArrayWriter cw;
  -        private PrintWriter writer;
  -        private boolean complete = false;
  -
  -        PortletContent()
  -        {
  -            init();
  -        }
  -
  -        public PrintWriter getWriter()
  -        {
  -            return writer;
  -        }
  -
  -        public void init()
  -        {
  -            cw = new CharArrayWriter();
  -            writer = new PrintWriter(cw);
  -        }
  -
  -        public void release()
  -        {
  -            writer.close();
  -        }
  -
  -        public String toString()
  -        {
  -            writer.flush();
  -            return cw.toString();
  -        }
  -
  -        public void writeTo( java.io.Writer out ) throws java.io.IOException
  -        {
  -            writer.flush();
  -            cw.writeTo(out);
  -        }
  -
  -        public char[] toCharArray()
  -        {
  -            writer.flush();
  -            return cw.toCharArray();
  -        }
  -
  -        public boolean isComplete()
  -        {
  -            return complete;
  -        }
  -
  -        void setComplete( boolean state )
  -        {
  -            this.complete = state;
  -        }
  -    }
  -
  -    /*
  -     * Sequentially wait on content generation
  -     * 
  -     * @see org.apache.jetspeed.aggregator.ContentDispatcher#sync(org.apache.jetspeed.om.page.Fragment)
  +    /**
  +     * <p>
  +     * getPortletContent
  +     * </p>
  +     *
  +     * @see org.apache.jetspeed.aggregator.ContentDispatcher#getPortletContent(org.apache.jetspeed.om.page.Fragment)
  +     * @param fragment
  +     * @return
        */
  -    public void sync( Fragment fragment )
  -    {
  +    public PortletContent getPortletContent( Fragment fragment )
  +    {       
           ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
  -
  -        PortletContent content = (PortletContent) contents.get(oid);
  -
  -        synchronized (content)
  -        {
  -            if (!content.isComplete())
  -            {
  -                if ((debugLevel > 0) && log.isDebugEnabled())
  -                {
  -                    log.debug("Waiting for content OID " + oid);
  -                }
  -
  -                try
  -                {
  -                    content.wait();
  -                }
  -                catch (InterruptedException e)
  -                {
  -                }
  -
  -                if ((debugLevel > 0) && log.isDebugEnabled())
  -                {
  -                    log.debug("Been notified that OID " + oid + " is complete");
  -                }
  -            }
  -
  -            if ((debugLevel > 1) && log.isDebugEnabled())
  -            {
  -                log.debug("Content OID " + oid + ": " + content.toString());
  -            }
  -        }
  -
  +        PortletContentImpl content = (PortletContentImpl) contents.get(oid);
  +        return content;
       }
  -
   }
  
  
  
  1.26      +17 -19    jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
  
  Index: PortletRendererImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- PortletRendererImpl.java	4 Jan 2005 16:05:44 -0000	1.25
  +++ PortletRendererImpl.java	11 Jan 2005 20:02:00 -0000	1.26
  @@ -81,16 +81,17 @@
        * @throws FailedToRenderFragmentException
        * @throws FailedToRetrievePortletWindow
        */
  -    public void renderNow( Fragment fragment, RequestContext requestContext ) throws FailedToRenderFragmentException,
FailedToRetrievePortletWindow
  +    public void renderNow( Fragment fragment, RequestContext requestContext )
       {
   
           HttpServletRequest servletRequest = null;
           HttpServletResponse servletResponse = null;
           ContentDispatcher dispatcher = null;
  -        PortletWindow portletWindow = getPortletWindow(fragment);
  +        PortletWindow portletWindow = null;
           
           try
           {
  +            portletWindow = getPortletWindow(fragment);
               PortletContainerServices.prepare("jetspeed");           
               ContentDispatcherCtrl dispatcherCtrl = getDispatcherCtrl(requestContext, true);
               dispatcher = getDispatcher(requestContext, true);
  @@ -103,7 +104,7 @@
           }
           catch (Exception e)
           {
  -            fragment.setRenderedContent(e.toString());
  +            fragment.overrideRenderedContent(e.toString());
               log.error(e.toString(), e);
           }
       }
  @@ -115,17 +116,17 @@
        * @throws FailedToRenderFragmentException
        * @throws FailedToRetrievePortletWindow
        */
  -    public void renderNow( Fragment fragment, HttpServletRequest request, HttpServletResponse
response )
  -            throws FailedToRenderFragmentException, FailedToRetrievePortletWindow
  +    public void renderNow( Fragment fragment, HttpServletRequest request, HttpServletResponse
response )          
       {
   
           RequestContext requestContext = (RequestContext) request
                   .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
           ContentDispatcher dispatcher = getDispatcher(requestContext, true);
  -        PortletWindow portletWindow = getPortletWindow(fragment);
  +        PortletWindow portletWindow = null;
           
           try
           {
  +            portletWindow = getPortletWindow(fragment);
               PortletContainerServices.prepare("jetspeed");
               ContentDispatcherCtrl dispatcherCtrl = getDispatcherCtrl(requestContext, true);
               
  @@ -137,7 +138,7 @@
           }
           catch (Exception e)
           {
  -            fragment.setRenderedContent(e.toString());
  +            fragment.overrideRenderedContent(e.toString());
               log.error(e.toString(), e);
           }
       }
  @@ -151,15 +152,13 @@
        * @throws UnknownPortletDefinitionException
        * @throws FailedToRetrievePortletWindow
        */
  -    public void render( Fragment fragment, RequestContext requestContext ) throws FailedToRenderFragmentException,
FailedToRetrievePortletWindow
  +    public void render( Fragment fragment, RequestContext requestContext )
       {
   
           PortletContainerServices.prepare("jetspeed");
   
           PortletWindow portletWindow;
  -
           
  -
           ContentDispatcherCtrl dispatcherCtrl = getDispatcherCtrl(requestContext, true);
           ContentDispatcher dispatcher = getDispatcher(requestContext, true);
   
  @@ -171,20 +170,19 @@
               portletWindow = getPortletWindow(fragment);
               servletRequest = requestContext.getRequestForWindow(portletWindow);
               servletResponse = dispatcherCtrl.getResponseForWindow(portletWindow, requestContext);
  -            
  +            RenderingJob rJob = buildRenderingJob(fragment, servletRequest, servletResponse,
requestContext);
  +            monitor.process(rJob);            
           }
  -        catch (FailedToRetrievePortletWindow e1)
  +        catch (Exception e1)
           {
               servletRequest = requestContext.getRequest();
               servletResponse = dispatcherCtrl.getResponseForFragment(fragment, requestContext);
               log.error("render() failed: " + e1.toString(), e1);
  -            fragment.setRenderedContent(e1.toString());            
  -        }
  -        finally
  -        {
  -            RenderingJob rJob = buildRenderingJob(fragment, servletRequest, servletResponse,
requestContext);
  -            monitor.process(rJob);
  +            fragment.overrideRenderedContent(e1.toString());            
  +//            ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
  +        //    ((ContentDispatcherImpl) dispatcherCtrl).notify(oid);
           }
  +
       }
   
       /**
  
  
  
  1.19      +13 -23    jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
  
  Index: PageAggregatorImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- PageAggregatorImpl.java	6 Jan 2005 20:56:22 -0000	1.18
  +++ PageAggregatorImpl.java	11 Jan 2005 20:02:00 -0000	1.19
  @@ -123,10 +123,6 @@
                   contentPathes.add(path.replaceAll("\\{mediaType\\}", mediaType));
               }
   
  -            //            contentPathes.add("portlet/"+mediaType+"/jetspeed");
  -            //            contentPathes.add("portlet/" + mediaType);
  -            //            contentPathes.add("generic/" + mediaType);
  -            //            contentPathes.add("/" + mediaType);
           }
           else
           {
  @@ -152,7 +148,7 @@
               aggregateAndRender(root, context, page);
           }
           
  -        dispatcher.include(root);
  +        //dispatcher.include(root);
           context.getResponse().getWriter().write(root.getRenderedContent());
   
           if (null != window)
  @@ -199,16 +195,14 @@
               }
               try
               {
  -                renderer.render(maxedFragment, context);
  -                ContentDispatcher dispatcher = renderer.getDispatcher(context, false);
  -                dispatcher.sync(maxedFragment);
  -                renderer.render(layoutFragment, context);              
  -                dispatcher.sync(layoutFragment);
  +                renderer.renderNow(maxedFragment, context);
  +                renderer.renderNow(layoutFragment, context);              
  +                
               }
               catch (Exception e)
               {
                   log.error(e.getMessage(), e);
  -                maxedFragment.setRenderedContent("Sorry, but we were unable access the
requested portlet.  Send the following message to your portal admin:  "+  e.getMessage());
  +                maxedFragment.overrideRenderedContent("Sorry, but we were unable access
the requested portlet.  Send the following message to your portal admin:  "+  e.getMessage());
               }
   
   
  @@ -259,20 +253,16 @@
               log.debug("Rendering portlet fragment: [[name, " + f.getName() + "], [id, "
+ f.getId() + "]]");
           }
           
  -        try
  -        {
  -            renderer.render(f, context);
  -        }
  -        catch (Exception e)
  -        {
  -            log.error(e.getMessage(), e);
  -            f.setRenderedContent("Sorry, but we were unable access the requested portlet.
 Send the following message to your portal admin:  "+  e.getMessage());
  -        }
  +       
  +
           
           if (strategy == STRATEGY_SEQUENTIAL)
           {
  -            ContentDispatcher dispatcher = renderer.getDispatcher(context, false);
  -            dispatcher.sync(f);
  +            renderer.renderNow(f, context);
  +        }
  +        else
  +        {
  +            renderer.render(f, context);
           }
   
           if (f.getDecorator() != null && f.getType().equals(Fragment.PORTLET))
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletContentImpl.java
  
  Index: PortletContentImpl.java
  ===================================================================
  /*
   * Copyright 2000-2001,2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.aggregator.impl;
  
  import java.io.CharArrayWriter;
  import java.io.PrintWriter;
  
  import org.apache.jetspeed.aggregator.PortletContent;
  
  
  public class PortletContentImpl implements PortletContent
  {
      private CharArrayWriter cw;
      private PrintWriter writer;
      private boolean complete = false;
  
      PortletContentImpl()
      {
          init();
      }
  
      public PrintWriter getWriter()
      {
          return writer;
      }
  
      public void init()
      {
          cw = new CharArrayWriter();
          writer = new PrintWriter(cw);
      }
  
      public void release()
      {
          writer.close();
      }
  
      public String toString()
      {
          writer.flush();
          return cw.toString();
      }
  
      public void writeTo( java.io.Writer out ) throws java.io.IOException
      {
          writer.flush();
          cw.writeTo(out);
      }
  
      public char[] toCharArray()
      {
          writer.flush();
          return cw.toCharArray();
      }
  
      public boolean isComplete()
      {
          return complete;
      }
  
      void setComplete( boolean state )
      {
          this.complete = state;
      }
      
      public String getContent()
      {
          return toString();
      }
      /**
       * <p>
       * complete
       * </p>
       *
       * @see org.apache.jetspeed.aggregator.PortletContent#complete()
       * 
       */
      public void complete()
      {
         setComplete(true);
      }
  }
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Mime
View raw message