Package org.apache.jetspeed.om.page

Examples of org.apache.jetspeed.om.page.ContentFragment


        if (fragment != null)
        {               
            if (!layout.equals(fragment.getName()))
            {
                fragment.setName(layout);
                ContentFragment contentFragment = new ContentFragmentImpl(fragment, new HashMap());                   
                PortletWindow window = windowAccess.getPortletWindow(contentFragment);
                if (window != null)
                {
                    entityAccess.updatePortletEntity(window.getPortletEntity(), contentFragment);
                    entityAccess.storePortletEntity(window.getPortletEntity());
                    windowAccess.createPortletWindow(window.getPortletEntity(), contentFragment.getId());
                    count++;
                    if ( isBlank(sizes) )
                    {
                        fragment.setLayoutSizes(null);
                    }
View Full Code Here


        ContentPage page = context.getPage();
        if (null == page)
        {
            throw new JetspeedException("Failed to find PSML Pin ContentPageAggregator.build");
        }
        ContentFragment root = page.getRootContentFragment();
        if (root == null)
        {
            throw new JetspeedException("No root ContentFragment found in ContentPage");
        }
        // handle maximized state
        NavigationalState nav = context.getPortalURL().getNavigationalState();
        PortletWindow window = nav.getMaximizedWindow();
        if (null != window)
        {
            renderMaximizedWindow(context, page, root, window);
        }
        else
        {
            aggregateAndRender(root, context, page, true, null, null, null);
        }       
        //dispatcher.include(root);
        context.getResponse().getWriter().write(root.getRenderedContent());
        if (null != window)
        {
            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE);
            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE);
        }
View Full Code Here

     * @throws FailedToRenderContentFragmentException
     */
    protected void renderMaximizedWindow( RequestContext context, ContentPage page, ContentFragment layoutContentFragment,
            PortletWindow window ) throws FailedToRenderFragmentException
    {
        ContentFragment maxedContentFragment = page.getContentFragmentById(window.getId().toString());
        if (maxedContentFragment != null)
        {
            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE, maxedContentFragment);
            context.getRequest().setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, maxedContentFragment);
            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE, page.getRootContentFragment());
            try
            {
                renderer.renderNow(maxedContentFragment, context);
                renderer.renderNow(layoutContentFragment, context);                             
            }
            catch (Exception e)
            {
                log.error(e.getMessage(), e);
                maxedContentFragment.overrideRenderedContent("Sorry, but we were unable access the requested portlet.  Send the following message to your portal admin:  "+  e.getMessage());
            }
        }
    }
