Package org.apache.jetspeed.page

Examples of org.apache.jetspeed.page.PageNotFoundException


        // select fragment definition by name from cached fragment definitions collection
        FragmentDefinition fragmentDefinition = (FragmentDefinition)getFragmentDefinitionsNodeSet().get(name);
        if (fragmentDefinition == null)
        {
            throw new PageNotFoundException("FragmentDefinition not found: " + name);
        }

        // check for view access on page
        fragmentDefinition.checkAccess(JetspeedActions.VIEW);
View Full Code Here


            f = new File(this.documentRootDir, path + extension);
        }

        if (!f.exists())
        {
            throw new PageNotFoundException("Document not found: " + path);
        }

        try
        {
            // unmarshal: use SAX II parser to read document XML, filtering
            // for page and folder menu definition menu elements ordered
            // polymorphic collection to insert artifical <menu-element>
            // and <fragment-element> tags enabling Castor XML binding;
            // see JETSPEED-INF/castor/page-mapping.xml
           
            final InputSource readerInput = new InputSource(new InputStreamReader(new FileInputStream(f), PSML_DOCUMENT_ENCODING));
            Unmarshaller unmarshaller = new Unmarshaller();
            unmarshaller.setResolver((XMLClassDescriptorResolver) classDescriptorResolver);           
            unmarshaller.setValidation(false); // results in better performance
           
            synchronized (xmlReader)
            {
                document = (Document) unmarshaller.unmarshal(new SAX2EventProducer()
                    {
                        public void setContentHandler(final ContentHandler handler)
                        {
                          xmlReader.setContentHandler(new ContentHandler()
                                {
                                    private int menuDepth = 0;

                                    public void characters(char[] ch, int start, int length) throws SAXException
                                    {
                                        handler.characters(ch, start, length);
                                    }

                                    public void endDocument() throws SAXException
                                    {
                                        handler.endDocument();
                                    }

                                    public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
                                    {
                                        handler.ignorableWhitespace(ch, start, length);
                                    }

                                    public void processingInstruction(String target, String data) throws SAXException
                                    {
                                        handler.processingInstruction(target, data);
                                    }

                                    public void setDocumentLocator(Locator locator)
                                    {
                                        handler.setDocumentLocator(locator);
                                    }

                                    public void startDocument() throws SAXException
                                    {
                                        handler.startDocument();
                                    }

                    public void endElement(String uri, String localName, String qName) throws SAXException
                                    {
                                        // always include all elements
                                        handler.endElement(uri,localName,qName);

                                        // track menu depth and insert menu-element nodes
                                        // to encapsulate menu elements to support collection
                                        // polymorphism in Castor
                                        if (qName.equals("menu"))
                                        {
                                            menuDepth--;
                                            if (menuDepth > 0)
                                            {
                                                handler.endElement(null,null,"menu-element");
                                            }
                                        }
                                        else if ((menuDepth > 0) &&
                                                 (qName.equals("options") || qName.equals("separator") ||
                                                  qName.equals("include") || qName.equals("exclude")))
                                        {
                                            handler.endElement(null,null,"menu-element");
                                        }
                                        // insert fragment-element nodes to encapsulate
                                        // fragment elements to support collection
                                        // polymorphism in Castor
                                        if (qName.equals("fragment") || qName.equals("fragment-reference") || qName.equals("page-fragment"))
                                        {
                                            handler.endElement(null,null,"fragment-element");
                                        }
                                    }

                    public void endPrefixMapping(String prefix) throws SAXException
                                    {
                    }

                    public void skippedEntity(String name) throws SAXException
                                    {
                      handler.skippedEntity(name);
                    }

                    public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException
                                    {
                                        // track menu depth and insert menu-element nodes
                                        // to encapsulate menu elements to support collection
                                        // polymorphism in Castor                     
                      if (qName.equals("menu"))
                                        {
                                            if (menuDepth > 0)
                                            {
                                                handler.startElement(null,null,"menu-element", null);
                                            }
                                            menuDepth++;
                                        }
                                        else if ((menuDepth > 0) &&
                                                 (qName.equals("options") || qName.equals("separator") ||
                                                  qName.equals("include") || qName.equals("exclude")))
                                        {
                                            handler.startElement(null,null,"menu-element", null);
                                        }
                                        // insert fragment-element nodes to encapsulate
                                        // fragment elements to support collection
                                        // polymorphism in Castor
                                        if (qName.equals("fragment") || qName.equals("fragment-reference") || qName.equals("page-fragment"))
                                        {
                                            handler.startElement(null,null,"fragment-element",null);
                                        }

                                        // always include all elements
                                        handler.startElement(null,null, qName, atts);
                    }

                    public void startPrefixMapping(String prefix, String uri) throws SAXException
                                    {
                    }
                                });
                        }
                        public void start() throws SAXException
                        {
                            try
                            {
                              xmlReader.parse(readerInput);
                            }
                            catch (IOException ioe)
                            {
                                throw new SAXException(ioe);
                            }
                        }
                    });
            }
           
            document.setPath(path);
            AbstractBaseElement documentImpl = (AbstractBaseElement)document;
            documentImpl.setHandlerFactory(handlerFactory);
            documentImpl.setPermissionsEnabled(handlerFactory.getPermissionsEnabled());
            documentImpl.setConstraintsEnabled(handlerFactory.getConstraintsEnabled());
            boolean dirty = documentImpl.unmarshalled(generator);
            if (dirty || document.isDirty()){
                updateDocument(document, true);
                document.setDirty(false);
            }
        }
        catch (IOException e)
        {
          log.error("Could not load the file " + f.getAbsolutePath(), e);
            throw new PageNotFoundException("Could not load the file " + f.getAbsolutePath(), e);
        }
        catch (MarshalException e)
        {
          log.error("Could not unmarshal the file " + f.getAbsolutePath(), e);
            throw new PageNotFoundException("Could not unmarshal the file " + f.getAbsolutePath(), e);
        }
        catch (ValidationException e)
        {
          log.error("Document " + f.getAbsolutePath() + " is not valid", e);
            throw new DocumentNotFoundException("Document " + f.getAbsolutePath() + " is not valid", e);
View Full Code Here

        }
        if (path.endsWith(FragmentDefinition.DOCUMENT_TYPE))
        {
            return pageManager.getFragmentDefinition(path);           
        }
        throw new PageNotFoundException("Unable to classify page or template path by type: "+path);
    }
