Package org.apache.jetspeed.aggregator

Examples of org.apache.jetspeed.aggregator.RenderingJob


                    if (child.getType().equals(ContentFragment.PORTLET))
                    {
                        try
                        {
                            // 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
                                {
View Full Code Here


            {
                while (!this.renderingJobs.isEmpty())
                {
                    for (Iterator<RenderingJob> it = this.renderingJobs.iterator(); it.hasNext(); )
                    {
                        RenderingJob job = it.next();
                        WorkItem workItem = (WorkItem) job.getWorkerAttribute(COMMONJ_WORK_ITEM_ATTR);
                        int status = WorkEvent.WORK_ACCEPTED;
                       
                        if (workItem != null)
                        {
                            status = workItem.getStatus();
                        }
                       
                        boolean isTimeout = job.isTimeout();
                       
                        if (isTimeout)
                        {
                            PortletContent content = job.getPortletContent();
                           
                            if (interruptOnTimeout)
                            {
                                Thread worker = (Thread) job.getWorkerAttribute(WORKER_THREAD_ATTR);
                               
                                if (worker != null)
                                {
                                    synchronized (content)
                                    {
View Full Code Here

                {
                    List<RenderingJobCommonjWork> timeoutJobWorks = new ArrayList<RenderingJobCommonjWork>();
                   
                    for (RenderingJobCommonjWork jobWork : jobWorksMonitored.values() )
                    {
                        RenderingJob job = jobWork.getRenderingJob();
                       
                        if (job.isTimeout())
                        {
                            timeoutJobWorks.add(jobWork);
                        }
                    }
                   
                    // Now, we can kill the timeout worker(s).
                    for (RenderingJobCommonjWork jobWork : timeoutJobWorks )
                    {
                        RenderingJob job = jobWork.getRenderingJob();

                        // If the job is just completed, then do not kill the worker.
                        if (job.isTimeout())
                        {
                            killJobWork(jobWork);
                        }
                    }
                }
View Full Code Here

            }
        }
       
        public void killJobWork(RenderingJobCommonjWork jobWork)
        {
            RenderingJob job = jobWork.getRenderingJob();
           
            try
            {
                if (log.isWarnEnabled())
                {
                    PortletWindow window = job.getWindow();
                    log.warn("Portlet Rendering job to be interrupted by timeout (" + job.getTimeout() + "ms)" + (window != null ? ": "+window.getId().getStringId() : ""));
                }

                PortletContent content = job.getPortletContent();
                Thread worker = (Thread) job.getWorkerAttribute(WORKER_THREAD_ATTR);
               
                if (worker != null)
                {
                    synchronized (content)
                    {
                        if (!content.isComplete())
                        {
                            worker.interrupt();
                            content.wait();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                log.error("Exceptiong during job killing.", e);
            }
            finally
            {
                WorkItem workItem = (WorkItem) job.getWorkerAttribute(COMMONJ_WORK_ITEM_ATTR);
               
                if (workItem != null)
                {
                    removeMonitoredJobWork(workItem);
                }
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)
        {
            RenderingJob job = null;
           
            if (worker.getJobCount() < this.maxJobsPerWorker)
            {
                job = (RenderingJob) queue.pop();
               
                if (job != null)
                {
                    AccessControlContext context = (AccessControlContext) job.getWorkerAttribute(ACCESS_CONTROL_CONTEXT_WORKER_ATTR);
                    worker.setJob(job, context);
                    runningJobs--;
                    return;
                }
            }
View Full Code Here

                    synchronized (workersMonitored)
                    {
                        for (WorkerImpl worker : workersMonitored)
                        {
                            RenderingJob job = (RenderingJob) worker.getJob();
                           
                            if ((null != job) && (job.isTimeout()))
                            {
                                timeoutWorkers.add(worker);
                            }
                        }
                    }

                    // Now, we can kill the timeout worker(s).
                    for (WorkerImpl worker : timeoutWorkers)
                    {
                        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

     */
    public void renderNow( ContentFragment fragment, RequestContext requestContext, boolean spawned )
    {
        try
        {
            RenderingJob rJob = createRenderingJob(fragment, requestContext);
            if (rJob != null)
            {
                if (spawned)
                {
                    ArrayList<RenderingJob> jobs = new ArrayList<RenderingJob>();
                    jobs.add(rJob);
                    processRenderingJob(rJob, true);
                    waitForRenderingJobs(jobs);
                }
                else
                {
                    rJob.execute();
                }
            }
        }
        catch (PortletAccessDeniedException e)
        {
View Full Code Here

     * @throws RuntimeException
     */
    public RenderingJob createRenderingJob(ContentFragment fragment, RequestContext requestContext)
    throws PortletAccessDeniedException
    {
        RenderingJob job = null;
        try
        {
            PortletWindow portletWindow = requestContext.getPortletWindow(fragment);
            if (!portletWindow.isValid())
            {
View Full Code Here

                                              long timeoutMetadata)
    {
        int expirationCache = getExpirationCache(portletDefinition);
        PortletContent portletContent= createPortletContent(requestContext, portletWindow, expirationCache);

        RenderingJob rJob = null;
              
        portletWindow.getFragment().setPortletContent(portletContent);
       
        rJob = new RenderingJobImpl(container, this, portletDefinition,
                                    requestContext.getRequest(), requestContext.getResponse(), requestContext, portletWindow,
View Full Code Here

            {
                while (!this.renderingJobs.isEmpty())
                {
                    for (Iterator<RenderingJob> it = this.renderingJobs.iterator(); it.hasNext(); )
                    {
                        RenderingJob job = it.next();
                        WorkItem workItem = (WorkItem) job.getWorkerAttribute(COMMONJ_WORK_ITEM_ATTR);
                        int status = WorkEvent.WORK_ACCEPTED;
                       
                        if (workItem != null)
                        {
                            status = workItem.getStatus();
                        }
                       
                        boolean isTimeout = job.isTimeout();
                       
                        if (isTimeout)
                        {
                            PortletContent content = job.getPortletContent();
                           
                            if (interruptOnTimeout)
                            {
                                Thread worker = (Thread) job.getWorkerAttribute(WORKER_THREAD_ATTR);
                               
                                if (worker != null)
                                {
                                    synchronized (content)
                                    {
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.