Author: ate
Date: Wed Aug 29 12:36:37 2012
New Revision: 1378521

URL: http://svn.apache.org/viewvc?rev=1378521&view=rev
Log:
RAVE-697: basic hierachical page definition model
- make getPath() a derived property

Modified:
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageFragment.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
    
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageConfiguration.java
 Wed Aug 29 12:36:37 2012
@@ -135,7 +135,7 @@ public class FilePageConfiguration imple
     }
 
     private PageFragment createFragment(PageFragment pageFragment) {
-        final PageFragment fragment = new FilePageFragment(null, 
pageFragment.getName());
+        final PageFragment fragment = new 
FilePageFragment(pageFragment.getName());
         fragment.setController(pageFragment.getController());
         fragment.setDescription(pageFragment.getDescription());
         return fragment;

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageDefinition.java
 Wed Aug 29 12:36:37 2012
@@ -43,10 +43,6 @@ public class FilePageDefinition extends 
         super(name);
     }
 
-    public FilePageDefinition(String path, String name) {
-        super(path, name);
-    }
-
     @Override
     @XmlTransient
     public PageFragment getParent() {

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/FilePageFragment.java
 Wed Aug 29 12:36:37 2012
@@ -39,7 +39,6 @@ public class FilePageFragment implements
     private PageFragment parent;
     private String reference;
     private String name;
-    private String path;
     private String displayName;
     private String description;
     private String viewName;
@@ -56,11 +55,6 @@ public class FilePageFragment implements
         this.name = name;
     }
 
-    public FilePageFragment(String path, String name) {
-        this(name);
-        this.path = path;
-    }
-
     @XmlAttribute(name = "parent")
     @Override
     public String getReference() {
@@ -84,15 +78,14 @@ public class FilePageFragment implements
     }
 
 
-    @XmlAttribute
+    @XmlTransient
     @Override
     public String getPath() {
-        return path;
-    }
-
-    @Override
-    public void setPath(String path) {
-        this.path = path;
+        String parentPath = parent != null ? parent.getPath() : "/";
+        if (parentPath.length() == 1) {
+            return parentPath + getName();
+        }
+        return parentPath + "/" + getName();
     }
 
     @XmlAttribute
@@ -180,7 +173,7 @@ public class FilePageFragment implements
         sb.append("{parent=").append(parent);
         sb.append(", reference=").append(reference);
         sb.append(", name='").append(name).append('\'');
-        sb.append(", path='").append(path).append('\'');
+        sb.append(", path='").append(getPath()).append('\'');
         sb.append(", displayName='").append(displayName).append('\'');
         sb.append(", description='").append(description).append('\'');
         sb.append(", controller='").append(controller).append('\'');

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/JcrPageFragment.java
 Wed Aug 29 12:36:37 2012
@@ -45,7 +45,7 @@ public class JcrPageFragment implements 
         this.name = name;
     }
 
-    @Field(path = true, id = true)
+    @Field(path = true)
     private String path;
 
     @Field(jcrType = "String")
@@ -60,7 +60,7 @@ public class JcrPageFragment implements 
     private String viewName;
 
 
-    @Field(jcrType = "String")
+    @Field(jcrType = "String", id=true)
     private String name;
 
     @Bean(jcrType = "raveconfig:pagefragment", jcrName = 
"raveconfig:parentfragment")

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageFragment.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageFragment.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageFragment.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/main/java/org/apache/rave/jcr/config/model/api/PageFragment.java
 Wed Aug 29 12:36:37 2012
@@ -45,21 +45,14 @@ public interface PageFragment {
     void setViewName(String viewName);
 
     /**
-     * Sets Node path
+     * Returns fragment fully qualified path, last part being the fragment name
      *
-     * @param path path node is saved to
-     */
-    void setPath(String path);
-
-    /**
-     * Returns node path
-     *
-     * @return node path, should not be null
+     * @return fragment path, should not be null
      */
     String getPath();
 
     /**
-     * Sets name of the fragment
+     * Sets name of the fragment: must be unique within the parent
      *
      * @param name name of the fragment
      */

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/FileConfigManagerTest.java
 Wed Aug 29 12:36:37 2012
@@ -103,6 +103,8 @@ public class FileConfigManagerTest {
         assertTrue(userAdminFragment != null);
         final List<PageFragment> userAdminKids = 
userAdminFragment.getChildren();
         assertEquals("Expected 3 kids", 3, userAdminKids.size());
+        PageFragment kid = userAdminKids.get(1).getChildren().get(0);
+        assertEquals("/userAdminPage/header/headerController", kid.getPath());
         for (PageFragment userAdminKid : userAdminKids) {
             final PageFragment parent = userAdminKid.getParent();
             assertTrue("Expected child fragment to have a parent", parent != 
null);

Modified: 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java
URL: 
http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java?rev=1378521&r1=1378520&r2=1378521&view=diff
==============================================================================
--- 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java
 (original)
+++ 
rave/sandbox/content-services/rave-jcr-integration/page-configuration/src/test/java/org/apache/rave/jcr/config/JcrConfigManagerTest.java
 Wed Aug 29 12:36:37 2012
@@ -64,7 +64,6 @@ public class JcrConfigManagerTest extend
         final String configName = "myPageConfigName";
         configuration.setName(configName);
         final PageDefinition definition = new JcrPageDefinition();
-        definition.setPath("def1");
         definition.setName("def1");
         definition.setController("def1");
         final ArrayList<PageDefinition> definitions = new 
ArrayList<PageDefinition>();
@@ -92,29 +91,24 @@ public class JcrConfigManagerTest extend
         // add some fragments:
 
         final PageFragment fragment = new JcrPageFragment();
-        fragment.setPath("fragment1");
         fragment.setName("fragment1");
         fragment.setController("controller");
         fragment.setDescription("description");
         fragment.setDisplayName("displayName");
         configuration.addPageFragment(fragment);
         final PageFragment fragment2 = new JcrPageFragment();
-        fragment2.setPath("fragment2");
         fragment2.setName("fragment2");
         configuration.addPageFragment(fragment2);
         // add kid fragment
         final PageFragment kid = new JcrPageFragment();
         kid.setName("kid");
-        kid.setPath("kid");
         fragment.addChild(kid);
 
         // add page definitions
         final PageDefinition definition = new JcrPageDefinition();
-        definition.setPath("def1");
         definition.setName("def1");
         configuration.addPageDefinition(definition);
         final PageDefinition definition2 = new JcrPageDefinition();
-        definition2.setPath("def2");
         definition2.setName("def2");
         configuration.addPageDefinition(definition2);
 
@@ -127,6 +121,7 @@ public class JcrConfigManagerTest extend
         assertEquals(retrievedConfiguration.getPageDefinitions().size(), 2);
         for (PageFragment pageFragment : pageFragments) {
             if (pageFragment.getName().equals("fragment1")) {
+                
assertEquals("/raveconfig/myName/pageFragments/fragment1",pageFragment.getPath());
                 assertEquals("displayName", pageFragment.getDisplayName());
                 assertEquals("description", pageFragment.getDescription());
                 assertEquals("kid", 
pageFragment.getChildren().get(0).getName());


Reply via email to