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]