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);