Return-Path: Delivered-To: apmail-jakarta-jetspeed-dev-archive@www.apache.org Received: (qmail 25789 invoked from network); 18 Aug 2004 19:21:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 18 Aug 2004 19:21:14 -0000 Received: (qmail 67188 invoked by uid 500); 18 Aug 2004 19:21:10 -0000 Delivered-To: apmail-jakarta-jetspeed-dev-archive@jakarta.apache.org Received: (qmail 67054 invoked by uid 500); 18 Aug 2004 19:21:09 -0000 Mailing-List: contact jetspeed-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jetspeed Developers List" Reply-To: "Jetspeed Developers List" Delivered-To: mailing list jetspeed-dev@jakarta.apache.org Received: (qmail 67038 invoked by uid 500); 18 Aug 2004 19:21:09 -0000 Received: (qmail 67035 invoked by uid 500); 18 Aug 2004 19:21:09 -0000 Received: (qmail 67032 invoked by uid 99); 18 Aug 2004 19:21:09 -0000 X-ASF-Spam-Status: No, hits=-2.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.27.1) with SMTP; Wed, 18 Aug 2004 12:21:08 -0700 Received: (qmail 25761 invoked by uid 1642); 18 Aug 2004 19:21:08 -0000 Date: 18 Aug 2004 19:21:08 -0000 Message-ID: <20040818192108.25760.qmail@minotaur.apache.org> From: weaver@apache.org To: jakarta-jetspeed-2-cvs@apache.org Subject: cvs commit: jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl FolderImpl.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N weaver 2004/08/18 12:21:08 Modified: components/page-manager/src/java/org/apache/jetspeed/profiler/rules/impl PathSessionResolver.java PathResolver.java portal/src/webapp/WEB-INF/assembly pipelines.xml portal/src/java/org/apache/jetspeed/profiler/impl ProfilerValveImpl.java portal/src/test/org/apache/jetspeed/pipeline TestPipeline.java components/page-manager/src/java/org/apache/jetspeed/om/folder/impl FolderImpl.java Removed: portal/src/java/org/apache/jetspeed/pipeline/valve/impl FolderNavigationValve.java Log: - Refactored folder valve into profiler valve - Folder implementation now plays better with the profiler - using RequestConext.getPath() instead of HttpServletRequest.getPathInfo() per David Taylor's suggestion. Revision Changes Path 1.2 +19 -7 jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java Index: PathSessionResolver.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PathSessionResolver.java 28 May 2004 22:05:09 -0000 1.1 +++ PathSessionResolver.java 18 Aug 2004 19:21:07 -0000 1.2 @@ -15,6 +15,7 @@ */ package org.apache.jetspeed.profiler.rules.impl; +import org.apache.jetspeed.om.page.Page; import org.apache.jetspeed.profiler.rules.RuleCriterion; import org.apache.jetspeed.profiler.rules.RuleCriterionResolver; import org.apache.jetspeed.request.RequestContext; @@ -32,16 +33,27 @@ */ public String resolve(RequestContext context, RuleCriterion criterion) { - String value = context.getPath(); - if (value == null) + String path = null; + Page page = context.getPage(); + + if(page != null) + { + path = page.getId(); + } + else + { + path = context.getPath(); + } + + if (path == null) { String key = this.getClass() + "." + criterion.getName(); - value = (String)context.getSessionAttribute(key); - if (value == null) + path = (String)context.getSessionAttribute(key); + if (path == null) { - value = criterion.getValue(); + path = criterion.getValue(); } } - return value; + return path; } } 1.2 +15 -3 jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java Index: PathResolver.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- PathResolver.java 28 May 2004 22:05:09 -0000 1.1 +++ PathResolver.java 18 Aug 2004 19:21:07 -0000 1.2 @@ -15,6 +15,7 @@ */ package org.apache.jetspeed.profiler.rules.impl; +import org.apache.jetspeed.om.page.Page; import org.apache.jetspeed.profiler.rules.RuleCriterion; import org.apache.jetspeed.profiler.rules.RuleCriterionResolver; import org.apache.jetspeed.request.RequestContext; @@ -31,8 +32,19 @@ * @see org.apache.jetspeed.profiler.rules.RuleCriterionResolver#resolve(org.apache.jetspeed.request.RequestContext, org.apache.jetspeed.profiler.rules.RuleCriterion) */ public String resolve(RequestContext context, RuleCriterion criterion) - { - String path = context.getPath(); + { + String path = null; + Page page = context.getPage(); + + if(page != null) + { + path = page.getId(); + } + else + { + path = context.getPath(); + } + if (path == null) { path = criterion.getValue(); 1.4 +0 -7 jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/pipelines.xml Index: pipelines.xml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/pipelines.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- pipelines.xml 18 Aug 2004 13:59:48 -0000 1.3 +++ pipelines.xml 18 Aug 2004 19:21:07 -0000 1.4 @@ -49,12 +49,6 @@ - - - @@ -113,7 +107,6 @@ - 1.9 +90 -13 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ProfilerValveImpl.java 18 Aug 2004 13:57:58 -0000 1.8 +++ ProfilerValveImpl.java 18 Aug 2004 19:21:07 -0000 1.9 @@ -21,6 +21,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.jetspeed.om.folder.Folder; +import org.apache.jetspeed.page.PageManager; import org.apache.jetspeed.page.PageNotFoundException; import org.apache.jetspeed.pipeline.PipelineException; import org.apache.jetspeed.pipeline.valve.AbstractValve; @@ -42,13 +44,15 @@ protected Log log = LogFactory.getLog(ProfilerValveImpl.class); 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) + public ProfilerValveImpl( Profiler profiler, PageManager pageManager ) { this.profiler = profiler; + this.pageManager = pageManager; } - + /* * (non-Javadoc) * @@ -58,16 +62,17 @@ public void invoke( RequestContext request, ValveContext context ) throws PipelineException { try - { - + { + HttpServletRequest httpRequest = request.getRequest(); ProfileLocator locator = null; - String pathInfo = httpRequest.getPathInfo(); - locator = profiler.getProfile(request); - httpRequest.getSession().setAttribute(LOCATOR_KEY, locator); - + Folder folder = getFolder(request); + httpRequest.setAttribute(FOLDER_ATTR_KEY, folder); + request.setPage(pageManager.getPage(getPageName(request, folder))); + + locator = profiler.getProfile(request); request.setProfileLocator(locator); - request.setPage(profiler.getPage(locator)); + // request.setPage(profiler.getPage(locator)); context.invokeNext(request); } @@ -84,10 +89,82 @@ } catch (IOException e1) { - log.error("Failed to invoke HttpServletReponse.sendError: "+e1.getMessage(), e1); + log.error("Failed to invoke HttpServletReponse.sendError: " + e1.getMessage(), e1); + } + } + } + + + protected Folder getFolder( RequestContext request ) + { + 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("/"); + } + } + + return selectedFolder; + + } + + protected String getFolderPath( RequestContext request ) + { + String pathInfo = request.getPath(); + + String folder = null; + if (pathInfo != null) + { + if (pathInfo.endsWith(PageManager.PAGE_SUFFIX)) + { + int lastSlash = pathInfo.lastIndexOf("/"); + if(lastSlash > -1) + { + return pathInfo.substring(0, lastSlash); + } + else + { + return "/"; + } + } + else + { + return pathInfo; } - } + } + else + { + return "/"; + } } + + 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() { 1.14 +6 -7 jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java Index: TestPipeline.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/pipeline/TestPipeline.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- TestPipeline.java 18 Aug 2004 13:59:01 -0000 1.13 +++ TestPipeline.java 18 Aug 2004 19:21:08 -0000 1.14 @@ -80,12 +80,11 @@ assertTrue(valves[0].toString().equals("LocalizationValve")); assertTrue(valves[1].toString().equals("CapabilityValveImpl")); assertTrue(valves[2].toString().equals("SecurityValve")); - assertTrue(valves[3].toString().equals("FolderValve")); - assertTrue(valves[4].toString().equals("ProfilerValve")); - assertTrue(valves[5].toString().equals("ContainerValve")); - assertTrue(valves[6].toString().equals("ActionValveImpl")); - assertTrue(valves[7].toString().equals("AggregatorValve")); - assertTrue(valves[8].toString().equals("CleanupValveImpl")); + assertTrue(valves[3].toString().equals("ProfilerValve")); + assertTrue(valves[4].toString().equals("ContainerValve")); + assertTrue(valves[5].toString().equals("ActionValveImpl")); + assertTrue(valves[6].toString().equals("AggregatorValve")); + assertTrue(valves[7].toString().equals("CleanupValveImpl")); assertNotNull(engine.getPipeline("action-pipeline")); assertNotNull(engine.getPipeline("portlet-pipeline")); } 1.7 +13 -6 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.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- FolderImpl.java 18 Aug 2004 13:53:21 -0000 1.6 +++ FolderImpl.java 18 Aug 2004 19:21:08 -0000 1.7 @@ -38,7 +38,7 @@ private int id; private String name; //TODO: need to grab this from metadata...once we have metadata - private String defaultPage="default-page.psml"; + private String defaultPage = "default-page.psml"; private String defaultTheme; private FolderSet folders; private PageSet pages; @@ -53,7 +53,14 @@ { this.directory = directory; - this.name = name; + if (!name.startsWith("/")) + { + this.name = "/" + name; + } + else + { + this.name = name; + } this.pageManager = pageManager; } @@ -70,11 +77,11 @@ */ public Folder getParent() { - if(name.equals("/")) + if (name.equals("/")) { return null; } - + if (parent == null) { int lastSlash = name.lastIndexOf('/'); @@ -156,7 +163,7 @@ return "page_not_found.psml"; } } - + } /* --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org