Author: mfranklin
Date: Mon Jun  4 17:22:51 2012
New Revision: 1346039

URL: http://svn.apache.org/viewvc?rev=1346039&view=rev
Log:
Refactored PageTemplate (RAVE-648)

Added:
    
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
      - copied, changed from r1346037, 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
    
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
Modified:
    
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplateRegion.java
    
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
    
rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
    
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
    
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
    
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java

Copied: 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
 (from r1346037, 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java)
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java?p2=rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java&p1=rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java&r1=1346037&r2=1346039&rev=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
 Mon Jun  4 17:22:51 2012
@@ -21,6 +21,7 @@ package org.apache.rave.portal.model;
 
 import org.apache.rave.persistence.BasicEntity;
 import org.apache.rave.portal.model.conversion.ConvertingListProxyFactory;
+import org.apache.rave.portal.model.conversion.JpaConverter;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -30,11 +31,11 @@ import java.util.List;
 @Entity
 @Table(name="page_template")
 @NamedQueries({
-        @NamedQuery(name = PageTemplate.PAGE_TEMPLATE_GET_ALL, query = "SELECT 
p FROM PageTemplate p ORDER BY p.renderSequence"),
-        @NamedQuery(name = 
PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE, query = "SELECT p FROM 
PageTemplate p WHERE p.defaultTemplate = true and p.pageType = :pageType")
+        @NamedQuery(name = JpaPageTemplate.PAGE_TEMPLATE_GET_ALL, query = 
"SELECT p FROM JpaPageTemplate p ORDER BY p.renderSequence"),
+        @NamedQuery(name = 
JpaPageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE, query = "SELECT p FROM 
JpaPageTemplate p WHERE p.defaultTemplate = true and p.pageType = :pageType")
 })
 @Access(AccessType.FIELD)
-public class PageTemplate implements BasicEntity, Serializable {
+public class JpaPageTemplate implements BasicEntity, Serializable, 
PageTemplate {
 
     private static final long serialVersionUID = 1L;
     public static final String PAGE_TEMPLATE_GET_ALL = "PageTemplate.getAll";
@@ -60,11 +61,11 @@ public class PageTemplate implements Bas
 
     @OneToOne(cascade=CascadeType.ALL)
     @JoinColumn(name="parent_page_template_id")
-    private PageTemplate parentPageTemplate;
+    private JpaPageTemplate parentPageTemplate;
 
     @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL, 
mappedBy="parentPageTemplate")
     @OrderBy("renderSequence")
-    private List<PageTemplate> subPageTemplates;
+    private List<JpaPageTemplate> subPageTemplates;
 
     @ManyToOne
     @JoinColumn(name = "page_layout_id")
@@ -93,50 +94,62 @@ public class PageTemplate implements Bas
         this.entityId = entityId;
     }
 
+    @Override
     public PageType getPageType() {
         return pageType;
     }
 
+    @Override
     public void setPageType(PageType pageType) {
         this.pageType = pageType;
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public void setName(String name) {
         this.name = name;
     }
 
+    @Override
     public String getDescription() {
         return description;
     }
 
+    @Override
     public void setDescription(String description) {
         this.description = description;
     }
 
+    @Override
     public PageTemplate getParentPageTemplate() {
         return parentPageTemplate;
     }
 
+    @Override
     public void setParentPageTemplate(PageTemplate parentPageTemplate) {
-        this.parentPageTemplate =  parentPageTemplate;
+        this.parentPageTemplate = 
JpaConverter.getInstance().convert(parentPageTemplate, PageTemplate.class);
     }
 
+    @Override
     public PageLayout getPageLayout() {
         return pageLayout;
     }
 
+    @Override
     public void setPageLayout(PageLayout pageLayout) {
         this.pageLayout = pageLayout;
     }
 
+    @Override
     public List<PageTemplateRegion> getPageTemplateRegions() {
         return 
ConvertingListProxyFactory.createProxyList(PageTemplateRegion.class, 
pageTemplateRegions);
     }
 
+    @Override
     public void setPageTemplateRegions(List<PageTemplateRegion> 
pageTemplateRegions) {
         if(this.pageTemplateRegions == null) {
             this.pageTemplateRegions = new ArrayList<JpaPageTemplateRegion>();
@@ -147,27 +160,39 @@ public class PageTemplate implements Bas
         }
     }
 
+    @Override
     public long getRenderSequence() {
         return renderSequence;
     }
 
+    @Override
     public void setRenderSequence(long renderSequence) {
         this.renderSequence = renderSequence;
     }
 
+    @Override
     public boolean isDefaultTemplate() {
         return defaultTemplate;
     }
 
+    @Override
     public void setDefaultTemplate(boolean defaultTemplate) {
         this.defaultTemplate = defaultTemplate;
     }
 
+    @Override
     public List<PageTemplate> getSubPageTemplates() {
-        return subPageTemplates;
+        return ConvertingListProxyFactory.createProxyList(PageTemplate.class, 
subPageTemplates);
     }
 
+    @Override
     public void setSubPageTemplates(List<PageTemplate> subPageTemplates) {
-        this.subPageTemplates = subPageTemplates;
+        if(this.subPageTemplates == null) {
+            this.subPageTemplates = new ArrayList<JpaPageTemplate>();
+        }
+        this.getSubPageTemplates().clear();
+        if(subPageTemplates != null) {
+            this.getSubPageTemplates().addAll(subPageTemplates);
+        }
     }    
 }

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplateRegion.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplateRegion.java?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplateRegion.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/JpaPageTemplateRegion.java
 Mon Jun  4 17:22:51 2012
@@ -21,6 +21,7 @@ package org.apache.rave.portal.model;
 
 import org.apache.rave.persistence.BasicEntity;
 import org.apache.rave.portal.model.conversion.ConvertingListProxyFactory;
+import org.apache.rave.portal.model.conversion.JpaConverter;
 
 import javax.persistence.*;
 import java.io.Serializable;
@@ -50,7 +51,7 @@ public class JpaPageTemplateRegion imple
 
     @JoinColumn(name = "page_template_id")
     @ManyToOne(optional = false)
-    private PageTemplate pageTemplate;
+    private JpaPageTemplate pageTemplate;
 
     @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, 
orphanRemoval = true)
     @OrderBy("renderSequence")
@@ -82,13 +83,13 @@ public class JpaPageTemplateRegion imple
     }
 
     @Override
-    public PageTemplate getPageTemplate() {
+    public JpaPageTemplate getPageTemplate() {
         return pageTemplate;
     }
 
     @Override
     public void setPageTemplate(PageTemplate pageTemplate) {
-        this.pageTemplate = pageTemplate;
+        this.pageTemplate = JpaConverter.getInstance().convert(pageTemplate, 
PageTemplate.class);
     }
 
     @Override

Added: 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java?rev=1346039&view=auto
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
 (added)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
 Mon Jun  4 17:22:51 2012
@@ -0,0 +1,41 @@
+package org.apache.rave.portal.model;
+
+import java.util.List;
+
+public interface PageTemplate {
+    PageType getPageType();
+
+    void setPageType(PageType pageType);
+
+    String getName();
+
+    void setName(String name);
+
+    String getDescription();
+
+    void setDescription(String description);
+
+    PageTemplate getParentPageTemplate();
+
+    void setParentPageTemplate(PageTemplate parentPageTemplate);
+
+    PageLayout getPageLayout();
+
+    void setPageLayout(PageLayout pageLayout);
+
+    List<PageTemplateRegion> getPageTemplateRegions();
+
+    void setPageTemplateRegions(List<PageTemplateRegion> pageTemplateRegions);
+
+    long getRenderSequence();
+
+    void setRenderSequence(long renderSequence);
+
+    boolean isDefaultTemplate();
+
+    void setDefaultTemplate(boolean defaultTemplate);
+
+    List<PageTemplate> getSubPageTemplates();
+
+    void setSubPageTemplates(List<PageTemplate> subPageTemplates);
+}

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java
 Mon Jun  4 17:22:51 2012
@@ -18,31 +18,33 @@
  */
 package org.apache.rave.portal.repository.impl;
 
-import org.apache.rave.persistence.jpa.AbstractJpaRepository;
+import org.apache.rave.portal.model.JpaPageTemplate;
 import org.apache.rave.portal.model.PageTemplate;
 import org.apache.rave.portal.model.PageType;
 import org.apache.rave.portal.repository.PageTemplateRepository;
+import org.apache.rave.util.CollectionUtils;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
 import javax.persistence.TypedQuery;
 import java.util.List;
 
 @Repository
-public class JpaPageTemplateRepository extends 
AbstractJpaRepository<PageTemplate> implements PageTemplateRepository {
+public class JpaPageTemplateRepository implements PageTemplateRepository {
 
-    public JpaPageTemplateRepository() {
-        super(PageTemplate.class);
-    }
+    @PersistenceContext
+    private EntityManager manager;
 
     @Override
     public List<PageTemplate> getAll() {
-        TypedQuery<PageTemplate> query = 
manager.createNamedQuery(PageTemplate.PAGE_TEMPLATE_GET_ALL, 
PageTemplate.class);
-        return query.getResultList();
+        TypedQuery<JpaPageTemplate> query = 
manager.createNamedQuery(JpaPageTemplate.PAGE_TEMPLATE_GET_ALL, 
JpaPageTemplate.class);
+        return 
CollectionUtils.<PageTemplate>toBaseTypedList(query.getResultList());
     }
 
     @Override
-    public PageTemplate getDefaultPage(PageType pageType) {
-        TypedQuery<PageTemplate> query = 
manager.createNamedQuery(PageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE, 
PageTemplate.class);
+    public JpaPageTemplate getDefaultPage(PageType pageType) {
+        TypedQuery<JpaPageTemplate> query = 
manager.createNamedQuery(JpaPageTemplate.PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE,
 JpaPageTemplate.class);
         query.setParameter("pageType", pageType);
         return query.getSingleResult();
     }

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/main/resources/META-INF/persistence.xml
 Mon Jun  4 17:22:51 2012
@@ -36,7 +36,7 @@
             <class>org.apache.rave.portal.model.Tag</class>
             <class>org.apache.rave.portal.model.WidgetTag</class>
             <class>org.apache.rave.portal.model.PortalPreference</class>
-            <class>org.apache.rave.portal.model.PageTemplate</class>
+            <class>org.apache.rave.portal.model.JpaPageTemplate</class>
             <class>org.apache.rave.portal.model.JpaPageTemplateRegion</class>
             <class>org.apache.rave.portal.model.JpaPageTemplateWidget</class>
             <class>org.apache.rave.portal.model.PageUser</class>

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java
 Mon Jun  4 17:22:51 2012
@@ -63,7 +63,7 @@ public class JpaPageTemplateRepositoryTe
     @Test
     public void getDefaultPersonPage_valid(){
         // get default page template
-        PageTemplate pt = 
pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE);
+        JpaPageTemplate pt = 
(JpaPageTemplate)pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE);
         // default page tests
         assertNotNull(pt);
         assertEquals("Template for person profile pages", pt.getDescription());
@@ -76,8 +76,8 @@ public class JpaPageTemplateRepositoryTe
         assertEquals("# of widgets on parent page region", 2, 
pt.getPageTemplateRegions().get(0).getPageTemplateWidgets().size());
         assertEquals("# of sub pages for parent page",2, 
pt.getSubPageTemplates().size());
         // get default page sub pages
-        PageTemplate subPage1 = pt.getSubPageTemplates().get(0);
-        PageTemplate subPage2 = pt.getSubPageTemplates().get(1);
+        JpaPageTemplate subPage1 = 
(JpaPageTemplate)pt.getSubPageTemplates().get(0);
+        JpaPageTemplate subPage2 = 
(JpaPageTemplate)pt.getSubPageTemplates().get(1);
         // sub page 1 tests
         assertNotNull(subPage1);
         assertEquals("Template for the About sub page for the person profile", 
subPage1.getDescription());
@@ -155,7 +155,7 @@ public class JpaPageTemplateRepositoryTe
     @Test
     public void getDefaultUserPage_valid(){
         // get default page template
-        PageTemplate pt = pageTemplateRepository.getDefaultPage(PageType.USER);
+        JpaPageTemplate pt = 
(JpaPageTemplate)pageTemplateRepository.getDefaultPage(PageType.USER);
         // default page tests
         assertNotNull(pt);
         assertEquals("User profile pages", pt.getDescription());

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
 Mon Jun  4 17:22:51 2012
@@ -172,7 +172,7 @@ public class DefaultPageServiceTest {
     public void getAllPersonProfilePages_noPersonPage() {
         List<Page> VALID_PAGES = new ArrayList<Page>();
         Page personPage = new Page();
-        PageTemplate pageTemplate = new PageTemplate();
+        PageTemplate pageTemplate = new JpaPageTemplate();
         User user = new User();
 
         expect(pageRepository.getAllPages(VALID_USER_ID, 
PageType.PERSON_PROFILE)).andReturn(VALID_PAGES);
@@ -190,7 +190,7 @@ public class DefaultPageServiceTest {
     public void addNewUserPage_noExistingPages() {
         final String PAGE_NAME = "my new page";
         final Long EXPECTED_RENDER_SEQUENCE = 1L;
-        PageTemplate pageTemplate = new PageTemplate() ;
+        PageTemplate pageTemplate = new JpaPageTemplate() ;
         Page expectedPage = new Page();
         expectedPage.setName(PAGE_NAME);       
         expectedPage.setOwner(user);
@@ -281,7 +281,7 @@ public class DefaultPageServiceTest {
     public void addNewUserPage_noExistingPages_and_have_template() {
         final String PAGE_NAME = "my new page";
         final Long EXPECTED_RENDER_SEQUENCE = 1L;
-        PageTemplate pageTemplate = new PageTemplate();
+        PageTemplate pageTemplate = new JpaPageTemplate();
         Page userPage = new Page();
         userPage.setName("Page Template");
         
userPage.setRegions(createEmptyRegionList(pageLayout.getNumberOfRegions()));
@@ -427,7 +427,7 @@ public class DefaultPageServiceTest {
     public void addNewDefaultUserPage() {
         
         final Long EXPECTED_RENDER_SEQUENCE = 1L;
-        PageTemplate pageTemplate = new PageTemplate();
+        PageTemplate pageTemplate = new JpaPageTemplate();
         Page expectedPage = new Page();
         expectedPage.setName(defaultPageName);
         expectedPage.setOwner(user);

Modified: 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java?rev=1346039&r1=1346038&r2=1346039&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultUserServiceTest.java
 Mon Jun  4 17:22:51 2012
@@ -313,8 +313,8 @@ public class DefaultUserServiceTest {
     public void registerNewUser_valid(){
         User user = new User();
         expect(userRepository.save(user)).andReturn(user).once();
-        
expect(pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE)).andReturn(new
 PageTemplate()).once();
-        expect(pageRepository.createPageForUser(isA(User.class), 
isA(PageTemplate.class))).andReturn(new Page());
+        
expect(pageTemplateRepository.getDefaultPage(PageType.PERSON_PROFILE)).andReturn(new
 JpaPageTemplate()).once();
+        expect(pageRepository.createPageForUser(isA(User.class), 
isA(JpaPageTemplate.class))).andReturn(new Page());
         replay(userRepository, pageTemplateRepository, pageRepository);
         service.registerNewUser(user);
         verify(userRepository, pageTemplateRepository, pageRepository);


Reply via email to