weaver      2004/07/21 06:38:22

  Modified:    components/page-manager/src/java/org/apache/jetspeed/profiler/impl
                        JetspeedProfiler.java
               components/page-manager/src/java/org/apache/jetspeed/page/impl
                        DatabasePageManager.java CastorXmlPageManager.java
               jetspeed-api/src/java/org/apache/jetspeed/page
                        PageManager.java
               portal/src/java/org/apache/jetspeed/profiler/impl
                        ProfilerValveImpl.java
               jetspeed-api/src/java/org/apache/jetspeed/profiler
                        Profiler.java
               jetspeed-api/src/java/org/apache/jetspeed/om/folder
                        Folder.java
               components/page-manager/src/java/org/apache/jetspeed/om/folder/impl
                        FolderImpl.java
  Added:       jetspeed-api/src/java/org/apache/jetspeed/page
                        PageNotFoundException.java
  Log:
  -  All getPage() operations throw a PageNotFoundException if the page cannot be 
located
  -  ProfilerValve now inokves response.sendError(404) when a PageNotFoundException is 
thrown.
  
  Revision  Changes    Path
  1.4       +3 -2      
jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfiler.java
  
  Index: JetspeedProfiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/impl/JetspeedProfiler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JetspeedProfiler.java     20 Jul 2004 13:45:42 -0000      1.3
  +++ JetspeedProfiler.java     21 Jul 2004 13:38:21 -0000      1.4
  @@ -32,6 +32,7 @@
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.om.page.Page;
   import org.apache.jetspeed.page.PageManager;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.profiler.ProfileLocator;
   import org.apache.jetspeed.profiler.Profiler;
   import org.apache.jetspeed.profiler.ProfilerException;
  @@ -261,7 +262,7 @@
       /* (non-Javadoc)
        * @see 
org.apache.jetspeed.profiler.ProfilerService#getPage(org.apache.jetspeed.profiler.ProfileLocator)
        */
  -    public Page getPage(ProfileLocator locator)
  +    public Page getPage(ProfileLocator locator) throws PageNotFoundException
       {
           // TODO: under construction, for now use the name
           
  
  
  
  1.4       +8 -3      
jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
  
  Index: DatabasePageManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DatabasePageManager.java  14 Jul 2004 21:09:12 -0000      1.3
  +++ DatabasePageManager.java  21 Jul 2004 13:38:21 -0000      1.4
  @@ -28,6 +28,7 @@
   import org.apache.jetspeed.om.folder.Folder;
   import org.apache.jetspeed.om.page.Page;
   import org.apache.jetspeed.page.PageManager;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.page.PageNotRemovedException;
   import org.apache.jetspeed.page.PageNotUpdatedException;
   import org.apache.jetspeed.profiler.ProfileLocator;
  @@ -75,7 +76,7 @@
       /* (non-Javadoc)
        * @see 
org.apache.jetspeed.services.page.PageManagerService#getPage(org.apache.jetspeed.profiler.ProfileLocator)
        */
  -    public Page getPage(ProfileLocator locator)
  +    public Page getPage(ProfileLocator locator) throws PageNotFoundException
       {
           return getPage(locator.getValue("page"));
       }    
  @@ -83,7 +84,7 @@
       /* (non-Javadoc)
        * @see 
org.apache.jetspeed.services.page.PageManagerService#getPage(java.lang.String)
        */
  -    public Page getPage(String id)
  +    public Page getPage(String id) throws PageNotFoundException
       {
           if (pageCache.containsKey(id))
           {
  @@ -96,6 +97,10 @@
               Object q = persistenceStore.newQuery(pageClass, filter);
               persistenceStore.getTransaction().begin();
               Page page = (Page) persistenceStore.getObjectByQuery( q);
  +            if(page == null)
  +            {
  +                throw new PageNotFoundException("Jetspeed PSML page not found: 
"+id);
  +            }
   
               pageCache.put(id, page);
               return page;
  
  
  
  1.5       +37 -16    
jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/CastorXmlPageManager.java
  
  Index: CastorXmlPageManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl/CastorXmlPageManager.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CastorXmlPageManager.java 15 Jul 2004 22:52:37 -0000      1.4
  +++ CastorXmlPageManager.java 21 Jul 2004 13:38:21 -0000      1.5
  @@ -38,6 +38,7 @@
   import org.apache.jetspeed.om.folder.impl.FolderImpl;
   import org.apache.jetspeed.om.page.Page;
   import org.apache.jetspeed.page.PageManager;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.profiler.ProfileLocator;
   import org.apache.xml.serialize.OutputFormat;
   import org.apache.xml.serialize.Serializer;
  @@ -154,18 +155,35 @@
           pages.stopFileScanner();
       }
   
  -    /* (non-Javadoc)
  -     * @see 
org.apache.jetspeed.services.page.PageManagerService#getPage(org.apache.jetspeed.profiler.ProfileLocator)
  +    /**
  +     * 
  +     * <p>
  +     * getPage
  +     * </p>
  +     *
  +     * @see 
org.apache.jetspeed.page.PageManager#getPage(org.apache.jetspeed.profiler.ProfileLocator)
  +     * @param locator
  +     * @return
  +     * @throws PageNotFoundException
        */
  -    public Page getPage(ProfileLocator locator)
  +    public Page getPage(ProfileLocator locator) throws PageNotFoundException
       {
           return getPage(locator.getValue("page"));
       }
       
       /**
  -     * @see 
org.apache.jetspeed.services.page.PageManagerService#getPage(java.lang.String)
  +     * 
  +     * <p>
  +     * getPage
  +     * </p>
  +     *
  +     * @see org.apache.jetspeed.page.PageManager#getPage(java.lang.String)
  +     * @param id
  +     * @return
  +     * @throws PageNotFoundException
  +     * @throws IllegalStateException if the page could be inserted into the 
FileCache.
        */
  -    public Page getPage(String id)
  +    public Page getPage(String id) throws PageNotFoundException
       {
           if (id == null)
           {
  @@ -197,11 +215,11 @@
               
               if (!f.exists())
               {
  -                return null;
  +                throw new PageNotFoundException("Jetspeed PSML page not found: 
"+id);
               }
   
               FileReader reader = null;
  -
  +        
               try
               {
                   reader = new FileReader(f);
  @@ -212,23 +230,19 @@
               }
               catch (IOException e)
               {
  -                log.error("Could not load the file " + f.getAbsolutePath(), e);
  -                page = null;
  +                throw new PageNotFoundException("Could not load the file " + 
f.getAbsolutePath(), e);                
               }
               catch (MarshalException e)
               {
  -                log.error("Could not unmarshal the file " + f.getAbsolutePath(), e);
  -                page = null;
  +                throw new PageNotFoundException("Could not unmarshal the file " + 
f.getAbsolutePath(), e);               
               }
               catch (MappingException e)
               {
  -                log.error("Could not unmarshal the file " + f.getAbsolutePath(), e);
  -                page = null;
  +                throw new PageNotFoundException("Could not unmarshal the file " + 
f.getAbsolutePath(), e);
               }
               catch (ValidationException e)
               {
  -                log.error("Document " + f.getAbsolutePath() + " is not valid", e);
  -                page = null;
  +                throw new PageNotFoundException("Document " + f.getAbsolutePath() + 
" is not valid", e);                
               }
               finally
               {
  @@ -240,6 +254,11 @@
                   {
                   }
               }
  +            
  +            if(page == null)
  +            {
  +                throw new PageNotFoundException("Page not found: "+id);
  +            }
   
               synchronized (pages)
               {
  @@ -260,6 +279,8 @@
                   catch (java.io.IOException e)
                   {
                       log.error("Error putting document: " + e);
  +                    IllegalStateException ise = new IllegalStateException("Error 
storing Page in the FileCache: "+e.toString());
  +                    ise.initCause(e);
                   }
               }
           }
  
  
  
  1.3       +21 -10    
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java
  
  Index: PageManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PageManager.java  14 Jul 2004 21:09:12 -0000      1.2
  +++ PageManager.java  21 Jul 2004 13:38:21 -0000      1.3
  @@ -57,12 +57,18 @@
        */
       public Property newProperty();
   
  -    /**
  -     * Returns a PSML document for the given key
  -     *
  -     * @param locator The locator descriptor of the document to be retrieved.
  -     */
  -    public Page getPage(String id);
  +   /**
  +    * 
  +    * <p>
  +    * getPage
  +    * </p>
  +    *
  +    * Returns a PSML document for the given key
  +    *
  +    * @param locator The locator descriptor of the document to be retrieved.
  +    * @throws PageNotFoundException if the page cannot be found
  +    */
  +    public Page getPage(String id) throws PageNotFoundException;
       
       /**
        * 
  @@ -77,11 +83,16 @@
       Folder getFolder(String folderPath);
   
       /**
  -     * Returns a PSML document for the given locator
  +     * 
  +     * <p>
  +     * getPage
  +     * </p>
        *
  -     * @param locator The locator descriptor of the document to be retrieved.
  +     * @param locator
  +     * @return
  +     * @throws PageNotFoundException if the page cannot be found.
        */
  -    public Page getPage(ProfileLocator locator);
  +    public Page getPage(ProfileLocator locator) throws PageNotFoundException;
   
       /** Query for a collection of profiles given a profile locator criteria.
        *
  
  
  
  1.1                  
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/page/PageNotFoundException.java
  
  Index: PageNotFoundException.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.page;
  
  import org.apache.jetspeed.exception.JetspeedException;
  
  /**
   * <p>
   * PageNotFoundException
   * </p>
   * <p>
   * Thrown when a requested page cannot be found.
   * </p>
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a>
   * @version $Id: PageNotFoundException.java,v 1.1 2004/07/21 13:38:21 weaver Exp $
   *
   */
  public class PageNotFoundException extends JetspeedException
  {
  
      /**
       * 
       */
      public PageNotFoundException()
      {
          super();
         
      }
      /**
       * @param message
       */
      public PageNotFoundException( String message )
      {
          super(message);
      }
      /**
       * @param msg
       * @param nested
       */
      public PageNotFoundException( String msg, Throwable nested )
      {
          super(msg, nested);
      }
      /**
       * @param nested
       */
      public PageNotFoundException( Throwable nested )
      {
          super(nested);
      }
  }
  
  
  
  1.5       +36 -17    
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
  
  Index: ProfilerValveImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProfilerValveImpl.java    17 Mar 2004 22:19:53 -0000      1.4
  +++ ProfilerValveImpl.java    21 Jul 2004 13:38:21 -0000      1.5
  @@ -15,7 +15,12 @@
    */
   package org.apache.jetspeed.profiler.impl;
   
  +import java.io.IOException;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.jetspeed.Jetspeed;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.pipeline.PipelineException;
   import org.apache.jetspeed.pipeline.valve.AbstractValve;
   import org.apache.jetspeed.pipeline.valve.PageProfilerValve;
  @@ -27,39 +32,53 @@
   
   /**
    * ProfilerValveImpl
  - *
  - * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
  + * 
  + * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor </a>
    * @version $Id$
    */
   public class ProfilerValveImpl extends AbstractValve implements PageProfilerValve
   {
  -    /* (non-Javadoc)
  -     * @see 
org.apache.jetspeed.pipeline.valve.Valve#invoke(org.apache.jetspeed.request.RequestContext,
 org.apache.jetspeed.pipeline.valve.ValveContext)
  +    protected Log log = LogFactory.getLog(ProfilerValveImpl.class);
  +
  +    /*
  +     * (non-Javadoc)
  +     * 
  +     * @see 
org.apache.jetspeed.pipeline.valve.Valve#invoke(org.apache.jetspeed.request.RequestContext,
  +     *      org.apache.jetspeed.pipeline.valve.ValveContext)
        */
  -    public void invoke(RequestContext request, ValveContext context)
  -        throws PipelineException
  +    public void invoke( RequestContext request, ValveContext context ) throws 
PipelineException
       {
           try
           {
  -            Profiler profiler = 
(Profiler)Jetspeed.getComponentManager().getComponent(Profiler.class);
  -            
  +            Profiler profiler = (Profiler) 
Jetspeed.getComponentManager().getComponent(Profiler.class);
  +
               ProfileLocator locator = profiler.getProfile(request);
  -            request.setProfileLocator(locator);                        
  +            request.setProfileLocator(locator);
               request.setPage(profiler.getPage(locator));
  -            
  +            context.invokeNext(request);
  +
           }
           catch (ProfilerException e)
           {
  -            throw new PipelineException(e);
  +            throw new PipelineException(e.toString(), e);
           }
  -
  -        // Pass control to the next Valve in the Pipeline
  -        context.invokeNext( request );
  +        catch (PageNotFoundException e)
  +        {
  +            log.error(e.getMessage(), e);
  +            try
  +            {
  +                request.getResponse().sendError(404, e.getMessage());
  +            }
  +            catch (IOException e1)
  +            {
  +                log.error("Failed to invoke HttpServletReponse.sendError: 
"+e1.getMessage(), e);
  +            }
  +        }       
       }
   
       public String toString()
       {
           return "ProfilerValve";
       }
  -    
  -}
  +
  +}
  \ No newline at end of file
  
  
  
  1.2       +9 -2      
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/profiler/Profiler.java
  
  Index: Profiler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/profiler/Profiler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Profiler.java     28 May 2004 18:51:55 -0000      1.1
  +++ Profiler.java     21 Jul 2004 13:38:21 -0000      1.2
  @@ -21,6 +21,7 @@
   import org.apache.jetspeed.om.desktop.Desktop;
   import org.apache.jetspeed.om.page.Fragment;
   import org.apache.jetspeed.om.page.Page;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.profiler.rules.ProfilingRule;
   import org.apache.jetspeed.request.RequestContext;
   
  @@ -69,10 +70,16 @@
       Desktop getDesktop(ProfileLocator locator);
       
       /**
  +     * 
  +     * <p>
  +     * getPage
  +     * </p>
  +     *
        * @param locator
        * @return
  +     * @throws PageNotFoundException
        */
  -    Page getPage(ProfileLocator locator);
  +    Page getPage(ProfileLocator locator) throws PageNotFoundException;
       
       /**
        * @param locator
  
  
  
  1.3       +24 -6     
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/om/folder/Folder.java
  
  Index: Folder.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/om/folder/Folder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Folder.java       15 Jul 2004 22:52:37 -0000      1.2
  +++ Folder.java       21 Jul 2004 13:38:21 -0000      1.3
  @@ -18,6 +18,7 @@
   import org.apache.jetspeed.om.common.SecuredResource;
   import org.apache.jetspeed.om.page.Page;
   import org.apache.jetspeed.om.page.PageSet;
  +import org.apache.jetspeed.page.PageNotFoundException;
   
   /**
    * Folder
  @@ -54,12 +55,29 @@
       
       void setFolders(FolderSet folders);
       
  -    PageSet getPages();
  +    /**
  +     * 
  +     * <p>
  +     * getPages
  +     * </p>
  +     *
  +     * @return PageSet of all the Pages referenced by this Folder.
  +     * @throws PageNotFoundException if any of the Pages referenced by this Folder
  +     * could not be found.
  +     */
  +    PageSet getPages() throws PageNotFoundException;
       
       void setPages(PageSet pages);
       
  -    //GenericMetadata getMetadata();
  -    //void setMetadata(GenericMetadata metadata);
  -    
  -    Page getPage(String name);
  +  
  +    /**
  +     * 
  +     * <p>
  +     * getPage
  +     * </p>
  +     *
  +     * @param name
  +.     * @throws PageNotFoundException if the Page requested could not be found.
  +     */
  +    Page getPage(String name) throws PageNotFoundException;
   }
  
  
  
  1.5       +10 -4     
jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
  
  Index: FolderImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FolderImpl.java   15 Jul 2004 22:52:37 -0000      1.4
  +++ FolderImpl.java   21 Jul 2004 13:38:21 -0000      1.5
  @@ -22,6 +22,7 @@
   import org.apache.jetspeed.om.page.Page;
   import org.apache.jetspeed.om.page.PageSet;
   import org.apache.jetspeed.page.PageManager;
  +import org.apache.jetspeed.page.PageNotFoundException;
   import org.apache.jetspeed.page.impl.PageSetImpl;
   
   /**
  @@ -206,7 +207,7 @@
        * 
        * @see org.apache.jetspeed.om.folder.Folder#getPages()
        */
  -    public PageSet getPages()
  +    public PageSet getPages() throws PageNotFoundException
       {
           if (pages == null)
           {
  @@ -225,9 +226,14 @@
           return pages;
       }
       
  -    public Page getPage(String name)
  +    public Page getPage(String name) throws PageNotFoundException
       {
  -        return pages.get(name);
  +        Page page = pages.get(name);
  +        if(page == null)
  +        {
  +            throw new PageNotFoundException("Jetspeed PSML page not found: "+name);
  +        }
  +        return page;
       }
   
       /*
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to