Package org.apache.jetspeed.portalsite.view

Examples of org.apache.jetspeed.portalsite.view.SiteView


        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        SiteView profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString());
       
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("navigation", false, true, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("role", true, false, "user");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/", profileView.getSearchPathsString());
 
        locator = new JetspeedProfileLocator();
        //locator.init(null, "/__subsite-root");
        locator.init(null, "/");       
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("user", true, false, "sublocal");
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("role", true, false, "somerole");
        locator.add("path", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root", profileView.getSearchPathsString());                      
    }
View Full Code Here


     * @throws Exception
     */
    public void testSiteView() throws Exception
    {
        // test degenerate SiteView
        SiteView baseView = new SiteView(pageManager);
        assertEquals("/", baseView.getSearchPathsString());
        Folder rootFolderProxy = baseView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("root", rootFolderProxy.getTitle());
        assertEquals("/", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(4, rootFolderProxy.getFolders().size());
        Iterator foldersIter = rootFolderProxy.getFolders().iterator();
        assertEquals("folder0", ((Folder)foldersIter.next()).getName());
        assertEquals("folder1", ((Folder)foldersIter.next()).getName());
        assertEquals("folder2", ((Folder)foldersIter.next()).getName());
        assertEquals("folder3", ((Folder)foldersIter.next()).getName());
        assertEquals(4, rootFolderProxy.getPages().size());
        Iterator pagesIter = rootFolderProxy.getPages().iterator();
        assertEquals("page2.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page1.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page0.psml", ((Page)pagesIter.next()).getName());
        assertEquals("hidden.psml", ((Page)pagesIter.next()).getName());
        assertEquals(2, rootFolderProxy.getLinks().size());
        Iterator linksIter = rootFolderProxy.getLinks().iterator();
        assertEquals("link1.link", ((Link)linksIter.next()).getName());
        assertEquals("link0.link", ((Link)linksIter.next()).getName());
        Page rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        Page rootHiddenProxy = rootFolderProxy.getPage("hidden.psml");
        assertNotNull(rootHiddenProxy);
        assertEquals("hidden.psml", rootHiddenProxy.getName());
        assertTrue(rootHiddenProxy.isHidden());
        Link rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        Folder rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        Page folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));

        // test SiteView access by path
        Folder rootFolderProxyByPath = (Folder)baseView.getNodeProxy("/", null, false, false);
        assertNotNull(rootFolderProxyByPath);
        assertEquals(rootFolderProxy, rootFolderProxyByPath);
        Folder rootFolder0ProxyByPath = (Folder)baseView.getNodeProxy("/folder0/", null, false, false);
        assertNotNull(rootFolder0ProxyByPath);
        assertEquals(rootFolder0Proxy, rootFolder0ProxyByPath);
        Page folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("/folder0/page0.psml", null, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("page0.psml", rootFolder0Proxy, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        List rootPageProxiesByPath = baseView.getNodeProxies("/page?.psml", null, false, false);
        assertNotNull(rootPageProxiesByPath);
        assertEquals(3,rootPageProxiesByPath.size());
        assertTrue(rootPageProxiesByPath.contains(rootPage0Proxy));
        List rootFolderProxiesByPath = baseView.getNodeProxies("/*/", null, false, false);
        assertNotNull(rootFolderProxiesByPath);
        assertEquals(4,rootFolderProxiesByPath.size());
        assertTrue(rootFolderProxiesByPath.contains(rootFolder0Proxy));
        List folderPageProxiesByPath = baseView.getNodeProxies("*/p*[0-9].psml", rootFolderProxy, false, false);
        assertNotNull(folderPageProxiesByPath);
        assertEquals(2,folderPageProxiesByPath.size());
        assertTrue(folderPageProxiesByPath.contains(folder0Page0Proxy));

        // test aggregating SiteView
        SiteView aggregateView = new SiteView(pageManager, "/_user/user,/_role/role0,/_group/group,/");
        assertEquals("/_user/user,/_role/role0,/_group/group,/", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_user/user", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(4, rootFolderProxy.getFolders().size());
        assertEquals(4, rootFolderProxy.getPages().size());
        assertEquals(2, rootFolderProxy.getLinks().size());
        rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        List rootPage0ProxyMenus = rootPage0Proxy.getMenuDefinitions();
        assertNotNull(rootPage0ProxyMenus);
        assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage0ProxyMenus.size());
        Iterator menusIter = rootPage0ProxyMenus.iterator();
        MenuDefinition rootPage0ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage0ProxyTopMenu.getName());
        assertEquals("/", rootPage0ProxyTopMenu.getOptions());
        assertEquals(2, rootPage0ProxyTopMenu.getDepth());
        assertEquals("dhtml-pull-down", rootPage0ProxyTopMenu.getSkin());
        MenuDefinition rootPage0ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage0ProxyBreadCrumbMenu.getName());
        assertEquals("./", rootPage0ProxyBreadCrumbMenu.getOptions());
        assertEquals(true, rootPage0ProxyBreadCrumbMenu.isPaths());
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        Page rootPage2Proxy = rootFolderProxy.getPage("page2.psml");
        assertNotNull(rootPage2Proxy);
        assertEquals(rootFolderProxy, rootPage2Proxy.getParent());
        assertEquals("page2.psml", rootPage2Proxy.getName());
        assertEquals("/_user/user/page2.psml", extractFileSystemPathFromId(rootPage2Proxy.getId()));
        List rootPage2ProxyMenus = rootPage2Proxy.getMenuDefinitions();
        assertNotNull(rootPage2ProxyMenus);
        assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage2ProxyMenus.size());
        menusIter = rootPage2ProxyMenus.iterator();
        MenuDefinition rootPage2ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage2ProxyTopMenu.getName());
        assertEquals("/", rootPage2ProxyTopMenu.getOptions());
        assertEquals(1, rootPage2ProxyTopMenu.getDepth());
        MenuDefinition rootPage2ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage2ProxyBreadCrumbMenu.getName());
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/_group/group/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals(null, rootFolder0Proxy.getFolders());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("folder0", rootFolder0Proxy.getTitle());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));
        Folder rootFolder1Proxy = rootFolderProxy.getFolder("folder1");
        assertNotNull(rootFolder1Proxy);
        assertEquals(rootFolderProxy, rootFolder1Proxy.getParent());
        assertEquals(2, rootFolder1Proxy.getPages().size());
        assertEquals(null, rootFolder1Proxy.getLinks());
        assertEquals(null, rootFolder1Proxy.getFolders());
        assertEquals("folder1", rootFolder1Proxy.getName());
        assertEquals("group folder1", rootFolder1Proxy.getTitle());
        assertEquals("/_user/user/folder1", extractFileSystemPathFromId(rootFolder1Proxy.getId()));

        // test degenerate aggregating SiteView
        aggregateView = new SiteView(pageManager, "/__subsite-root");
        assertEquals("/__subsite-root", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("subsite root", rootFolderProxy.getTitle());
        assertEquals("/__subsite-root", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(null, rootFolderProxy.getFolders());
        assertEquals(1, rootFolderProxy.getPages().size());
        assertEquals(1, rootFolderProxy.getLinks().size());

        // test SiteView construction using profile locators
        JetspeedProfileLocator locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        SiteView profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/_user/user,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("page", false, false, "default-page");
        locator.add("user", true, false, "user");
        locator.add("mediatype", true, false, "html");
        locator.add("language", true, false, "en");
        locator.add("country", true, false, "US");
        profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/_role/role0,/_role/role1,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("role", true, false, "role0");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locator.add("page", false, false, "default-page");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_user/user,/_role/role0,/_group/group,/", profileView.getSearchPathsString());

        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/__subsite-root", profileView.getSearchPathsString());
        Map locators = new HashMap();
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("role", true, false, "role0");
        locator.add("role", true, false, "role1");
        locators.put(ProfileLocator.PAGE_LOCATOR, locator);
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locators.put("alternate-locator-name", locator);
        profileView = new SiteView(pageManager, locators);
        assertEquals("/_role/role0,/_role/role1,/_user/user,/_group/group,/", profileView.getSearchPathsString());
        rootFolderProxy = profileView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_role/role0", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(ProfileLocator.PAGE_LOCATOR, extractLocatorNameFromProxy(rootFolderProxy));
View Full Code Here

        JetspeedProfileLocator locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        SiteView profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString());
        assertEquals("/_hostname/dash/_user/joe", profileView.getUserFolderPath());
        assertEquals("/_hostname/dash", profileView.getBaseFolderPath());

        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "new-host");
        locator.add("user", true, false, "new-user");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/", profileView.getSearchPathsString());
        assertEquals("/_hostname/new-host/_user/new-user", profileView.getUserFolderPath());
        assertEquals("/_hostname/new-host", profileView.getBaseFolderPath());
      
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("navigation", false, true, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("role", true, false, "user");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/", profileView.getSearchPathsString());
        assertEquals("/_hostname/dash/_user/joe", profileView.getUserFolderPath());
        assertEquals("/_hostname/dash", profileView.getBaseFolderPath());
 
        locator = new JetspeedProfileLocator();
        //locator.init(null, "/__subsite-root");
        locator.init(null, "/");       
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("user", true, false, "sublocal");
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("role", true, false, "somerole");
        locator.add("path", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root", profileView.getSearchPathsString());                      
        assertEquals("/__subsite-root/_hostname/localhost/_user/sublocal", profileView.getUserFolderPath());
        assertEquals("/__subsite-root/_hostname/localhost", profileView.getBaseFolderPath());
    }
View Full Code Here

     * @throws Exception
     */
    public void testSiteView() throws Exception
    {
        // test degenerate SiteView
        SiteView baseView = new SiteView(pageManager);
        assertEquals("/", baseView.getSearchPathsString());
        Folder rootFolderProxy = baseView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("root", rootFolderProxy.getTitle());
        assertEquals("/", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(5, rootFolderProxy.getFolders().size());
        Iterator foldersIter = rootFolderProxy.getFolders().iterator();
        assertEquals("folder0", ((Folder)foldersIter.next()).getName());
        assertEquals("folder1", ((Folder)foldersIter.next()).getName());
        assertEquals("folder2", ((Folder)foldersIter.next()).getName());
        assertEquals("folder3", ((Folder)foldersIter.next()).getName());
        assertEquals("folder4", ((Folder)foldersIter.next()).getName());
        assertEquals(4, rootFolderProxy.getPages().size());
        Iterator pagesIter = rootFolderProxy.getPages().iterator();
        assertEquals("page2.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page1.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page0.psml", ((Page)pagesIter.next()).getName());
        assertEquals("hidden.psml", ((Page)pagesIter.next()).getName());
        assertEquals(2, rootFolderProxy.getLinks().size());
        Iterator linksIter = rootFolderProxy.getLinks().iterator();
        assertEquals("link1.link", ((Link)linksIter.next()).getName());
        assertEquals("link0.link", ((Link)linksIter.next()).getName());
        Page rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        Page rootHiddenProxy = rootFolderProxy.getPage("hidden.psml");
        assertNotNull(rootHiddenProxy);
        assertEquals("hidden.psml", rootHiddenProxy.getName());
        assertTrue(rootHiddenProxy.isHidden());
        Link rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        Folder rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        Page folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));

        // test SiteView access by path
        Folder rootFolderProxyByPath = (Folder)baseView.getNodeProxy("/", null, false, false);
        assertNotNull(rootFolderProxyByPath);
        assertEquals(rootFolderProxy, rootFolderProxyByPath);
        Folder rootFolder0ProxyByPath = (Folder)baseView.getNodeProxy("/folder0/", null, false, false);
        assertNotNull(rootFolder0ProxyByPath);
        assertEquals(rootFolder0Proxy, rootFolder0ProxyByPath);
        Page folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("/folder0/page0.psml", null, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("page0.psml", rootFolder0Proxy, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        List rootPageProxiesByPath = baseView.getNodeProxies("/page?.psml", null, false, false);
        assertNotNull(rootPageProxiesByPath);
        assertEquals(3,rootPageProxiesByPath.size());
        assertTrue(rootPageProxiesByPath.contains(rootPage0Proxy));
        List rootFolderProxiesByPath = baseView.getNodeProxies("/*/", null, false, false);
        assertNotNull(rootFolderProxiesByPath);
        assertEquals(5,rootFolderProxiesByPath.size());
        assertTrue(rootFolderProxiesByPath.contains(rootFolder0Proxy));
        List folderPageProxiesByPath = baseView.getNodeProxies("*/p*[0-9].psml", rootFolderProxy, false, false);
        assertNotNull(folderPageProxiesByPath);
        assertEquals(2,folderPageProxiesByPath.size());
        assertTrue(folderPageProxiesByPath.contains(folder0Page0Proxy));

        // test aggregating SiteView
        SiteView aggregateView = new SiteView(pageManager, "/_user/user,/_role/role0,/_group/group,/");
        assertEquals("/_user/user,/_role/role0,/_group/group,/", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_user/user", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(5, rootFolderProxy.getFolders().size());
        assertEquals(4, rootFolderProxy.getPages().size());
        assertEquals(2, rootFolderProxy.getLinks().size());
        rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        List rootPage0ProxyMenus = rootPage0Proxy.getMenuDefinitions();
        assertNotNull(rootPage0ProxyMenus);
        assertEquals(3 + aggregateView.getStandardMenuNames().size(), rootPage0ProxyMenus.size());
        Iterator menusIter = rootPage0ProxyMenus.iterator();
        MenuDefinition rootPage0ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage0ProxyTopMenu.getName());
        assertEquals("/", rootPage0ProxyTopMenu.getOptions());
        assertEquals(2, rootPage0ProxyTopMenu.getDepth());
        assertEquals("dhtml-pull-down", rootPage0ProxyTopMenu.getSkin());
        MenuDefinition rootPage0ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage0ProxyBreadCrumbMenu.getName());
        assertEquals("./", rootPage0ProxyBreadCrumbMenu.getOptions());
        assertEquals(true, rootPage0ProxyBreadCrumbMenu.isPaths());
        MenuDefinition rootPage0SiteNavigationsMenu = (MenuDefinition)menusIter.next();
        assertEquals("site-navigations", rootPage0SiteNavigationsMenu.getName());       
        assertTrue(rootPage0SiteNavigationsMenu.isRegexp());       
        assertEquals("/*/,/*.psml", rootPage0SiteNavigationsMenu.getOptions());       
        assertEquals(-1, rootPage0SiteNavigationsMenu.getDepth());       
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        Page rootPage2Proxy = rootFolderProxy.getPage("page2.psml");
        assertNotNull(rootPage2Proxy);
        assertEquals(rootFolderProxy, rootPage2Proxy.getParent());
        assertEquals("page2.psml", rootPage2Proxy.getName());
        assertEquals("/_user/user/page2.psml", extractFileSystemPathFromId(rootPage2Proxy.getId()));
        List rootPage2ProxyMenus = rootPage2Proxy.getMenuDefinitions();
        assertNotNull(rootPage2ProxyMenus);
        assertEquals(3 + aggregateView.getStandardMenuNames().size(), rootPage2ProxyMenus.size());
        menusIter = rootPage2ProxyMenus.iterator();
        MenuDefinition rootPage2ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage2ProxyTopMenu.getName());
        assertEquals("/", rootPage2ProxyTopMenu.getOptions());
        assertEquals(1, rootPage2ProxyTopMenu.getDepth());
        MenuDefinition rootPage2ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage2ProxyBreadCrumbMenu.getName());
        MenuDefinition rootPage2SiteNavigationsMenu = (MenuDefinition)menusIter.next();
        assertEquals("site-navigations", rootPage2SiteNavigationsMenu.getName());       
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/_group/group/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals(null, rootFolder0Proxy.getFolders());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("folder0", rootFolder0Proxy.getTitle());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));
        Folder rootFolder1Proxy = rootFolderProxy.getFolder("folder1");
        assertNotNull(rootFolder1Proxy);
        assertEquals(rootFolderProxy, rootFolder1Proxy.getParent());
        assertEquals(2, rootFolder1Proxy.getPages().size());
        assertEquals(null, rootFolder1Proxy.getLinks());
        assertEquals(null, rootFolder1Proxy.getFolders());
        assertEquals("folder1", rootFolder1Proxy.getName());
        assertEquals("group folder1", rootFolder1Proxy.getTitle());
        assertEquals("/_user/user/folder1", extractFileSystemPathFromId(rootFolder1Proxy.getId()));
        assertEquals("/_user/user", aggregateView.getUserFolderPath());
        assertEquals("/", aggregateView.getBaseFolderPath());
        
        // test degenerate aggregating SiteView
        aggregateView = new SiteView(pageManager, "/__subsite-root");
        assertEquals("/__subsite-root", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("subsite root", rootFolderProxy.getTitle());
        assertEquals("/__subsite-root", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(null, rootFolderProxy.getFolders());
        assertEquals(1, rootFolderProxy.getPages().size());
        assertEquals(1, rootFolderProxy.getLinks().size());

        // test SiteView construction using profile locators
        JetspeedProfileLocator locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        SiteView profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/_user/user,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("page", false, false, "default-page");
        locator.add("user", true, false, "user");
        locator.add("mediatype", true, false, "html");
        locator.add("language", true, false, "en");
        locator.add("country", true, false, "US");
        profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/_role/role0,/_role/role1,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("role", true, false, "role0");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locator.add("page", false, false, "default-page");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_user/user,/_role/role0,/_group/group,/", profileView.getSearchPathsString());

        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        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);
        assertEquals("/__subsite-root", profileView.getSearchPathsString());
        Map locators = new HashMap();
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("role", true, false, "role0");
        locator.add("role", true, false, "role1");
        locators.put(ProfileLocator.PAGE_LOCATOR, locator);
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locators.put("alternate-locator-name", locator);
        profileView = new SiteView(pageManager, locators);
        assertEquals("/_role/role0,/_role/role1,/_user/user,/_group/group,/", profileView.getSearchPathsString());
        rootFolderProxy = profileView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_role/role0", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(ProfileLocator.PAGE_LOCATOR, extractLocatorNameFromProxy(rootFolderProxy));
        rootPage2Proxy = rootFolderProxy.getPage("page2.psml");
        assertNotNull(rootPage2Proxy);
        assertEquals("page2.psml", rootPage2Proxy.getName());
        assertEquals("/_role/role0/page2.psml", extractFileSystemPathFromId(rootPage2Proxy.getId()));
        assertEquals(ProfileLocator.PAGE_LOCATOR, extractLocatorNameFromProxy(rootPage2Proxy));
        rootFolder1Proxy = rootFolderProxy.getFolder("folder1");
        assertNotNull(rootFolder1Proxy);
        assertEquals("folder1", rootFolder1Proxy.getName());
        assertEquals("group folder1", rootFolder1Proxy.getTitle());
        assertEquals("/_user/user/folder1", extractFileSystemPathFromId(rootFolder1Proxy.getId()));
        assertEquals("alternate-locator-name", extractLocatorNameFromProxy(rootFolder1Proxy));
        Page folder1Page1Proxy = rootFolder1Proxy.getPage("page1.psml");
        assertNotNull(folder1Page1Proxy);
        assertEquals("page1.psml", folder1Page1Proxy.getName());
        assertEquals("/_group/group/folder1/page1.psml", extractFileSystemPathFromId(folder1Page1Proxy.getId()));
        assertEquals("alternate-locator-name", extractLocatorNameFromProxy(folder1Page1Proxy));
        assertEquals("/_user/user", profileView.getUserFolderPath());
        assertEquals("/", profileView.getBaseFolderPath());
    }
