Package org.apache.jetspeed.aggregator

Examples of org.apache.jetspeed.aggregator.RenderingJob


                if (!"hidden".equals(f.getState()))
                {
                    if (child.getType().equals(ContentFragment.PORTLET))
                    {
                        // create and store the portlet rendering job into the jobs lists.
                        RenderingJob job = renderer.createRenderingJob(child, context);

                        // The returned job can be null for some reason, such as invalid portlet entity.
                        if (job != null)
                        {
                            if (job.getTimeout() > 0)
                                parallelJobs.add(job);
                            else
                                sequentialJobs.add(job);
                        }
                    }
                    else
                    {
                        // walk thru layout
                        // and store the layout rendering job into the layout jobs list.
                        aggregateAndRender(child, context, page, false, sequentialJobs, parallelJobs, layoutFragments);
                        layoutFragments.add(child);
                    }
                }
            }
        }

        // If the fragment is not root, skip the following.
        if (!isRoot)
            return;
       
       
        CurrentWorkerContext.setCurrentWorkerContextUsed(parallelJobs.size() > 0 && sequentialJobs.size() > 0);

        // kick off the parallel rendering jobs
        Iterator iter = parallelJobs.iterator();
        while (iter.hasNext())
        {
            RenderingJob job = (RenderingJob) iter.next();
            renderer.processRenderingJob(job);
        }

        // kick off the sequential rendering jobs
        iter = sequentialJobs.iterator();
        while (iter.hasNext())
        {
            RenderingJob job = (RenderingJob) iter.next();
            renderer.processRenderingJob(job);
        }

        // synchronize on completion of all jobs
        iter = parallelJobs.iterator();
        try
        {
            while (iter.hasNext())
            {
                RenderingJob job = (RenderingJob) iter.next();
                PortletContent portletContent = job.getPortletContent();
               
                if (!portletContent.isComplete())
                {
                    synchronized (portletContent)
                    {
View Full Code Here


        // backlog job to this worker, else reset job count and put
        // it on the idle queue.

        long jobTimeout = 0;

        RenderingJob oldJob = (RenderingJob) worker.getJob();
        if (oldJob != null)
        {
            jobTimeout = oldJob.getTimeout();
        }

        synchronized (worker)
        {
            if ((worker.getJobCount()<this.maxJobsPerWorker)&&(queue.size()>0))
            {
                RenderingJob job = (RenderingJob)queue.pop();
                AccessControlContext context = (AccessControlContext)queue.pop();
                worker.setJob(job, context);
                runningJobs--;
                return;
            }
View Full Code Here

                    synchronized (workersMonitored)
                    {
                        for (Iterator it = workersMonitored.iterator(); it.hasNext(); )
                        {
                            WorkerImpl worker = (WorkerImpl) it.next();
                            RenderingJob job = (RenderingJob) worker.getJob();
                           
                            if ((null != job) && (job.isTimeout()))
                            {
                                timeoutWorkers.add(worker);
                            }
                        }
                    }

                    // Now, we can kill the timeout worker(s).
                    for (Iterator it = timeoutWorkers.iterator(); it.hasNext(); )
                    {
                        WorkerImpl worker = (WorkerImpl) it.next();
                        RenderingJob job = (RenderingJob) worker.getJob();

                        // If the job is just completed, then do not kill the worker.
                        if ((null != job) && (job.isTimeout()))
                        {
                            killJob(worker, job);
                        }
                    }
                }
View Full Code Here

            {
                dispatcher = createDispatcher(requestContext, fragment, expirationCache);
            }
            servletRequest = requestContext.getRequestForWindow(portletWindow);
            servletResponse = dispatcher.getResponseForWindow(portletWindow, requestContext);
            RenderingJob rJob =
                buildRenderingJob(portletWindow, fragment, servletRequest, servletResponse,
                                  requestContext, false, portletDefinition, dispatcher, null,
                                  expirationCache, contentIsCached, timeoutMetadata);
            rJob.execute();
            addTitleToHeader( portletWindow, fragment, servletRequest, servletResponse, dispatcher, contentIsCached);
        }
        catch (PortletAccessDeniedException e)
        {
            fragment.overrideRenderedContent(e.getLocalizedMessage());                       
View Full Code Here

     *
     * @return the asynchronous portlet rendering job to synchronize
     */
    public RenderingJob render( ContentFragment fragment, RequestContext requestContext )
    {
        RenderingJob job = null;

        try
        {
            job = createRenderingJob(fragment, requestContext);
        }
View Full Code Here

     * @throws UnknownPortletDefinitionException
     * @throws PortletAccessDeniedException
     */
    public RenderingJob createRenderingJob(ContentFragment fragment, RequestContext requestContext)
    {
        RenderingJob job = null;
        boolean contentIsCached = false;      
        try
        {
            PortletWindow portletWindow = getPortletWindow(fragment);
            PortletDefinitionComposite portletDefinition =
View Full Code Here

                                              ContentDispatcherCtrl dispatcher,
                                              PortletContent portletContent,
                                              int expirationCache, boolean contentIsCached, long timeoutMetadata)
             throws PortletAccessDeniedException, FailedToRetrievePortletWindow, PortletEntityNotStoredException
   {   
        RenderingJob rJob = null;
              
        request.setAttribute(PortalReservedParameters.PAGE_ATTRIBUTE, requestContext.getPage());
        request.setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, fragment);
        request.setAttribute(PortalReservedParameters.CONTENT_DISPATCHER_ATTRIBUTE, dispatcher);
        request.setAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE, requestContext);
View Full Code Here

                if (!"hidden".equals(f.getState()))
                {
                    if (child.getType().equals(ContentFragment.PORTLET))
                    {
                        // create and store the portlet rendering job into the jobs lists.
                        RenderingJob job = renderer.createRenderingJob(child, context);

                        // The returned job can be null for some reason, such as invalid portlet entity.
                        if (job != null)
                        {
                            if (job.getTimeout() > 0)
                                parallelJobs.add(job);
                            else
                                sequentialJobs.add(job);
                        }
                    }
                    else
                    {
                        // walk thru layout
                        // and store the layout rendering job into the layout jobs list.
                        aggregateAndRender(child, context, page, false, sequentialJobs, parallelJobs, layoutFragments);
                        layoutFragments.add(child);
                    }
                }
            }
        }

        // If the fragment is not root, skip the following.
        if (!isRoot)
            return;
       
        int parallelJobCount = parallelJobs.size();
        int sequentialJobCount = sequentialJobs.size();
       
        if (log.isInfoEnabled())
        {
            log.info("Aggregating " + page.getPath() + ". Parallel: " + parallelJobCount + ", Sequential: " + sequentialJobCount);
        }
       
        CurrentWorkerContext.setParallelRenderingMode(parallelJobCount > 0);

        // kick off the parallel rendering jobs
        Iterator iter = parallelJobs.iterator();
        while (iter.hasNext())
        {
            RenderingJob job = (RenderingJob) iter.next();
            renderer.processRenderingJob(job);
        }

        // kick off the sequential rendering jobs
        iter = sequentialJobs.iterator();
        while (iter.hasNext())
        {
            RenderingJob job = (RenderingJob) iter.next();
            renderer.processRenderingJob(job);
        }

        // synchronize on completion of all jobs
        renderer.waitForRenderingJobs(parallelJobs);
View Full Code Here

            {
                dispatcher = createDispatcher(requestContext, fragment, expirationCache);
            }
            servletRequest = requestContext.getRequestForWindow(portletWindow);
            servletResponse = dispatcher.getResponseForWindow(portletWindow, requestContext);
            RenderingJob rJob =
                buildRenderingJob(portletWindow, fragment, servletRequest, servletResponse,
                                  requestContext, false, portletDefinition, dispatcher, null,
                                  expirationCache, contentIsCached, timeoutMetadata);
            rJob.execute();
            addTitleToHeader( portletWindow, fragment, servletRequest, servletResponse, dispatcher, contentIsCached);
        }
        catch (PortletAccessDeniedException e)
        {
            fragment.overrideRenderedContent(e.getLocalizedMessage());                       
View Full Code Here

     *
     * @return the asynchronous portlet rendering job to synchronize
     */
    public RenderingJob render( ContentFragment fragment, RequestContext requestContext )
    {
        RenderingJob job = null;

        try
        {
            job = createRenderingJob(fragment, requestContext);
        }
View Full Code Here

TOP

Related Classes of org.apache.jetspeed.aggregator.RenderingJob

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.