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>