View Full Code Here

    {
        // save access exceptions
        SecurityException accessException = null;

        // valid SiteView required from session profile locators
        SiteView view = getSiteView();
        if (view != null)
        {
            // default request to root folder if not specified
            if (requestPath == null)
            {
                requestPath = Folder.PATH_SEPARATOR;
            }
           
            // log page request
            if (log.isDebugEnabled())
            {
                log.debug("Request page: request path=" + requestPath);
            }

            // lookup request path in view for viewable page or folder
            // nodes; note: directly requested pages/folders may be hidden
            // or not viewable
            Node requestNode = null;
            try
            {
                // try page or folder request url
                requestNode = view.getNodeProxy(requestPath, null, false, false);
            }
            catch (NodeNotFoundException nnfe)
            {
                // if request path ends with default page, strip from
                // request url to retry for folder default
                if (requestPath.endsWith(Folder.PATH_SEPARATOR + Folder.FALLBACK_DEFAULT_PAGE))
                {
                    // retry folder request url
                    requestPath = requestPath.substring(0, requestPath.length() - Folder.FALLBACK_DEFAULT_PAGE.length());
                    requestNode = view.getNodeProxy(requestPath, null, true, false);
                }
                else
                {
                    // rethrow original exception
                    throw nnfe;
                }
            }
           
            // invoke default page logic to determine folder page
            if (requestNode instanceof Folder)
            {
                Folder requestFolder = (Folder)requestNode;
               
                // support subfolders specified as default pages;
                // find highest subfolder with a default page that
                // specifies a default folder, (not a default page).
                try
                {
                    String defaultFolderName = requestFolder.getDefaultPage();
                    if (defaultFolderName != null)
                    {
                        // do not follow broken default folders
                        Folder defaultRequestFolder = requestFolder;
                        // follow default folders to parent folders
                        while ((defaultRequestFolder != null) && (defaultFolderName != null) &&
                               defaultFolderName.equals(".."))
                        {
                            defaultRequestFolder = (Folder)defaultRequestFolder.getParent();
                            if (defaultRequestFolder != null)
                            {
                                defaultFolderName = defaultRequestFolder.getDefaultPage();
                            }
                            else
                            {
                                defaultFolderName = null;
                            }
                        }
                        // follow default folders to subfolders
                        while ((defaultRequestFolder != null) && (defaultFolderName != null) &&
                               !defaultFolderName.endsWith(Page.DOCUMENT_TYPE) && !defaultFolderName.equals(".."))
                        {
                            defaultRequestFolder = defaultRequestFolder.getFolder(defaultFolderName);
                            defaultFolderName = defaultRequestFolder.getDefaultPage();
                        }
                        // use default request folder
                        if (defaultRequestFolder != null)
                        {
                            requestFolder = defaultRequestFolder;
                        }
                    }
                }
                catch (NodeException ne)
                {
                }
                catch (NodeNotFoundException nnfe)
                {
                }
                catch (SecurityException se)
                {
                    requestFolder = null;
                    accessException = se;
                }

                // only request folders with pages can be
                // selected by request; otherwise, fall back to
                // parent folders assuming that immediate parents
                // will have the most appropriate default page
                NodeSet requestFolderPages = null;
                if (requestFolder != null)
                {
                    try
                    {
                        requestFolderPages = requestFolder.getPages();
                        while (((requestFolderPages == null) || requestFolderPages.isEmpty()) && (requestFolder.getParent() != null))
                        {
                            requestFolder = (Folder)requestFolder.getParent();
                            requestFolderPages = requestFolder.getPages();
                        }
                    }
                    catch (NodeException ne)
                    {
                        requestFolderPages = null;
                    }
                    catch (SecurityException se)
                    {
                        requestFolderPages = null;
                        accessException = se;
                    }
                }
                if ((requestFolder != null) && (requestFolderPages != null) && !requestFolderPages.isEmpty())
                {
                    Page requestPage = null;

                    // attempt to lookup last visited page by folder path;
                    // page id test must be performed since identical paths
                    // may occur in multiple site views
                    if (useHistory)
                    {
                        String requestPageId = (String)getFolderPageHistory().get(requestFolder.getPath());
                        if (requestPageId != null)
                        {
                            // find page by id in request folder pages
                            Iterator requestFolderPagesIter = requestFolderPages.iterator();
                            while ((requestPage == null) && (requestFolderPagesIter.hasNext()))
                            {
                                Page requestFolderPage = (Page)requestFolderPagesIter.next();
                                if (requestPageId.equals(requestFolderPage.getId()))
                                {
                                    requestPage = requestFolderPage;
                                }
                            }
                           
                            // log selected request page
                            if (requestPage != null)
                            {
                                if (log.isDebugEnabled())
                                {
                                    log.debug("Selected folder historical page: path=" + view.getManagedPage(requestPage).getPath());
                                }
                                return requestPage;
                            }
                        }
                    }
                   
                    // get default page for folder proxy if more than one
                    // page is available to choose from
                    if (requestFolderPages.size() > 1)
                    {
                        String defaultPageName = requestFolder.getDefaultPage();
                        if (defaultPageName == null)
                        {
                            // use fallback default if default page
                            // not explicitly specified
                            defaultPageName = Folder.FALLBACK_DEFAULT_PAGE;
                        }
                        try
                        {
                            // save last visited non-hidden page for folder path
                            // and return default page
                            requestPage = requestFolder.getPage(defaultPageName);
                            if (!requestPage.isHidden())
                            {
                                getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                            }
                           
                            // log selected request page
                            if (log.isDebugEnabled())
                            {
                                log.debug("Selected folder default page: path=" + view.getManagedPage(requestPage).getPath());
                            }
                            return requestPage;
                        }
                        catch (NodeException ne)
                        {
                        }
                        catch (NodeNotFoundException nnfe)
                        {
                        }
                        catch (SecurityException se)
                        {
                            accessException = se;
                        }
                    }
                   
                    // default page not available, select first page
                    // proxy in request folder; save last visited
                    // non-hidden page for folder path and return default page
                    requestPage = (Page)requestFolderPages.iterator().next();
                    if (!requestPage.isHidden())
                    {
                        getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                    }

                    // log selected request page
                    if (log.isDebugEnabled())
                    {
                        log.debug("Selected first folder page, path=" + view.getManagedPage(requestPage).getPath());
                    }
                    return requestPage;
                }
            }
            else if (requestNode instanceof Page)
            {
                Page requestPage = (Page)requestNode;
               
                // save last visited non-hidden page for folder path
                // and return matched page
                Folder requestFolder = (Folder)requestPage.getParent();
                if (!requestPage.isHidden())
                {
                  getFolderPageHistory().put(requestFolder.getPath(), requestPage.getId());
                }

                // log selected request page
                if (log.isDebugEnabled())
                {
                    log.debug("Selected page, path=" + view.getManagedPage(requestPage).getPath());
                }
                return requestPage;
            }
        }
           
View Full Code Here

    {
        // validate and update session profile locators if modified
        if (updateSessionProfileLocators(requestProfileLocators, requestUserPrincipal))
        {
            // valid site view required from session profile locators
            SiteView view = getSiteView();
            if (view != null)
            {
                // return root folder proxy from session site view
                return view.getRootFolderProxy();
            }
        }

        // no root folder available
        throw new NodeNotFoundException("No root folder available in site view.");
View Full Code Here

     * @return site view instance
     */
    public SiteView getSiteView()
    {
        // get or create site view
        SiteView view = siteView;
        if (view == null)
        {
            // access site view and test for creation
            boolean createView = false;
            synchronized (this)
            {
                view = siteView;
                createView = ((view == null) && (pageManager != null) && (profileLocators != null));
            }

            // create new site view if necessary
            boolean viewCreated = false;
            if (createView)
            {
                // create site view outside of synchronized state; this is
                // required since construction of site view requires access
                // to the page manager and page manager event notifications
                // may arrive during construction of the site view which
                // might then result in synchronized deadlock with page
                // manager or page manager cache internals
                view = new SiteView(pageManager, profileLocators);

                // update site view if not already made available by another
                // request thread
                synchronized (this)
                {
                    if ((siteView == null) && (pageManager != null) && (profileLocators != null))
                    {
                        siteView = view;
                        viewCreated = true;
                    }
                    view = siteView;
                }
            }
       
            // log site view creation
            if (viewCreated && log.isDebugEnabled())
            {
                log.debug("Created site view: search paths=" + view.getSearchPathsString());
            }
        }
       
        return view;
    }
View Full Code Here

     * @return menu names set
     */
    public Set getStandardMenuNames()
    {
        // return standard menu names defined for site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getStandardMenuNames();
        }
        return null;
    }
View Full Code Here

     * @return definition locator list
     */
    public List getMenuDefinitionLocators(Node node)
    {
        // return menu definition locators for node in site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getMenuDefinitionLocators(node);
        }
        return null;
    }
View Full Code Here

     * @return menu definition locator
     */
    public SiteViewMenuDefinitionLocator getMenuDefinitionLocator(Node node, String name)
    {
        // return named menu definition locator for node in site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getMenuDefinitionLocator(node, name);
        }
        return null;
    }
View Full Code Here

TOP

Related Classes of org.apache.jetspeed.portalsite.view.SiteView

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.