View Full Code Here

        if (f.getContentFragments() != null && f.getContentFragments().size() > 0)
        {
            Iterator children = f.getContentFragments().iterator();
            while (children.hasNext())
            {
                ContentFragment child = (ContentFragment) children.next();
                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);
       
        // Now, restore it to non parallel mode for rendering layout portlets.
        CurrentWorkerContext.setParallelRenderingMode(false);
       
        // render layout fragments.
        iter = layoutFragments.iterator();
        while (iter.hasNext())
        {
            ContentFragment child = (ContentFragment) iter.next();
            renderer.renderNow(child, context);
        }
       
        // Start the actual rendering process
        String defaultPortletDecorator = page.getEffectiveDefaultDecorator(ContentFragment.PORTLET);
View Full Code Here

        if (fragment != null)
        {               
            if (!layout.equals(fragment.getName()))
            {
                fragment.setName(layout);
                ContentFragment contentFragment = new ContentFragmentImpl(fragment, new HashMap());                   
                PortletWindow window = windowAccess.getPortletWindow(contentFragment);
                if (window != null)
                {
                    entityAccess.updatePortletEntity(window.getPortletEntity(), contentFragment);
                    entityAccess.storePortletEntity(window.getPortletEntity());
                    windowAccess.createPortletWindow(window.getPortletEntity(), contentFragment.getId());
                    count++;
                    if ( isBlank(sizes) )
                    {
                        fragment.setLayoutSizes(null);
                    }
View Full Code Here

        processRenderingJob(job, false);
    }

    protected void processRenderingJob(RenderingJob job, boolean parallelOnly)
    {
        ContentFragment fragment = null;

        try
        {
            if (parallelOnly || job.getTimeout() > 0)
            {
                workMonitor.process(job);
            }
            else
            {
                job.execute();
                addTitleToHeader(job.getWindow(), job.getFragment(),
                                 job.getRequest(), job.getResponse(), job.getDispatcher(),
                                 job.isContentCached());               
            }
        }
        catch (Exception e1)
        {
            log.error("render() failed: " + e1.toString(), e1);
            fragment.overrideRenderedContent(e1.getLocalizedMessage());           
        }
    }
View Full Code Here

    }

    public void testWindowAccess() throws Exception
    {
        List windows = new ArrayList();
        ContentFragment f1 = new ContentFragmentImpl((Fragment) fragMock.proxy(), new HashMap());
        MutablePortletEntity entity = (MutablePortletEntity) entityMock.proxy();
        CompositeWindowList windowList = (CompositeWindowList) windowListMock.proxy();
        entityAccessMock.expects(new InvokeAtLeastOnceMatcher()).method("getPortletEntityForFragment")
                .withAnyArguments().will(new ReturnStub(entity));
        fragMock.expects(new InvokeAtLeastOnceMatcher()).method("getId").withNoArguments()
View Full Code Here

        ContentPage page = context.getPage();
        if (null == page)
        {
            throw new JetspeedException("Failed to find PSML Pin ContentPageAggregator.build");
        }
        ContentFragment root = page.getRootContentFragment();
        if (root == null)
        {
            throw new JetspeedException("No root ContentFragment found in ContentPage");
        }
        // handle maximized state
        NavigationalState nav = context.getPortalURL().getNavigationalState();
        PortletWindow window = nav.getMaximizedWindow();
        if (null != window)
        {
            renderMaximizedWindow(context, page, root, window);
        }
        else
        {
            aggregateAndRender(root, context, page, true, null, null, null);
        }       
        //dispatcher.include(root);
        context.getResponse().getWriter().write(root.getRenderedContent());
        if (null != window)
        {
            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE);
            context.getRequest().removeAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE);
        }
View Full Code Here

     * @throws FailedToRenderContentFragmentException
     */
    protected void renderMaximizedWindow( RequestContext context, ContentPage page, ContentFragment layoutContentFragment,
            PortletWindow window ) throws FailedToRenderFragmentException
    {
        ContentFragment maxedContentFragment = page.getContentFragmentById(window.getId().toString());
        if (maxedContentFragment != null)
        {
            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_FRAGMENT_ATTRIBUTE, maxedContentFragment);
            context.getRequest().setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, maxedContentFragment);
            context.getRequest().setAttribute(PortalReservedParameters.MAXIMIZED_LAYOUT_ATTRIBUTE, page.getRootContentFragment());
            try
            {
                renderer.renderNow(maxedContentFragment, context);
                renderer.renderNow(layoutContentFragment, context);                             
            }
            catch (Exception e)
            {
                log.error(e.getMessage(), e);
                maxedContentFragment.overrideRenderedContent("Sorry, but we were unable access the requested portlet.  Send the following message to your portal admin:  "+  e.getMessage());
            }
        }
    }
View Full Code Here

        if (f.getContentFragments() != null && f.getContentFragments().size() > 0)
        {
            Iterator children = f.getContentFragments().iterator();
            while (children.hasNext())
            {
                ContentFragment child = (ContentFragment) children.next();
                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)
                    {
                        portletContent.wait();
                    }
                }
            }
        }
        catch (Exception e)
        {
            log.error("Exception during synchronizing all portlet rendering jobs.", e);
        }
       
        // render layout fragments.
        iter = layoutFragments.iterator();
        while (iter.hasNext())
        {
            ContentFragment child = (ContentFragment) iter.next();
            renderer.renderNow(child, context);
        }
       
        // Start the actual rendering process
        String defaultPortletDecorator = page.getEffectiveDefaultDecorator(ContentFragment.PORTLET);
View Full Code Here

TOP

Related Classes of org.apache.jetspeed.om.page.ContentFragment

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.