View Full Code Here

            FolderImpl folder = getNodeFolder(path);
            return folder.getPage(getNodeName(path));
        }
        catch (FolderNotFoundException fnfe)
        {
            throw new PageNotFoundException(fnfe.getMessage());
        }
    }
View Full Code Here

            FolderImpl folder = getNodeFolder(path);
            return folder.getPageTemplate(getNodeName(path));
        }
        catch (FolderNotFoundException fnfe)
        {
            throw new PageNotFoundException(fnfe.getMessage());
        }
    }
View Full Code Here

            FolderImpl folder = getNodeFolder(path);
            return folder.getDynamicPage(getNodeName(path));
        }
        catch (FolderNotFoundException fnfe)
        {
            throw new PageNotFoundException(fnfe.getMessage());
        }
    }
View Full Code Here

            FolderImpl folder = getNodeFolder(path);
            return folder.getFragmentDefinition(getNodeName(path));
        }
        catch (FolderNotFoundException fnfe)
        {
            throw new PageNotFoundException(fnfe.getMessage());
        }
    }
View Full Code Here

    {
        // get page
        Page page = (Page) getAllNodes().subset(Page.DOCUMENT_TYPE).get(name);
        if (page == null)
        {
            throw new PageNotFoundException("Jetspeed PSML page not found: " + name);
        }

        // check access
        if (checkAccess)
        {
View Full Code Here

    {
        // get page template
        PageTemplate pageTemplate = (PageTemplate) getAllNodes().subset(PageTemplate.DOCUMENT_TYPE).get(name);
        if (pageTemplate == null)
        {
            throw new PageNotFoundException("Jetspeed PSML page template not found: " + name);
        }

        // check access
        if (checkAccess)
        {
View Full Code Here

    {
        // get dynamic page
        DynamicPage dynamicPage = (DynamicPage) getAllNodes().subset(DynamicPage.DOCUMENT_TYPE).get(name);
        if (dynamicPage == null)
        {
            throw new PageNotFoundException("Jetspeed PSML dynamic page not found: " + name);
        }

        // check access
        if (checkAccess)
        {
View Full Code Here

TOP

Related Classes of org.apache.jetspeed.page.PageNotFoundException

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.