taylor 2004/09/17 13:04:35
Modified: portal/src/java/org/apache/jetspeed/profiler/impl
ProfilerValveImpl.java
Log:
enable real profiling
implemented by Randy Watler
CVS: ----------------------------------------------------------------------
CVS: PR:
CVS: If this change addresses a PR in the problem report tracking
CVS: database, then enter the PR number(s) here.
CVS: Obtained from:
CVS: If this change has been taken from another system, such as NCSA,
CVS: then name the system in this line, otherwise delete it.
CVS: Submitted by:
CVS: If this code has been contributed to Apache by someone else; i.e.,
CVS: they sent us a patch or a new module, then include their name/email
CVS: address here. If this is your work then delete this line.
CVS: Reviewed by:
CVS: If we are doing pre-commit code reviews and someone else has
CVS: reviewed your changes, include their name(s) here.
CVS: If you have not had it reviewed then delete this line.
Revision Changes Path
1.13 +20 -95
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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ProfilerValveImpl.java 3 Sep 2004 19:47:54 -0000 1.12
+++ ProfilerValveImpl.java 17 Sep 2004 20:04:35 -0000 1.13
@@ -21,8 +21,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.om.folder.Folder;
-import org.apache.jetspeed.om.folder.FolderNotFoundException;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.document.NodeException;
@@ -32,6 +30,7 @@
import org.apache.jetspeed.pipeline.valve.PageProfilerValve;
import org.apache.jetspeed.pipeline.valve.ValveContext;
import org.apache.jetspeed.profiler.ProfileLocator;
+import org.apache.jetspeed.profiler.ProfiledPageContext;
import org.apache.jetspeed.profiler.Profiler;
import org.apache.jetspeed.request.RequestContext;
@@ -43,11 +42,11 @@
*/
public class ProfilerValveImpl extends AbstractValve implements PageProfilerValve
{
- public static final String SLASH = "/";
protected Log log = LogFactory.getLog(ProfilerValveImpl.class);
+
+ public static final String PROFILED_PAGE_CONTEXT_ATTR_KEY =
"org.apache.jetspeed.profiledPageContext";
+
private Profiler profiler;
- static final String LOCATOR_KEY = "org.apache.jetpeed.profileLocator";
- public static final String FOLDER_ATTR_KEY = "org.apache.jetspeed.folder";
private PageManager pageManager;
public ProfilerValveImpl( Profiler profiler, PageManager pageManager )
@@ -66,18 +65,23 @@
{
try
{
+ // perform profiling to get profiled page context using
+ // the profiler and page manager
+ ProfileLocator locator = profiler.getProfile(request);
+ ProfiledPageContext profiledPageContext =
pageManager.getProfiledPageContext(locator);
+ if ((profiledPageContext == null) || (profiledPageContext.getPage() ==
null) || (profiledPageContext.getLocator() == null))
+ throw new NodeNotFoundException("Unable to profile request: " +
request.getPath());
+
+ // set request page and profile locator
+ request.setPage(profiledPageContext.getPage());
+ request.setProfileLocator(profiledPageContext.getLocator());
+ // return profiled page context in request attribute
HttpServletRequest httpRequest = request.getRequest();
- ProfileLocator locator = null;
- Folder folder = getFolder(request);
- httpRequest.setAttribute(FOLDER_ATTR_KEY, folder);
- request.setPage(folder.getPage(getPageName(request, folder)));
-
- locator = profiler.getProfile(request);
- request.setProfileLocator(locator);
- // request.setPage(profiler.getPage(locator));
- context.invokeNext(request);
+ httpRequest.setAttribute(PROFILED_PAGE_CONTEXT_ATTR_KEY,
profiledPageContext);
+ // continue
+ context.invokeNext(request);
}
catch (NodeNotFoundException e)
{
@@ -97,88 +101,9 @@
}
}
- protected Folder getFolder( RequestContext request ) throws
FolderNotFoundException, NodeException
- {
- HttpServletRequest httpRequest = request.getRequest();
- String folderInRequest = getFolderPath(request);
- Folder selectedFolder = null;
-
- if (folderInRequest != null)
- {
- selectedFolder = pageManager.getFolder(folderInRequest);
- }
-
- if (selectedFolder != null)
- {
- httpRequest.getSession().setAttribute(FOLDER_ATTR_KEY, selectedFolder);
- }
- else
- {
- selectedFolder = (Folder) httpRequest.getAttribute(FOLDER_ATTR_KEY);
- if (selectedFolder == null)
- {
- selectedFolder = pageManager.getFolder(SLASH);
- }
- }
-
- return selectedFolder;
-
- }
-
- protected String getFolderPath( RequestContext request )
- {
- String pathInfo = request.getPath();
-
- String folder = null;
- if (pathInfo != null)
- {
- if (pathInfo.endsWith(Page.DOCUMENT_TYPE))
- {
- int lastSlash = pathInfo.lastIndexOf(SLASH);
- if (lastSlash > -1)
- {
- String folderPath = pathInfo.substring(0, lastSlash);
- if (folderPath.length() > 0)
- {
- return folderPath;
- }
- else
- {
- return SLASH;
- }
- }
- else
- {
- return SLASH;
- }
- }
- else
- {
- return pathInfo;
- }
- }
- else
- {
- return SLASH;
- }
- }
-
- protected String getPageName( RequestContext request, Folder currentFolder )
- {
- String pathInfo = request.getPath();
- if (pathInfo == null || !pathInfo.endsWith(".psml"))
- {
- return currentFolder.getDefaultPage();
- }
- else
- {
- return pathInfo;
- }
- }
-
public String toString()
{
return "ProfilerValve";
}
-}
\ No newline at end of file
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]