You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ma...@apache.org on 2012/07/04 13:35:16 UTC

svn commit: r1357231 - in /rave/sandbox/content-services/rave-web-hmvc/src: main/java/org/apache/rave/portal/web/model/config/ test/java/org/apache/rave/portal/web/model/config/ test/resources/

Author: marijan
Date: Wed Jul  4 11:35:15 2012
New Revision: 1357231

URL: http://svn.apache.org/viewvc?rev=1357231&view=rev
Log:
RAVE-700 Provide basic PageDefinition filesystem storage using json or xml

- allow root fragments to be parent

Modified:
    rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java
    rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java
    rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml

Modified: rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java?rev=1357231&r1=1357230&r2=1357231&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java (original)
+++ rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/model/config/PageConfig.java Wed Jul  4 11:35:15 2012
@@ -125,10 +125,8 @@ public class PageConfig {
         // initialize fragment kids first and merge parent components afterwards
         for (PageFragmentConfig pageFragment : pageFragments) {
             final String fragmentName = pageFragment.getName();
-            PageFragment fragment = new PageFragment(pageFragment.getPath(), fragmentName);
+            PageFragment fragment = createFragment(pageFragment);
             mergeFragmentChildren(fragment, pageFragment);
-
-
             getFragmentDefinitionsMap().put(fragmentName, fragment);
         }
 
@@ -139,17 +137,28 @@ public class PageConfig {
             if (StringUtils.isNotBlank(parent)) {
                 // lookup parent:
                 final PageDefinition pageDefinition = getPageDefinitionsMap().get(parent);
-                if (pageDefinition == null) {
-                    log.warn("Skipping populating of item: parent with name [{}]  could not be found for PageFragment with name  [{}].", parent, pageFragment.getName());
+                if (pageDefinition != null) {
+                    final PageFragment fragment = getFragmentDefinitionsMap().get(pageFragment.getName());
+                    fragment.setParent(pageDefinition);
+                    fragment.setId(String.format("%s%s", pageDefinition.getPath(), fragment.getId()));
+                    mergeFragment(fragment);
                     continue;
                 }
-                final PageFragment fragment = getFragmentDefinitionsMap().get(pageFragment.getName());
-                fragment.setParent(pageDefinition);
-                fragment.setId(String.format("%s%s", pageDefinition.getPath(), fragment.getId()));
-                mergeFragment(fragment);
+                // check if fragment is our parent
+                final PageFragment parentFragment = getFragmentDefinitionsMap().get(parent);
+
+                if (parentFragment != null) {
+                    final PageFragment fragment = getFragmentDefinitionsMap().get(pageFragment.getName());
+                    fragment.setParent(parentFragment);
+                    fragment.setId(String.format("%s%s", fragment.getPath(), parentFragment.getId()));
+                    mergeFragment(fragment);
+                    continue;
+                }
+                // we could not find parent reference
+                log.warn("Skipping populating of item: parent with name [{}]  could not be found for PageFragment with name  [{}].", parent, pageFragment.getName());
             }
-        }
 
+        }
     }
 
     private void mergeFragmentChildren(PageFragment owner, PageFragmentConfig pageFragment) {

Modified: rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java?rev=1357231&r1=1357230&r2=1357231&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java (original)
+++ rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/model/config/FilePageConfigDaoTest.java Wed Jul  4 11:35:15 2012
@@ -52,17 +52,25 @@ public class FilePageConfigDaoTest {
         assertEquals(1, pageDefinitions.size()); // make sure it is parsed properly
         // expected 2 page fragments
         final Collection<PageFragment> kids = config.getFragmentDefinitions();
-        assertEquals(2, kids.size());
+        assertEquals(3, kids.size());
         //our fragments should have parent page:
+        final Map<String, PageFragment> fragmentDefinitionsMap = config.getFragmentDefinitionsMap();
+        final PageFragment adminFragment = fragmentDefinitionsMap.get("adminPage");
         final PageDefinitionConfig standardPage = definitions.get(0);
         for (PageFragment kid : kids) {
             final PageFragment parent = kid.getParent();
             assertTrue("Expected valid parent, but found null", parent != null);
-            assertTrue(parent.getName().equals(standardPage.getName()));
+            // user admin extends adminPage
+            if (kid.getName().equals("userAdminPage")) {
+                assertEquals(parent.getName(), adminFragment.getName());
+            } else {
+                assertEquals(parent.getName(), standardPage.getName());
+            }
+
+
         }
 
-        final Map<String, PageFragment> fragmentDefinitionsMap = config.getFragmentDefinitionsMap();
-        final PageFragment adminFragment = fragmentDefinitionsMap.get("adminPage");
+
         final List<PageFragment> adminKids = adminFragment.getChildren();
         assertEquals(2, adminKids.size());
         // admin should have header from page definition
@@ -88,17 +96,16 @@ public class FilePageConfigDaoTest {
 
         assertTrue(adminFooter != null);
         assertEquals(1, adminFooter.getChildren().size());
-
-        log.info("config {}", config);
+        final PageFragment userAdminFragment = fragmentDefinitionsMap.get("userAdminPage");
+        assertEquals(3, userAdminFragment.getChildren().size());
 
     }
 
-
     @Test(expected = InvalidConfigurationException.class)
     public void testLoadConfigFail() throws Exception {
         PageConfigDao dao = new FilePageConfigDao();
         // this should throw InvalidConfigurationException exception
-        final PageConfig pageConfig = dao.loadConfig(FilePageConfigDao.CLASSPATH_PREFIX + "NONE_EXISTING_example_configuration.xml");
+        dao.loadConfig(FilePageConfigDao.CLASSPATH_PREFIX + "NONE_EXISTING_example_configuration.xml");
     }
 
 }

Modified: rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml?rev=1357231&r1=1357230&r2=1357231&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml (original)
+++ rave/sandbox/content-services/rave-web-hmvc/src/test/resources/example_configuration.xml Wed Jul  4 11:35:15 2012
@@ -47,14 +47,34 @@
 
 
     <!--
-        ADMIN PAGE (extends STANDARD page)
+        USER ADMIN PAGE (extends STANDARD page)
     -->
-    <page-fragment name="adminPage" path="/admin" description="User administration pages" src="admin.jsp"
+    <page-fragment name="adminPage" path="/admin" description="Administration pages" src="admin.jsp"
                    parent="standard">
         <!-- @overrides footer-->
         <page-fragment name="footer" path="/footer" src="myFooter.jsp">
             <page-fragment name="footerController" class="com.test.FooterController"/>
         </page-fragment>
+    </page-fragment>
 
+    <!--
+        ADMIN PAGE (extends STANDARD page)
+    -->
+    <page-fragment name="userAdminPage" path="/admin/user" description="User administration pages" src="userAdmin.jsp"
+                   parent="adminPage">
+        <!-- @overrides footer-->
+        <page-fragment name="footer" path="/footer" src="myFooter.jsp">
+            <page-fragment name="footerController" class="com.test.FooterController"/>
+        </page-fragment>
+        <!-- @overrides admin header-->
+        <page-fragment name="header" path="/header">
+            <page-fragment name="headerController" class="com.test.UserLoginHeaderController" src="login.jsp"/>
+        </page-fragment>
+        <!-- add body-->
+        <page-fragment name="body" path="/body">
+            <page-fragment name="bodyController" class="com.test.UserBody" src="body.jsp"/>
+        </page-fragment>
     </page-fragment>
+
+
 </configuration>