Updated JPA version of PageTemplateRepository (RAVE-1062) git-svn-id: https://svn.apache.org/repos/asf/rave/trunk@1530735 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/98feb348 Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/98feb348 Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/98feb348 Branch: refs/heads/angular Commit: 98feb34831e4f49a878e7044f60b1c2511ad4b23 Parents: c811035 Author: Matthew B. Franklin <[email protected]> Authored: Wed Oct 9 17:57:02 2013 +0000 Committer: Matthew B. Franklin <[email protected]> Committed: Wed Oct 9 17:57:02 2013 +0000 ---------------------------------------------------------------------- .../repository/PageTemplateRepository.java | 2 +- .../impl/DefaultPageTemplatesResourceTest.java | 2 +- .../rave/portal/model/JpaPageTemplate.java | 6 +++-- .../impl/JpaPageTemplateRepository.java | 16 +++++++----- .../impl/JpaPageTemplateRepositoryTest.java | 27 +++++++++++++++++--- .../rave-jpa/src/test/resources/test_data.sql | 26 +++++++++++++++++++ .../impl/MongoDbPageTemplateRepository.java | 2 +- 7 files changed, 66 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java index 5ec2d59..b06865d 100644 --- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java +++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageTemplateRepository.java @@ -34,7 +34,7 @@ public interface PageTemplateRepository extends Repository<PageTemplate> { * @param pageType the page type used to filter templates * @return a list of all page templates for the type in the repository */ - List<PageTemplate> getAllForType(String pageType); + List<PageTemplate> getAll(String pageType); /** * Gets the default page template for the given type http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-core/src/test/java/org/apache/rave/rest/impl/DefaultPageTemplatesResourceTest.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-core/src/test/java/org/apache/rave/rest/impl/DefaultPageTemplatesResourceTest.java b/rave-components/rave-core/src/test/java/org/apache/rave/rest/impl/DefaultPageTemplatesResourceTest.java index ef1f2e0..03daecb 100644 --- a/rave-components/rave-core/src/test/java/org/apache/rave/rest/impl/DefaultPageTemplatesResourceTest.java +++ b/rave-components/rave-core/src/test/java/org/apache/rave/rest/impl/DefaultPageTemplatesResourceTest.java @@ -65,7 +65,7 @@ public class DefaultPageTemplatesResourceTest { int count = 4; String context = "context"; List<PageTemplate> answer = getRepositoryTemplates(count); - expect(repository.getAllForType(context)).andReturn(answer); + expect(repository.getAll(context)).andReturn(answer); replay(repository); SearchResult< org.apache.rave.rest.model.PageTemplate> result = resource.getAllForContext(context); http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java index e4b6417..66dc464 100644 --- a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java +++ b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java @@ -34,8 +34,9 @@ import java.util.List; @Entity @Table(name="page_template") @NamedQueries({ - @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") + @NamedQuery(name = JpaPageTemplate.PAGE_TEMPLATE_GET_ALL, query = "SELECT p FROM JpaPageTemplate p WHERE p.pageType <> 'SUB_PAGE' 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"), + @NamedQuery(name = JpaPageTemplate.PAGE_TEMPLATE_GET_ALL_FOR_TYPE, query = "SELECT p FROM JpaPageTemplate p WHERE p.pageType = :pageType") }) @Access(AccessType.FIELD) public class JpaPageTemplate implements BasicEntity, Serializable, PageTemplate { @@ -43,6 +44,7 @@ public class JpaPageTemplate implements BasicEntity, Serializable, PageTemplate private static final long serialVersionUID = 1L; public static final String PAGE_TEMPLATE_GET_ALL = "PageTemplate.getAll"; public static final String PAGE_TEMPLATE_GET_DEFAULT_PAGE_BY_TYPE = "PageTemplate.getDefaultPage"; + public static final String PAGE_TEMPLATE_GET_ALL_FOR_TYPE = "PageTemplate.getAllByType"; @Id @Column(name="entity_id") http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java index 63415cf..48a523f 100644 --- a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java +++ b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepository.java @@ -31,6 +31,7 @@ import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import java.util.List; +import static org.apache.rave.persistence.jpa.util.JpaUtil.getPagedResultList; import static org.apache.rave.persistence.jpa.util.JpaUtil.saveOrUpdate; @Repository @@ -47,17 +48,20 @@ public class JpaPageTemplateRepository implements PageTemplateRepository { @Override public List<PageTemplate> getLimitedList(int offset, int limit) { - return null; //To change body of implemented methods use File | Settings | File Templates. + TypedQuery<JpaPageTemplate> query = manager.createNamedQuery(JpaPageTemplate.PAGE_TEMPLATE_GET_ALL, JpaPageTemplate.class); + return CollectionUtils.<PageTemplate>toBaseTypedList(getPagedResultList(query, offset, limit)); } @Override public int getCountAll() { - return 0; //To change body of implemented methods use File | Settings | File Templates. + return getAll().size(); } @Override - public List<PageTemplate> getAllForType(String pageType) { - return null; //To change body of implemented methods use File | Settings | File Templates. + public List<PageTemplate> getAll(String pageType) { + TypedQuery<JpaPageTemplate> query = manager.createNamedQuery(JpaPageTemplate.PAGE_TEMPLATE_GET_ALL_FOR_TYPE, JpaPageTemplate.class); + query.setParameter("pageType", pageType); + return CollectionUtils.<PageTemplate>toBaseTypedList(query.getResultList()); } @Override @@ -74,7 +78,7 @@ public class JpaPageTemplateRepository implements PageTemplateRepository { @Override public PageTemplate get(String id) { - return null; //To change body of implemented methods use File | Settings | File Templates. + return manager.find(JpaPageTemplate.class, id); } @Override @@ -84,6 +88,6 @@ public class JpaPageTemplateRepository implements PageTemplateRepository { @Override public void delete(PageTemplate item) { - throw new NotImplementedException(); + manager.remove(JpaConverter.getInstance().convert(item, PageTemplate.class)); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java b/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java index ea78d8d..1c959ad 100644 --- a/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java +++ b/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageTemplateRepositoryTest.java @@ -35,10 +35,9 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.*; @Transactional(readOnly=true) @RunWith(SpringJUnit4ClassRunner.class) @@ -64,7 +63,27 @@ public class JpaPageTemplateRepositoryTest { @Test public void getAll_valid(){ List<PageTemplate> pageTemplateList = pageTemplateRepository.getAll(); + assertThat(pageTemplateList.size(), is(equalTo(3))); + } + + @Test + public void getAll_forType_valid(){ + List<PageTemplate> pageTemplateList = pageTemplateRepository.getAll("PERSON_PROFILE"); + assertThat(pageTemplateList.size(), is(equalTo(2))); + } + + @Test + public void getAll_limited(){ + List<PageTemplate> pageTemplateList = pageTemplateRepository.getLimitedList(0, 1); + assertThat(pageTemplateList.size(), is(equalTo(1))); + } + + @Test + public void get_valid(){ + PageTemplate pageTemplateList = pageTemplateRepository.get("1"); assertNotNull(pageTemplateList); + assertThat(pageTemplateList.getId(), is(equalTo("1"))); + assertThat(pageTemplateList.getPageType(), is(equalTo("PERSON_PROFILE"))); } @Test http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-jpa/src/test/resources/test_data.sql ---------------------------------------------------------------------- diff --git a/rave-components/rave-jpa/src/test/resources/test_data.sql b/rave-components/rave-jpa/src/test/resources/test_data.sql index beb606b..735d42b 100644 --- a/rave-components/rave-jpa/src/test/resources/test_data.sql +++ b/rave-components/rave-jpa/src/test/resources/test_data.sql @@ -1173,6 +1173,32 @@ insert into page_template_widget (entity_id, page_template_region_id, render_seq values (@next_person_profile_subpage2_template_widget_id, @person_profile_subpage2_template_region_id, 0, @my_activity_widget_id, true); UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq; +---------------------------------------- +-- secondary person profile parent page templates +---------------------------------------- +-- page +set @person_profile_page_template_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_seq); +insert into page_template (entity_id, page_type, page_layout_id, name, description, parent_page_template_id, render_sequence, default_template) +values (@person_profile_page_template_id, 'PERSON_PROFILE', @person_profile_layout_id, 'Person Profile 2', 'Template for person profile pages', null, 0, false); +UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_seq; + +-- regions +set @person_profile_page_template_region_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_region_seq); +insert into page_template_region (entity_id, render_sequence, page_template_id, locked) +values (@person_profile_page_template_region_id, 0, @person_profile_page_template_id, true); +UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_region_seq; + +-- widgets +set @next_person_profile_page_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq); +insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id, locked) +values (@next_person_profile_page_template_widget_id, @person_profile_page_template_region_id, 0, @my_groups_widget_id, true); +UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq; + +set @next_person_profile_page_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq); +insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id, locked) +values (@next_person_profile_page_template_widget_id, @person_profile_page_template_region_id, 1, @work_experience_widget_id, true); +UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq; + ---------------------------------------- -- user page template http://git-wip-us.apache.org/repos/asf/rave/blob/98feb348/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java index 2678f3b..be0bdb3 100644 --- a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java +++ b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java @@ -56,7 +56,7 @@ public class MongoDbPageTemplateRepository implements PageTemplateRepository { } @Override - public List<PageTemplate> getAllForType(String pageType) { + public List<PageTemplate> getAll(String pageType) { return template.find(query(where("pageType").is(pageType.toUpperCase()))); }
