Author: ard
Date: Wed Sep 12 07:36:40 2012
New Revision: 1383818
URL: http://svn.apache.org/viewvc?rev=1383818&view=rev
Log:
RAVE-697 introduce an ExtendablePageFragment interface because getExtends does
not need to be available *outside* the implementation that builds the
PageFragments. It is only needed internally for enhancing
Added:
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/simplePageExtensionPageDefinitions.xml
- copied, changed from r1383436,
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/singlePageExtensionPageDefinitions.xml
Removed:
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/singlePageExtensionPageDefinitions.xml
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManager.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/PageFragment.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/AbstractFragmentsRemoverEnhancer.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/ExtendsEnhancer.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/SnsFragmentsRemoverEnhancer.java
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/xml/XmlPageFragment.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManagerTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/xml/JaxbMappingsTest.java
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/enhanced-pages-config-manager-test.xml
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/noExtensionsPageDefinitions.xml
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManager.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManager.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManager.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManager.java
Wed Sep 12 07:36:40 2012
@@ -88,43 +88,4 @@ public class EnhancedPagesConfigManager
return delegatee.lastModified();
}
-
-
- public class PageFragmentImpl implements PageFragment {
-
- @Override
- public String getViewName() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public String getName() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public String getDescription() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public String getController() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public String getExtends() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public boolean isAbstract() {
- return false; //To change body of implemented methods use File |
Settings | File Templates.
- }
-
- @Override
- public List<PageFragment> getChildren() {
- return null; //To change body of implemented methods use File |
Settings | File Templates.
- }
- }
}
\ No newline at end of file
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/PageFragment.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/PageFragment.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/PageFragment.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/PageFragment.java
Wed Sep 12 07:36:40 2012
@@ -54,20 +54,6 @@ public interface PageFragment {
String getController();
/**
- * <p>
- * Returns the absolute or relative path to the {@link PageFragment} that
is extended or <code>null</code> when no
- * extension is done. The absolute path must start with a <code>/</code>,
the relative path <strong>MUST</strong> start with at least
- * one time <code>../</code>.
- * </p>
- * <p>
- * A {@link PageFragment} is not allowed to extend itself or one of its
descendant {@link PageFragment}s
- * </p>
- * @return the absolute or relative path to the {@link PageFragment} that
is extended or <code>null</code> when no
- * extension is done
- */
- String getExtends();
-
- /**
* @return <code>true</code> when this {@PageFragment} is abstract
*/
boolean isAbstract();
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/AbstractFragmentsRemoverEnhancer.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/AbstractFragmentsRemoverEnhancer.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/AbstractFragmentsRemoverEnhancer.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/AbstractFragmentsRemoverEnhancer.java
Wed Sep 12 07:36:40 2012
@@ -27,6 +27,12 @@ import org.apache.rave.portal.web.mvc.co
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * This {@link AbstractFragmentsRemoverEnhancer} removes from the {@link
PagesConfig#getPages()}
+ * any ROOT {@link PageFragment} that has {@link PageFragment#isAbstract()}
equal to
+ * <code>true</code> or has a descendant {@link PageFragment} that has {@link
PageFragment#isAbstract()} equal to
+ * <code>true</code>
+ */
public class AbstractFragmentsRemoverEnhancer implements PagesConfigEnhancer {
private final static Logger log =
LoggerFactory.getLogger(AbstractFragmentsRemoverEnhancer.class);
@@ -37,11 +43,11 @@ public class AbstractFragmentsRemoverEnh
// are defined to be abstract or contain some descendant that are
abstract
final Set<PageFragment> abstractPages= new HashSet<PageFragment>();
final Map<String,PageFragment> pages = pagesConfig.getPages();
- for (PageFragment pageFragment : pages.values()) {
- if (pageFragment.isAbstract()) {
- abstractPages.add(pageFragment);
+ for (PageFragment page : pages.values()) {
+ if (page.isAbstract()) {
+ abstractPages.add(page);
} else {
- traverseAndFindAbstractRootFragments(pageFragment,
pageFragment, abstractPages);
+ traverseAndFindAbstractRootFragments(page, page,
abstractPages);
}
}
for (PageFragment abstractPage : abstractPages) {
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/ExtendsEnhancer.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/ExtendsEnhancer.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/ExtendsEnhancer.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/ExtendsEnhancer.java
Wed Sep 12 07:36:40 2012
@@ -18,6 +18,14 @@
*/
package org.apache.rave.portal.web.mvc.config.enhancers;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.rave.portal.web.mvc.config.ExtendablePageFragment;
import org.apache.rave.portal.web.mvc.config.PageFragment;
import org.apache.rave.portal.web.mvc.config.PagesConfig;
import org.slf4j.Logger;
@@ -29,11 +37,118 @@ public class ExtendsEnhancer implements
@Override
public PagesConfig enhance(final PagesConfig pagesConfig) {
- for (PageFragment pageFragment : pagesConfig.getPages().values()) {
+ final Map<String,PageFragment> pages = pagesConfig.getPages();
+ final Map<String, MutablePageFragment> allPageFragmentsByPath = new
HashMap<String, MutablePageFragment>();
+ final Map<String, MutablePageFragment> mutablePages = new
HashMap<String, MutablePageFragment>();
+
+ for (PageFragment page : pages.values()) {
+ MutablePageFragment mutablePageFragment = new
MutablePageFragment((ExtendablePageFragment)page, null);
+ mutablePages.put(mutablePageFragment.getName(),
mutablePageFragment);
+ allPageFragmentsByPath.put(mutablePageFragment.getPath(),
mutablePageFragment);
+ }
+
+ // start the enhancement by traversing the allPageFragmentsByPath and
find all the 'extends' and resolve them
+ for (MutablePageFragment page : mutablePages.values()) {
+ resolveExtensions(page, null, allPageFragmentsByPath);
}
+
return pagesConfig;
}
+ private void resolveExtensions(final MutablePageFragment fragment, final
MutablePageFragment parent, final Map<String, MutablePageFragment>
allPageFragmentByPath) {
+ if (fragment.getExtends() != null) {
+ String extendz = fragment.getExtends();
+ MutablePageFragment extendsFrom =
allPageFragmentByPath.get(extendz);
+ // if (extendsFrom )
+ }
+ }
+
+
+
+ private class MutablePageFragment implements ExtendablePageFragment {
+
+ // the path contains the hierarchical information
+ private String path;
+ private String viewName;
+ private String name;
+ private String description;
+ private String controller;
+ private String extendz;
+ private boolean abstrakt;
+ private Map<String, MutablePageFragment> children;
+
+ /**
+ * constructor that creates a deep copy of PageFragments to
MutablePageFragment's
+ * @param fragment the fragment to deep copy
+ * @param parent the parent fragment or <code>null</code> for root
+ */
+ private MutablePageFragment(ExtendablePageFragment fragment,
MutablePageFragment parent) {
+ this.viewName = fragment.getViewName();
+ this.name = fragment.getName();
+ if (parent != null) {
+ path = parent.getPath() + "/" + fragment.getName();
+ } else {
+ path = fragment.getName();
+ }
+ this.description = fragment.getDescription();
+ this.controller = fragment.getController();
+ this.extendz = fragment.getExtends();
+ this.abstrakt = fragment.isAbstract();
+ if (fragment.getChildren() != null) {
+ // use LinkedHashMap to maintain order
+ children = new LinkedHashMap<String,
MutablePageFragment>(fragment.getChildren().size());
+ for (PageFragment child : fragment.getChildren()) {
+ MutablePageFragment mutableChild = new
MutablePageFragment((ExtendablePageFragment)child, this);
+ children.put(mutableChild.getName(), mutableChild);
+ }
+ }
+ }
+
+ /**
+ * Extra needed utility method for enhancing fragments:
+ * @return the hierarchical location relative to the root (thus not
starting with /) made up of all ancestor names including the fragments own name
devided by /
+ */
+ public String getPath() {
+ return path;
+ }
+
+ @Override
+ public String getViewName() {
+ return viewName;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getController() {
+ return controller;
+ }
+
+ @Override
+ public String getExtends() {
+ return extendz;
+ }
+
+ @Override
+ public boolean isAbstract() {
+ return abstrakt;
+ }
+ @Override
+ public List<PageFragment> getChildren() {
+ if (children == null) {
+ return Collections.EMPTY_LIST;
+ }
+ return new ArrayList<PageFragment>(children.values());
+ }
+ }
}
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/SnsFragmentsRemoverEnhancer.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/SnsFragmentsRemoverEnhancer.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/SnsFragmentsRemoverEnhancer.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/enhancers/SnsFragmentsRemoverEnhancer.java
Wed Sep 12 07:36:40 2012
@@ -34,8 +34,8 @@ public class SnsFragmentsRemoverEnhancer
@Override
public PagesConfig enhance(final PagesConfig pagesConfig) {
- for (PageFragment pageFragment : pagesConfig.getPages().values()) {
- traverseAndRemoveSNSIfEncountered(pageFragment);
+ for (PageFragment page : pagesConfig.getPages().values()) {
+ traverseAndRemoveSNSIfEncountered(page);
}
return pagesConfig;
}
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/xml/XmlPageFragment.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/xml/XmlPageFragment.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/xml/XmlPageFragment.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/mvc/config/xml/XmlPageFragment.java
Wed Sep 12 07:36:40 2012
@@ -25,13 +25,14 @@ import javax.xml.bind.annotation.XmlAttr
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.rave.portal.web.mvc.config.ExtendablePageFragment;
import org.apache.rave.portal.web.mvc.config.PageFragment;
/**
* @version "$Id$"
*/
@XmlRootElement(name = "pageFragment")
-public class XmlPageFragment implements PageFragment {
+public class XmlPageFragment implements ExtendablePageFragment {
private String name;
private String description;
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManagerTest.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManagerTest.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManagerTest.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/EnhancedPagesConfigManagerTest.java
Wed Sep 12 07:36:40 2012
@@ -29,7 +29,10 @@ import org.springframework.test.context.
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
@RunWith(SpringJUnit4ClassRunner.class)
@@ -46,12 +49,12 @@ public class EnhancedPagesConfigManagerT
assertEquals(1, pages.size());
- final PageFragment pageDefinition = pages.get("top");
- assertEquals("top", pageDefinition.getName());
- assertNull(pageDefinition.getExtends());
- assertNull(pageDefinition.getViewName());
- assertEquals("org.apache.rave.unittest.NonExistingController",
pageDefinition.getController());
- assertEquals(3, pageDefinition.getChildren().size());
+ final PageFragment pageFragment= pages.get("top");
+ assertEquals("top", pageFragment.getName());
+ assertNull(((ExtendablePageFragment) pageFragment).getExtends());
+ assertNull(pageFragment.getViewName());
+ assertEquals("org.apache.rave.unittest.NonExistingController",
pageFragment.getController());
+ assertEquals(3, pageFragment.getChildren().size());
}
@Test
@@ -72,15 +75,60 @@ public class EnhancedPagesConfigManagerT
assertEquals(1, pageDefinition.getChildren().size());
assertEquals("sub", pageDefinition.getChildren().get(0).getName());
+ }
+
+
+ @Test
+ public void abstractRemovingEnhancedPageRoutesManager() throws Exception {
+
+ EnhancedPagesConfigManager abstractRemovingEnhancedPagesConfigManager
=
(EnhancedPagesConfigManager)applicationContext.getBean("abstractPagesConfigManager");
+
+ final Map<String,PageFragment> pages =
abstractRemovingEnhancedPagesConfigManager.getConfig().getPages();
+ /* although four root page fragments are present in
abstractPageDefinitions.xml, only 2 of them should be
+ * part of the enhanced config pages because:
+ * 1) standard page is abstract
+ * 2) agenda page contains a descendant fragment that is abstract
+ */
+
+ assertEquals(2, pages.size());
+ assertNull(pages.get("standard"));
+ assertNull(pages.get("agenda"));
+ assertNotNull(pages.get("home"));
+ assertNotNull(pages.get("news"));
}
+
@Test
- public void singlePageExtensionPageRoutesManager() throws Exception {
- EnhancedPagesConfigManager enhancedPagesConfigManager =
(EnhancedPagesConfigManager)applicationContext.getBean("singlePageExtensionEnhancedPagesConfigManager");
+ public void simplePageExtensionPageRoutesManager() throws Exception {
+ EnhancedPagesConfigManager enhancedPagesConfigManager =
(EnhancedPagesConfigManager)applicationContext.getBean("simplePageExtensionEnhancedPagesConfigManager");
final Map<String,PageFragment> pageDefinitions =
enhancedPagesConfigManager.getConfig().getPages();
- assertEquals(4, pageDefinitions.size());
+ assertEquals(2, pageDefinitions.size());
+
+
+ final Map<String,PageFragment> pages =
enhancedPagesConfigManager.getConfig().getPages();
+ // home extends from standard and thus should inherit from standard
and merge from standard
+ final PageFragment standard = pages.get("standard");
+ assertEquals(3, standard.getChildren().size());
+
+ assertEquals("sub1",standard.getChildren().get(0).getName());
+ assertEquals("sub2",standard.getChildren().get(1).getName());
+ assertEquals("sub3",standard.getChildren().get(2).getName());
+
+ final PageFragment home = pages.get("home");
+ // home has three children inherited from 'standard'
+ assertEquals(3, home.getChildren().size());
+
+ assertEquals("sub1",home.getChildren().get(0).getName());
+ assertEquals("sub2",home.getChildren().get(1).getName());
+ assertEquals("sub3",home.getChildren().get(2).getName());
+
+ // the inheritance is a DEEP COPY, not a shallow, hence, instances
should be different
+
+ assertFalse(home.getChildren().get(0) ==
standard.getChildren().get(0));
+ assertFalse(home.getChildren().get(1) ==
standard.getChildren().get(1));
+ assertFalse(home.getChildren().get(2) ==
standard.getChildren().get(2));
}
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/xml/JaxbMappingsTest.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/xml/JaxbMappingsTest.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/xml/JaxbMappingsTest.java
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/test/java/org/apache/rave/portal/web/mvc/config/xml/JaxbMappingsTest.java
Wed Sep 12 07:36:40 2012
@@ -25,6 +25,7 @@ import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.apache.commons.io.IOUtils;
+import org.apache.rave.portal.web.mvc.config.ExtendablePageFragment;
import org.apache.rave.portal.web.mvc.config.InvalidConfigurationException;
import org.apache.rave.portal.web.mvc.config.PageFragment;
import org.junit.Test;
@@ -51,7 +52,7 @@ public class JaxbMappingsTest {
final PageFragment pageFragment =
xmlPageDefinitions.getPageFragments().get(0);
assertEquals("top", pageFragment.getName());
- assertNull(pageFragment.getExtends());
+ assertNull(((ExtendablePageFragment)pageFragment).getExtends());
assertNull(pageFragment.getViewName());
assertEquals("org.apache.rave.unittest.NonExistingController",
pageFragment.getController());
assertEquals(3, pageFragment.getChildren().size());
@@ -64,7 +65,7 @@ public class JaxbMappingsTest {
final PageFragment sub1 = pageFragment.getChildren().get(0);
assertEquals("sub1-nocontroller", sub1.getName());
assertNull(sub1.getController());
- assertNull(sub1.getExtends());
+ assertNull(((ExtendablePageFragment)sub1).getExtends());
assertNull(sub1.getViewName());
assertNull(sub1.getChildren());
}
@@ -79,14 +80,14 @@ public class JaxbMappingsTest {
final PageFragment sub2 = pageFragment.getChildren().get(1);
assertEquals("sub2-emptycontrollor", sub2.getName());
assertEquals("",sub2.getController());
- assertNull(sub2.getExtends());
+ assertNull(((ExtendablePageFragment)sub2).getExtends());
assertNull(sub2.getViewName());
assertEquals( 1, sub2.getChildren().size());
final PageFragment sub2sub1 = sub2.getChildren().get(0);
assertEquals("sub2sub1-withcontroller", sub2sub1.getName());
assertEquals("org.apache.rave.unittest.NonExistingController",sub2sub1.getController());
- assertNull(sub2sub1.getExtends());
+ assertNull(((ExtendablePageFragment)sub2sub1).getExtends());
assertNull(sub2sub1.getViewName());
assertNull(sub2sub1.getChildren());assertEquals("default",
xmlPageDefinitions.getName());
}
@@ -101,14 +102,14 @@ public class JaxbMappingsTest {
final PageFragment sub3 = pageFragment.getChildren().get(2);
assertEquals("sub3-withcontroller-withview", sub3.getName());
assertEquals("org.apache.rave.unittest.NonExistingController",sub3.getController());
- assertNull(sub3.getExtends());
+ assertNull(((ExtendablePageFragment)sub3).getExtends());
assertEquals("pages/test", sub3.getViewName());
assertEquals( 1, sub3.getChildren().size());
final PageFragment sub3sub1 = sub3.getChildren().get(0);
assertEquals("sub3sub1-withextend", sub3sub1.getName());
assertEquals("org.apache.rave.unittest.NonExistingController",sub3sub1.getController());
- assertEquals("some/fragment", sub3sub1.getExtends());
+ assertEquals("some/fragment",
((ExtendablePageFragment)sub3sub1).getExtends());
assertNull(sub3sub1.getViewName());
assertNull(sub3sub1.getChildren());
}
@@ -127,7 +128,7 @@ public class JaxbMappingsTest {
{
final PageFragment pageFragment =
xmlPageDefinitions.getPageFragments().get(0);
assertEquals("root-one", pageFragment.getName());
- assertNull(pageFragment.getExtends());
+ assertNull(((ExtendablePageFragment)pageFragment).getExtends());
assertNull(pageFragment.getViewName());
assertEquals("org.apache.rave.unittest.NonExistingController",
pageFragment.getController());
assertEquals(1, pageFragment.getChildren().size());
@@ -136,7 +137,7 @@ public class JaxbMappingsTest {
{
final PageFragment pageFragment =
xmlPageDefinitions.getPageFragments().get(1);
assertEquals("root-two", pageFragment.getName());
- assertNull(pageFragment.getExtends());
+ assertNull(((ExtendablePageFragment)pageFragment).getExtends());
assertNull(pageFragment.getViewName());
assertEquals("org.apache.rave.unittest.NonExistingController",
pageFragment.getController());
assertEquals(1, pageFragment.getChildren().size());
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/enhanced-pages-config-manager-test.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/enhanced-pages-config-manager-test.xml?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/enhanced-pages-config-manager-test.xml
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/enhanced-pages-config-manager-test.xml
Wed Sep 12 07:36:40 2012
@@ -49,52 +49,22 @@
<property name="enhancers" ref="pageEnhancers"/>
</bean>
-
- <bean id="singlePageExtensionEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
- <constructor-arg>
- <bean
class="org.apache.rave.portal.web.mvc.config.xml.XmlPagesConfigManager">
- <property name="routesPath" value="classpath:routes.xml"/>
- <property name="pageDefinitionsPath"
value="classpath:config/testenhancingmappings/singlePageExtensionPageDefinitions.xml"/>
- </bean>
- </constructor-arg>
- <property name="enhancers" ref="pageEnhancers"/>
- </bean>
-
- <bean id="hierarchicalMultiplePageExtensionEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
- <constructor-arg>
- <bean
class="org.apache.rave.portal.web.mvc.config.xml.XmlPagesConfigManager">
- <property name="routesPath" value="classpath:routes.xml"/>
- <property name="pageDefinitionsPath"
value="classpath:config/hierarchicalMultiplePageExtension.xml"/>
- </bean>
- </constructor-arg>
- <property name="enhancers" ref="pageEnhancers"/>
- </bean>
-
- <bean id="complexExtensionsEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
+ <bean id="abstractPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
<constructor-arg>
<bean
class="org.apache.rave.portal.web.mvc.config.xml.XmlPagesConfigManager">
<property name="routesPath" value="classpath:routes.xml"/>
- <property name="pageDefinitionsPath"
value="classpath:config/complexExtensionsPageRoutesManager.xml"/>
+ <property name="pageDefinitionsPath"
value="classpath:config/testenhancingmappings/abstractPageDefinitions.xml"/>
</bean>
</constructor-arg>
<property name="enhancers" ref="pageEnhancers"/>
</bean>
- <bean id="recursiveExtensionsEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
- <constructor-arg>
- <bean
class="org.apache.rave.portal.web.mvc.config.xml.XmlPagesConfigManager">
- <property name="routesPath" value="classpath:routes.xml"/>
- <property name="pageDefinitionsPath"
value="classpath:config/recursiveExtensionsPageRoutesManager.xml"/>
- </bean>
- </constructor-arg>
- <property name="enhancers" ref="pageEnhancers"/>
- </bean>
- <bean id="pageFragmentExtensionsEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
+ <bean id="simplePageExtensionEnhancedPagesConfigManager"
class="org.apache.rave.portal.web.mvc.config.EnhancedPagesConfigManager">
<constructor-arg>
<bean
class="org.apache.rave.portal.web.mvc.config.xml.XmlPagesConfigManager">
<property name="routesPath" value="classpath:routes.xml"/>
- <property name="pageDefinitionsPath"
value="classpath:config/pageFragmentExtensionsPageRoutesManager.xml"/>
+ <property name="pageDefinitionsPath"
value="classpath:config/testenhancingmappings/simplePageExtensionPageDefinitions.xml"/>
</bean>
</constructor-arg>
<property name="enhancers" ref="pageEnhancers"/>
Modified:
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/noExtensionsPageDefinitions.xml
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/noExtensionsPageDefinitions.xml?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/noExtensionsPageDefinitions.xml
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/noExtensionsPageDefinitions.xml
Wed Sep 12 07:36:40 2012
@@ -20,12 +20,12 @@
<pageDefinitions name="default">
<pageFragment name="top" description="Page that is being extended by other
pages"
controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub1-nocontroller"/>
- <pageFragment name="sub2-emptycontrollor" controller="">
- <pageFragment name="sub2sub1-withcontroller"
controller="org.apache.rave.unittest.NonExistingController"/>
+ <pageFragment name="sub1"/>
+ <pageFragment name="sub2" controller="">
+ <pageFragment name="sub2sub1"
controller="org.apache.rave.unittest.NonExistingController"/>
</pageFragment>
- <pageFragment name="sub3-withcontroller-withview" viewName="pages/test"
controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub3sub1-withextend" extends="some/fragment"
controller="org.apache.rave.unittest.NonExistingController"/>
+ <pageFragment name="sub3" viewName="pages/test"
controller="org.apache.rave.unittest.NonExistingController">
+ <pageFragment name="sub3sub1"
controller="org.apache.rave.unittest.NonExistingController"/>
</pageFragment>
</pageFragment>
Copied:
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/simplePageExtensionPageDefinitions.xml
(from r1383436,
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/singlePageExtensionPageDefinitions.xml)
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/simplePageExtensionPageDefinitions.xml?p2=rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/simplePageExtensionPageDefinitions.xml&p1=rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/singlePageExtensionPageDefinitions.xml&r1=1383436&r2=1383818&rev=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/singlePageExtensionPageDefinitions.xml
(original)
+++
rave/sandbox/content-services/rave-web-hmvc/src/test/resources/config/testenhancingmappings/simplePageExtensionPageDefinitions.xml
Wed Sep 12 07:36:40 2012
@@ -20,32 +20,19 @@
<pageDefinitions name="default">
<pageFragment name="standard" description="Page that is being extended by
other pages"
controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub1-nocontroller"/>
- <pageFragment name="sub2-emptycontrollor" controller="">
- <pageFragment name="sub2sub1-withcontroller"
controller="org.apache.rave.unittest.NonExistingController"/>
+ <pageFragment name="sub1"/>
+ <pageFragment name="sub2" controller="">
+ <pageFragment name="sub2sub1"
controller="org.apache.rave.unittest.NonExistingController"/>
</pageFragment>
- <pageFragment name="sub3-withcontroller-withview" viewName="pages/test"
controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub3sub1-withextend" extends="some/fragment"
controller="org.apache.rave.unittest.NonExistingController"/>
+ <pageFragment name="sub3" viewName="pages/test"
controller="org.apache.rave.unittest.NonExistingController">
+ <pageFragment name="sub3sub1" extends="some/fragment"
controller="org.apache.rave.unittest.NonExistingController"/>
</pageFragment>
</pageFragment>
- <pageFragment name="home" extends="top" description="Page that is being
extended by other pages"
+ <pageFragment name="home" extends="standard" description="Page that is being
extended by other pages"
controller="org.apache.rave.unittest.NonExistingController">
</pageFragment>
- <pageFragment name="agenda" extends="top" description="Page that is being
extended by other pages"
- controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub4-nocontroller"/>
- </pageFragment>
-
-
- <pageFragment name="news" extends="top" description="Page that is being
extended by other pages"
- controller="org.apache.rave.unittest.NonExistingController">
- <pageFragment name="sub2-emptycontrollor"
controller="org.apache.rave.unittest.NonExistingNewsController">
- <pageFragment name="news" />
- </pageFragment>
- </pageFragment>
-
</pageDefinitions>
\ No newline at end of file
Modified:
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
URL:
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java?rev=1383818&r1=1383817&r2=1383818&view=diff
==============================================================================
---
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
(original)
+++
rave/sandbox/content-services/rave-web-jcr/src/main/java/org/apache/rave/portal/web/mvc/config/jcr/JcrPageFragment.java
Wed Sep 12 07:36:40 2012
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.ocm.manager
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Collection;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Field;
import org.apache.jackrabbit.ocm.mapper.impl.annotation.Node;
+import org.apache.rave.portal.web.mvc.config.ExtendablePageFragment;
import org.apache.rave.portal.web.mvc.config.PageFragment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,7 +35,7 @@ import org.slf4j.LoggerFactory;
* @version "$Id$"
*/
@Node(discriminator = false, jcrType = "raveconfig:pagefragment",
jcrMixinTypes = "mix:referenceable")
-public class JcrPageFragment implements PageFragment {
+public class JcrPageFragment implements ExtendablePageFragment {
private static Logger log = LoggerFactory.getLogger(JcrPageFragment.class);