Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java Fri Nov 20 17:50:11 2009 @@ -30,8 +30,10 @@ import org.apache.jetspeed.components.test.AbstractSpringTestCase; import org.apache.jetspeed.om.folder.Folder; import org.apache.jetspeed.om.folder.MenuDefinition; +import org.apache.jetspeed.om.page.FragmentDefinition; import org.apache.jetspeed.om.page.Link; import org.apache.jetspeed.om.page.Page; +import org.apache.jetspeed.om.page.PageTemplate; import org.apache.jetspeed.page.PageManager; import org.apache.jetspeed.page.document.NodeSet; import org.apache.jetspeed.page.document.NodeNotFoundException; @@ -147,7 +149,7 @@ locator.add("hostname", true, false, "dash"); locator.add("user", true, false, "joe"); locator.add("page", false, false, "home"); - SiteView profileView = new SiteView(pageManager, locator); + SiteView profileView = new SiteView(pageManager, locator, false); assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); @@ -158,7 +160,7 @@ locator.add("hostname", true, false, "dash"); locator.add("role", true, false, "user"); locator.add("page", false, false, "home"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); @@ -171,7 +173,7 @@ locator.add("hostname", true, false, "localhost"); locator.add("role", true, false, "somerole"); locator.add("path", false, false, "home"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root", profileView.getSearchPathsString()); } @@ -276,7 +278,7 @@ assertTrue(folderPageProxiesByPath.contains(folder0Page0Proxy)); // test aggregating SiteView - SiteView aggregateView = new SiteView(pageManager, "/_user/user,/_role/role0,/_group/group,/"); + SiteView aggregateView = new SiteView(pageManager, "/_user/user,/_role/role0,/_group/group,/", false); assertEquals("/_user/user,/_role/role0,/_group/group,/", aggregateView.getSearchPathsString()); rootFolderProxy = aggregateView.getRootFolderProxy(); assertNotNull(rootFolderProxy); @@ -293,8 +295,11 @@ assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId())); List rootPage0ProxyMenus = rootPage0Proxy.getMenuDefinitions(); assertNotNull(rootPage0ProxyMenus); - assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage0ProxyMenus.size()); + assertEquals(3 + aggregateView.getStandardMenuNames().size(), rootPage0ProxyMenus.size()); Iterator menusIter = rootPage0ProxyMenus.iterator(); + MenuDefinition rootPage0ProxyTemplateTestMenu = (MenuDefinition)menusIter.next(); + assertEquals("template-test", rootPage0ProxyTemplateTestMenu.getName()); + assertEquals("/page2.psml", rootPage0ProxyTemplateTestMenu.getOptions()); MenuDefinition rootPage0ProxyTopMenu = (MenuDefinition)menusIter.next(); assertEquals("top", rootPage0ProxyTopMenu.getName()); assertEquals("/", rootPage0ProxyTopMenu.getOptions()); @@ -315,7 +320,7 @@ assertEquals("/_user/user/page2.psml", extractFileSystemPathFromId(rootPage2Proxy.getId())); List rootPage2ProxyMenus = rootPage2Proxy.getMenuDefinitions(); assertNotNull(rootPage2ProxyMenus); - assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage2ProxyMenus.size()); + assertEquals(3 + aggregateView.getStandardMenuNames().size(), rootPage2ProxyMenus.size()); menusIter = rootPage2ProxyMenus.iterator(); MenuDefinition rootPage2ProxyTopMenu = (MenuDefinition)menusIter.next(); assertEquals("top", rootPage2ProxyTopMenu.getName()); @@ -323,6 +328,9 @@ assertEquals(1, rootPage2ProxyTopMenu.getDepth()); MenuDefinition rootPage2ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next(); assertEquals("bread-crumbs", rootPage2ProxyBreadCrumbMenu.getName()); + MenuDefinition rootPage2ProxyTemplateTestMenu = (MenuDefinition)menusIter.next(); + assertEquals("template-test", rootPage2ProxyTemplateTestMenu.getName()); + assertEquals("/page0.psml", rootPage2ProxyTemplateTestMenu.getOptions()); for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++) { assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName())); @@ -357,7 +365,7 @@ assertEquals("/_user/user/folder1", extractFileSystemPathFromId(rootFolder1Proxy.getId())); // test degenerate aggregating SiteView - aggregateView = new SiteView(pageManager, "/__subsite-root"); + aggregateView = new SiteView(pageManager, "/__subsite-root", false); assertEquals("/__subsite-root", aggregateView.getSearchPathsString()); rootFolderProxy = aggregateView.getRootFolderProxy(); assertNotNull(rootFolderProxy); @@ -371,13 +379,13 @@ // test SiteView construction using profile locators JetspeedProfileLocator locator = new JetspeedProfileLocator(); locator.init(null, "/"); - SiteView profileView = new SiteView(pageManager, locator); + SiteView profileView = new SiteView(pageManager, locator, false); assertEquals("/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); locator.init(null, "/"); locator.add("user", true, false, "user"); locator.add("page", false, false, "default-page"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_user/user,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); locator.init(null, "/"); @@ -386,14 +394,14 @@ locator.add("mediatype", true, false, "html"); locator.add("language", true, false, "en"); locator.add("country", true, false, "US"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_user/user/_mediatype/html,/_user/user,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); locator.init(null, "/"); locator.add("page", false, false, "default-page"); locator.add("role", true, false, "role0"); locator.add("role", true, false, "role1"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_role/role0,/_role/role1,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); locator.init(null, "/"); @@ -403,7 +411,7 @@ locator.add("navigation", false, true, "/"); locator.add("group", true, false, "group"); locator.add("page", false, false, "default-page"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_user/user,/_role/role0,/_group/group,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); @@ -411,13 +419,13 @@ locator.add("hostname", true, false, "dash"); locator.add("user", true, false, "joe"); locator.add("page", false, false, "home"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString()); locator = new JetspeedProfileLocator(); locator.init(null, "/"); locator.add("navigation", false, true, "subsite-root"); - profileView = new SiteView(pageManager, locator); + profileView = new SiteView(pageManager, locator, false); assertEquals("/__subsite-root", profileView.getSearchPathsString()); Map locators = new HashMap(); locator = new JetspeedProfileLocator(); @@ -431,7 +439,7 @@ locator.add("navigation", false, true, "/"); locator.add("group", true, false, "group"); locators.put("alternate-locator-name", locator); - profileView = new SiteView(pageManager, locators); + profileView = new SiteView(pageManager, locators, false); assertEquals("/_role/role0,/_role/role1,/_user/user,/_group/group,/", profileView.getSearchPathsString()); rootFolderProxy = profileView.getRootFolderProxy(); assertNotNull(rootFolderProxy); @@ -483,6 +491,21 @@ assertNotNull(requestPageProxy); assertEquals("page2.psml", requestPageProxy.getName()); assertEquals("/_user/user/page2.psml", extractFileSystemPathFromId(requestPageProxy.getId())); + PageTemplate requestPageTemplateProxy = requestContext.getPageTemplate(); + assertNotNull(requestPageTemplateProxy); + assertEquals("template.tpsml", requestPageTemplateProxy.getName()); + assertEquals("/template.tpsml", extractFileSystemPathFromId(requestPageTemplateProxy.getId())); + Map requestFragmentDefinitionProxies = requestContext.getFragmentDefinitions(); + assertNotNull(requestFragmentDefinitionProxies); + assertEquals(2, requestFragmentDefinitionProxies.size()); + FragmentDefinition requestFragmentDefinitionProxy0 = (FragmentDefinition)requestFragmentDefinitionProxies.get("fake-fragment-definition-0"); + assertNotNull(requestFragmentDefinitionProxy0); + assertEquals("definition0.fpsml", requestFragmentDefinitionProxy0.getName()); + assertEquals("/definition0.fpsml", extractFileSystemPathFromId(requestFragmentDefinitionProxy0.getId())); + FragmentDefinition requestFragmentDefinitionProxy1 = (FragmentDefinition)requestFragmentDefinitionProxies.get("fake-fragment-definition-1"); + assertNotNull(requestFragmentDefinitionProxy1); + assertEquals("definition1.fpsml", requestFragmentDefinitionProxy1.getName()); + assertEquals("/_user/user/definition1.fpsml", extractFileSystemPathFromId(requestFragmentDefinitionProxy1.getId())); Folder requestFolderProxy = requestContext.getFolder(); assertNotNull(requestFolderProxy); assertEquals("/", requestFolderProxy.getName()); @@ -637,9 +660,10 @@ assertNotNull(requestContext); Set customMenuNames = requestContext.getCustomMenuNames(); assertNotNull(customMenuNames); - assertEquals(2, customMenuNames.size()); + assertEquals(3, customMenuNames.size()); assertTrue(customMenuNames.contains("top")); assertTrue(customMenuNames.contains("bread-crumbs")); + assertTrue(customMenuNames.contains("template-test")); Menu topMenu = requestContext.getMenu("top"); assertNotNull(topMenu); assertEquals(MenuElement.MENU_ELEMENT_TYPE, topMenu.getElementType()); @@ -740,6 +764,15 @@ assertEquals("/", ((MenuOption)breadCrumbsElements.get(0)).getUrl()); assertEquals(MenuOption.FOLDER_OPTION_TYPE, ((MenuOption)breadCrumbsElements.get(0)).getType()); assertTrue(((MenuImpl)breadCrumbsMenu).isElementRelative()); + Menu templateTestMenu = requestContext.getMenu("template-test"); + assertNotNull(templateTestMenu); + assertEquals("template-test", templateTestMenu.getName()); + assertFalse(templateTestMenu.isEmpty()); + List templateTestElements = templateTestMenu.getElements(); + assertNotNull(templateTestElements); + assertEquals(1, templateTestElements.size()); + assertTrue(templateTestElements.get(0) instanceof MenuOption); + assertEquals("/page1.psml", ((MenuOption)templateTestElements.get(0)).getUrl()); // second request at /folder0 locator = new JetspeedProfileLocator(); @@ -904,6 +937,33 @@ assertEquals("tabs", pagesMenu.getSkin()); assertTrue(((MenuImpl)pagesMenu).isElementRelative()); + // fourth request at /page0.psml + locator = new JetspeedProfileLocator(); + locator.init(null, "/page0.psml"); + locator.add("user", true, false, "user"); + locator.add("mediatype", true, false, "html"); + locators = new HashMap(); + locators.put(ProfileLocator.PAGE_LOCATOR, locator); + locator = new JetspeedProfileLocator(); + locator.init(null, "/page0.psml"); + locator.add("role", true, false, "role0"); + locators.put("role", locator); + locator = new JetspeedProfileLocator(); + locator.init(null, "/page0.psml"); + locator.add("group", true, false, "group"); + locators.put("group", locator); + requestContext = sessionContext.newRequestContext(locators); + assertNotNull(requestContext); + Menu templateTestMenu2 = requestContext.getMenu("template-test"); + assertNotNull(templateTestMenu2); + assertEquals("template-test", templateTestMenu2.getName()); + assertFalse(templateTestMenu2.isEmpty()); + List templateTestElements2 = templateTestMenu2.getElements(); + assertNotNull(templateTestElements2); + assertEquals(1, templateTestElements2.size()); + assertTrue(templateTestElements2.get(0) instanceof MenuOption); + assertEquals("/page2.psml", ((MenuOption)templateTestElements2.get(0)).getUrl()); + // new request at /folder1 locator = new JetspeedProfileLocator(); locator.init(null, "/folder1");
Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/definition1.fpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/definition1.fpsml?rev=882653&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/definition1.fpsml (added) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/definition1.fpsml Fri Nov 20 17:50:11 2009 @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You 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. +--> + +<fragment-definition id="_user-user-definition1" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"> + + <title>/definition1.fpsml</title> + <fragment id="fake-fragment-definition-1" name="fake-fragment-definition-1" type="fake-fragment-definition-1"/> +</fragment-definition> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/page2.psml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/page2.psml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/page2.psml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/_user/user/page2.psml Fri Nov 20 17:50:11 2009 @@ -24,6 +24,7 @@ <title>/page2.psml</title> <menu name="top" options="/" depth="1" skin="dhtml-pull-down"/> - <fragment id="fake" name="fake" type="fake"/> - + <fragment id="fake" name="fake" type="fake"> + <fragment-reference id="fake-fragment-reference" refid="fake-fragment-definition-1"/> + </fragment> </page> Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition0.fpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition0.fpsml?rev=882653&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition0.fpsml (added) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition0.fpsml Fri Nov 20 17:50:11 2009 @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You 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. +--> + +<fragment-definition id="definition0" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"> + + <title>/definition0.fpsml</title> + <fragment id="fake-fragment-definition-0" name="fake-fragment-definition-0" type="fake-fragment-definition-0"/> +</fragment-definition> Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition1.fpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition1.fpsml?rev=882653&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition1.fpsml (added) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/definition1.fpsml Fri Nov 20 17:50:11 2009 @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You 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. +--> + +<fragment-definition id="definition1" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"> + + <title>/definition1.fpsml</title> + <fragment id="fake-fragment-definition-1" name="fake-fragment-definition-1" type="fake-fragment-definition-1"/> +</fragment-definition> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/folder.metadata URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/folder.metadata?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/folder.metadata (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/folder.metadata Fri Nov 20 17:50:11 2009 @@ -34,5 +34,5 @@ <document-order>link0.link</document-order> <menu name="bread-crumbs" options="./" paths="true"/> - + <menu name="template-test" options="/page0.psml"/> </folder> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page0.psml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page0.psml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page0.psml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page0.psml Fri Nov 20 17:50:11 2009 @@ -24,4 +24,6 @@ <title>/page0.psml</title> <fragment id="fake" name="fake" type="fake"/> + + <menu name="template-test" options="/page2.psml"/> </page> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page2.psml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page2.psml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page2.psml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/page2.psml Fri Nov 20 17:50:11 2009 @@ -22,6 +22,7 @@ xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"> <title>/page2.psml</title> - <fragment id="fake" name="fake" type="fake"/> - + <fragment id="fake" name="fake" type="fake"> + <fragment-reference id="fake-fragment-reference" refid="fake-fragment-definition-1"/> + </fragment> </page> Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/template.tpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/template.tpsml?rev=882653&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/template.tpsml (added) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/template.tpsml Fri Nov 20 17:50:11 2009 @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You 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. +--> + +<page-template id="template" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"> + + <title>/template.tpsml</title> + <fragment id="fake-template" name="fake-template" type="fake-template"> + <page-fragment id="fake-page-fragment"/> + <fragment-reference id="fake-fragment-reference" refid="fake-fragment-definition-0"/> + </fragment> + + <menu name="template-test" options="/page1.psml"/> +</page-template> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityConstraintsBehavior.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityConstraintsBehavior.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityConstraintsBehavior.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityConstraintsBehavior.java Fri Nov 20 17:50:11 2009 @@ -18,16 +18,17 @@ import java.security.Principal; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.jetspeed.Jetspeed; import org.apache.jetspeed.administration.PortalConfiguration; -import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.layout.PortletActionSecurityBehavior; import org.apache.jetspeed.om.page.ContentPage; import org.apache.jetspeed.page.PageManager; +import org.apache.jetspeed.pipeline.valve.PageProfilerValve; import org.apache.jetspeed.request.RequestContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Abstracted behavior of security checks for portlet actions * @@ -41,13 +42,13 @@ protected Logger log = LoggerFactory.getLogger(PortletActionSecurityConstraintsBehavior.class); protected String guest = "guest"; - public PortletActionSecurityConstraintsBehavior(PageManager pageManager, PageLayoutComponent pageLayoutComponent) + public PortletActionSecurityConstraintsBehavior(PageManager pageManager, PageProfilerValve profilerValve) { - this( pageManager, pageLayoutComponent, Boolean.FALSE ); + this( pageManager, profilerValve, Boolean.FALSE ); } - public PortletActionSecurityConstraintsBehavior(PageManager pageManager, PageLayoutComponent pageLayoutComponent, Boolean enableCreateUserPagesFromRolesOnEdit ) + public PortletActionSecurityConstraintsBehavior(PageManager pageManager, PageProfilerValve profilerValve, Boolean enableCreateUserPagesFromRolesOnEdit ) { - super( pageManager, pageLayoutComponent, enableCreateUserPagesFromRolesOnEdit ); + super( pageManager, profilerValve, enableCreateUserPagesFromRolesOnEdit ); PortalConfiguration config = Jetspeed.getConfiguration(); if (config != null) { Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathBehavior.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathBehavior.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathBehavior.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathBehavior.java Fri Nov 20 17:50:11 2009 @@ -16,16 +16,12 @@ */ package org.apache.jetspeed.layout.impl; -import java.util.Locale; - import org.apache.jetspeed.JetspeedActions; -import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.layout.PortletActionSecurityBehavior; import org.apache.jetspeed.om.folder.Folder; import org.apache.jetspeed.om.page.ContentPage; -import org.apache.jetspeed.om.page.Page; import org.apache.jetspeed.page.PageManager; -import org.apache.jetspeed.profiler.impl.ProfilerValveImpl; +import org.apache.jetspeed.pipeline.valve.PageProfilerValve; import org.apache.jetspeed.request.RequestContext; import org.slf4j.Logger; @@ -41,17 +37,17 @@ { protected Logger log = LoggerFactory.getLogger(PortletActionSecurityPathBehavior.class); protected PageManager pageManager; - protected PageLayoutComponent pageLayoutComponent; + protected PageProfilerValve profilerValve; private boolean enableCreateUserPagesFromRolesOnEdit; - public PortletActionSecurityPathBehavior(PageManager pageManager, PageLayoutComponent pageLayoutComponent) + public PortletActionSecurityPathBehavior(PageManager pageManager, PageProfilerValve profilerValve) { - this( pageManager, pageLayoutComponent, Boolean.FALSE ) ; + this( pageManager, profilerValve, Boolean.FALSE ) ; } - public PortletActionSecurityPathBehavior(PageManager pageManager, PageLayoutComponent pageLayoutComponent, Boolean enableCreateUserPagesFromRolesOnEdit ) + public PortletActionSecurityPathBehavior(PageManager pageManager, PageProfilerValve profilerValve, Boolean enableCreateUserPagesFromRolesOnEdit ) { this.pageManager = pageManager; - this.pageLayoutComponent = pageLayoutComponent; + this.profilerValve = profilerValve; this.enableCreateUserPagesFromRolesOnEdit = ( enableCreateUserPagesFromRolesOnEdit == null ? false : enableCreateUserPagesFromRolesOnEdit.booleanValue() ); } @@ -101,18 +97,10 @@ if ( isPageQualifiedForCreateNewPageOnEdit( pagePath ) ) { // create user home pages - String pageName = contentPage.getName(); + String pageName = contentPage.getName(); pageManager.createUserHomePagesFromRoles(context.getSubject()); - Page page = pageManager.getPage(Folder.USER_FOLDER - + context.getRequest().getUserPrincipal().getName() - + Folder.PATH_SEPARATOR - + pageName); // was Folder.FALLBACK_DEFAULT_PAGE prior to 2007-11-06 - - // TODO validate effectiveness of request context reset below - context.setPage(pageLayoutComponent.newContentPage(page)); - context.getRequest().removeAttribute(ProfilerValveImpl.PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY); - context.getRequest().removeAttribute(ProfilerValveImpl.PROFILED_PAGE_CONTEXT_ATTR_KEY); - context.getRequest().getSession().removeAttribute(ProfilerValveImpl.PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY); + // update request context with new profiler valve invocation + profilerValve.invoke(context, null); } } catch (Exception e) Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathMergeBehavior.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathMergeBehavior.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathMergeBehavior.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletActionSecurityPathMergeBehavior.java Fri Nov 20 17:50:11 2009 @@ -22,17 +22,18 @@ import javax.security.auth.Subject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.layout.PortletActionSecurityBehavior; import org.apache.jetspeed.page.PageManager; +import org.apache.jetspeed.pipeline.valve.PageProfilerValve; import org.apache.jetspeed.request.RequestContext; import org.apache.jetspeed.security.Role; import org.apache.jetspeed.security.SubjectHelper; import org.apache.jetspeed.security.User; import org.apache.jetspeed.security.impl.TransientRole; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Abstracted behavior of security checks when used with the * profiling rule "user-rolecombo". This behavior merges @@ -47,13 +48,13 @@ { protected Logger log = LoggerFactory.getLogger(PortletActionSecurityPathMergeBehavior.class); - public PortletActionSecurityPathMergeBehavior( PageManager pageManager, PageLayoutComponent pageLayoutComponent ) + public PortletActionSecurityPathMergeBehavior( PageManager pageManager, PageProfilerValve profilerValve ) { - this( pageManager, pageLayoutComponent, Boolean.FALSE ); + this( pageManager, profilerValve, Boolean.FALSE ); } - public PortletActionSecurityPathMergeBehavior( PageManager pageManager, PageLayoutComponent pageLayoutComponent, Boolean enableCreateUserPagesFromRolesOnEdit ) + public PortletActionSecurityPathMergeBehavior( PageManager pageManager, PageProfilerValve profilerValve, Boolean enableCreateUserPagesFromRolesOnEdit ) { - super( pageManager, pageLayoutComponent, enableCreateUserPagesFromRolesOnEdit ); + super( pageManager, profilerValve, enableCreateUserPagesFromRolesOnEdit ); } public Subject getSubject(RequestContext context) Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java Fri Nov 20 17:50:11 2009 @@ -29,6 +29,7 @@ import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.om.page.ContentPage; import org.apache.jetspeed.om.page.Page; +import org.apache.jetspeed.om.page.PageTemplate; import org.apache.jetspeed.page.document.NodeNotFoundException; import org.apache.jetspeed.pipeline.PipelineException; import org.apache.jetspeed.pipeline.valve.AbstractValve; @@ -219,11 +220,9 @@ // and is now being reloaded in a new server), it must be // replaced with a newly created session context PortalSiteSessionContext sessionContext = (PortalSiteSessionContext)request.getSessionAttribute(PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY); - String pipeline = request.getPipeline().getName(); if ((sessionContext == null) || !sessionContext.isValid()) { sessionContext = portalSite.newSessionContext(); - sessionContext.setPipeline(pipeline); request.setSessionAttribute(PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY, sessionContext); } @@ -237,7 +236,10 @@ // request context here does not select the page or build // menus: that is done when the request context is // accessed subsequently - PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, requestFallback, useHistory); + String pipeline = request.getPipeline().getName(); + boolean forceReservedFoldersVisibleInView = (pipeline.equals(PortalReservedParameters.CONFIG_PIPELINE_NAME) || + pipeline.equals(PortalReservedParameters.DESKTOP_CONFIG_PIPELINE_NAME)); + PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, requestFallback, useHistory, forceReservedFoldersVisibleInView); request.setAttribute(PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY, requestContext); // additionally save request context under legacy key @@ -254,7 +256,9 @@ // the managed page here selects the current page for the // request Page managedPage = requestContext.getManagedPage(); - ContentPage contentPage = pageLayoutComponent.newContentPage(managedPage); + PageTemplate managedPageTemplate = requestContext.getManagedPageTemplate(); + Map managedFragmentDefinitions = requestContext.getManagedFragmentDefinitions(); + ContentPage contentPage = pageLayoutComponent.newContentPage(managedPage, managedPageTemplate, managedFragmentDefinitions); request.setPage(contentPage); request.setProfileLocators(requestContext.getLocators()); @@ -262,7 +266,10 @@ } // continue - context.invokeNext(request); + if (context != null) + { + context.invokeNext(request); + } } catch (SecurityException se) { Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java Fri Nov 20 17:50:11 2009 @@ -41,10 +41,11 @@ import org.apache.jetspeed.container.url.PortalURL; import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.om.page.ContentFragment; -import org.apache.jetspeed.om.page.impl.ContentFragmentImpl; import org.apache.jetspeed.om.page.ContentPage; -import org.apache.jetspeed.om.page.impl.ContentPageImpl; import org.apache.jetspeed.om.page.Fragment; +import org.apache.jetspeed.om.page.Page; +import org.apache.jetspeed.om.page.PageTemplate; +import org.apache.jetspeed.om.page.impl.ContentFragmentImpl; import org.apache.jetspeed.om.portlet.Language; import org.apache.jetspeed.om.portlet.PortletDefinition; import org.apache.jetspeed.om.window.impl.PortletWindowImpl; @@ -583,7 +584,10 @@ } PortalSiteSessionContext sessionContext = (PortalSiteSessionContext)getSessionAttribute(ProfilerValveImpl.PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY); PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, true, true); - ContentPage cpage = pageLayoutComponent.newContentPage(requestContext.getManagedPage()); + Page managedPage = requestContext.getManagedPage(); + PageTemplate managedPageTemplate = requestContext.getManagedPageTemplate(); + Map managedFragmentDefinitions = requestContext.getManagedFragmentDefinitions(); + ContentPage cpage = pageLayoutComponent.newContentPage(managedPage, managedPageTemplate, managedFragmentDefinitions); //System.out.println("page is " + cpage.getPath()); this.setPage(realPage); this.setPath(pathSave); Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml Fri Nov 20 17:50:11 2009 @@ -34,7 +34,7 @@ <ref bean="org.apache.jetspeed.page.PageManager"/> </constructor-arg> <constructor-arg index='1'> - <ref bean="org.apache.jetspeed.layout.PageLayoutComponent"/> + <ref bean="profilerValve"/> </constructor-arg> </bean--> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml Fri Nov 20 17:50:11 2009 @@ -34,7 +34,7 @@ <ref bean="org.apache.jetspeed.page.PageManager"/> </constructor-arg> <constructor-arg index='1'> - <ref bean="org.apache.jetspeed.layout.PageLayoutComponent"/> + <ref bean="profilerValve"/> </constructor-arg> </bean--> Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java Fri Nov 20 17:50:11 2009 @@ -200,7 +200,7 @@ PageLayoutComponent pageLayoutComponent = (PageLayoutComponent) engine.getComponentManager().getComponent(PageLayoutComponent.class); assertNotNull(page); - requestContext.setPage(pageLayoutComponent.newContentPage(page)); + requestContext.setPage(pageLayoutComponent.newContentPage(page, null, null)); if (!isParallelMode) { pageAggregator.build(requestContext); Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java Fri Nov 20 17:50:11 2009 @@ -16,12 +16,12 @@ */ package org.apache.jetspeed.layout; -import java.util.Locale; import java.util.Map; import org.apache.jetspeed.om.page.ContentFragment; import org.apache.jetspeed.om.page.ContentPage; import org.apache.jetspeed.om.page.Page; +import org.apache.jetspeed.om.page.PageTemplate; /** * Page layout component interface. @@ -106,23 +106,37 @@ void incrementInDocumentOrder(ContentPage contentPage); /** + * Move fragment in page to another layout fragment in the same page. + * + * @param contentPage content page context + * @param fragmentId fragment id of fragment to move + * @param toFragmentId fragment id of new parent layout fragment + */ + void moveFragment(ContentPage contentPage, String fragmentId, String toFragmentId); + + /** * Move fragment from current parent layout fragment to another * layout fragment in the same page. * * @param contentPage content page context * @param fragmentId fragment id of fragment to move - * @param fromFragmentId fragment id of current parent layout fragment + * @param fromFragmentId fragment id of current parent layout fragment or + * or null if fragment to be found anywhere in page * @param toFragmentId fragment id of new parent layout fragment */ void moveFragment(ContentPage contentPage, String fragmentId, String fromFragmentId, String toFragmentId); /** - * Construct a new content page hierarchy from PSML page. + * Construct a new content page hierarchy from PSML page, page + * templates, and fragment definitions. * * @param page PSML page to construct content page from + * @param pageTemplate PSML page template to merge into content page + * @param fragmentDefinitions PSML fragment definitions referenced + * by page and/or page template * @return new content page */ - ContentPage newContentPage(Page page); + ContentPage newContentPage(Page page, PageTemplate pageTemplate, Map fragmentDefinitions); /** * Create a new sibling folder with specified configuration and Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java Fri Nov 20 17:50:11 2009 @@ -68,4 +68,13 @@ * @return the list of found Fragment objects or null if not found */ List getFragmentsByName(String name); + + /** + * Retrieves the fragments contained within this page, with the + * specified interface. + * + * @param interfaceFilter the fragment interface to match or null for all + * @return the list of found Fragment objects or null if not found + */ + List getFragmentsByInterface(Class interfaceFilter); } Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java Fri Nov 20 17:50:11 2009 @@ -356,6 +356,15 @@ */ PageLayoutComponent getPageLayoutComponent(); + /** + * Return is locked flag indicating whether this fragment + * was originally merged from a page template or fragment + * definition. + * + * @return locked flag + */ + boolean isLocked(); + /************** PageLayoutComponent Operations **************/ /** Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java Fri Nov 20 17:50:11 2009 @@ -18,6 +18,7 @@ import java.util.List; import java.util.Locale; +import java.util.Map; import org.apache.jetspeed.layout.PageLayoutComponent; import org.apache.jetspeed.om.portlet.GenericMetadata; @@ -187,6 +188,22 @@ Page getPage(); /** + * Access underlying concrete persistent page template or + * null if page is transient or constructed dynamically. + * + * @return persistent page template or null + */ + PageTemplate getPageTemplate(); + + /** + * Access underlying concrete persistent fragment definitions + * map or null if page is transient or constructed dynamically. + * + * @return persistent fragment definitions or null + */ + Map getFragmentDefinitions(); + + /** * Returns the PageLayoutComponent that generated this ContentPage * * @return PageLayoutComponent instance. Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java Fri Nov 20 17:50:11 2009 @@ -21,6 +21,7 @@ import org.apache.jetspeed.om.folder.Folder; import org.apache.jetspeed.om.page.Page; +import org.apache.jetspeed.om.page.PageTemplate; import org.apache.jetspeed.page.document.NodeNotFoundException; import org.apache.jetspeed.page.document.NodeSet; @@ -57,6 +58,28 @@ Page getManagedPage() throws NodeNotFoundException; /** + * getManagedPageTemplate - get request profiled concrete page + * template instance as managed by the + * page manager + * + * @return page template + * @throws NodeNotFoundException if page not found + * @throws SecurityException if page view access not granted + */ + PageTemplate getManagedPageTemplate() throws NodeNotFoundException; + + /** + * getManagedFragmentDefinitions - get map of request profiled concrete + * fragment definition instances as + * managed by the page manager + * + * @return map of fragment definitions by id + * @throws NodeNotFoundException if page or fragment definition not found + * @throws SecurityException if page view access not granted + */ + Map getManagedFragmentDefinitions() throws NodeNotFoundException; + + /** * getPage - get request profiled page proxy * * @return page proxy @@ -66,6 +89,25 @@ Page getPage() throws NodeNotFoundException; /** + * getPageTemplate - get page template proxy for request profiled page + * + * @return page template proxy if found or null + * @throws NodeNotFoundException if page not found + * @throws SecurityException if page view access not granted + */ + PageTemplate getPageTemplate() throws NodeNotFoundException; + + /** + * getFragmentDefinitions - get fragment definition proxy map for request + * profiled page and page template + * + * @return map of fragment definition proxies by fragment id + * @throws NodeNotFoundException if page not found + * @throws SecurityException if page view access not granted + */ + Map getFragmentDefinitions() throws NodeNotFoundException; + + /** * getFolder - get folder proxy relative to request profiled page * * @return page folder proxy Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java Fri Nov 20 17:50:11 2009 @@ -60,6 +60,19 @@ PortalSiteRequestContext newRequestContext(Map requestProfileLocators, boolean requestFallback, boolean useHistory); /** + * newRequestContext - create a new request context instance + * + * @param requestProfileLocators request profile locators + * @param requestFallback flag specifying whether to fallback to root folder + * if locators do not select a page or access is forbidden + * @param useHistory flag indicating whether to use visited page + * history to select default page per site folder + * @param forceReservedVisible force reserved/hidden folders visible in site view + * @return new request context instance + */ + PortalSiteRequestContext newRequestContext(Map requestProfileLocators, boolean requestFallback, boolean useHistory, boolean forceReservedVisible); + + /** * getPageManager - return PageManager component instance * * @return PageManager instance @@ -73,18 +86,6 @@ * * @return valid context status */ - boolean isValid(); - - /** - * set which pipeline this context is stored for - * - * @param pipeline - */ - void setPipeline(String pipeline); - - /** - * get which pipeline this context is stored for - */ - String getPipeline(); + boolean isValid(); } Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml?rev=882653&r1=882652&r2=882653&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml Fri Nov 20 17:50:11 2009 @@ -42,7 +42,7 @@ <ref bean="org.apache.jetspeed.page.PageManager" /> </constructor-arg> <constructor-arg index='1'> - <ref bean="org.apache.jetspeed.layout.PageLayoutComponent" /> + <ref bean="profilerValve" /> </constructor-arg> <constructor-arg index='2'> <ref bean="EnableCreateUserPagesFromRolesOnEdit" /> --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org