You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2013/09/10 03:18:59 UTC

svn commit: r1521327 - in /rave/trunk/rave-components: rave-core/src/main/java/org/apache/rave/portal/repository/ rave-jpa/src/main/java/org/apache/rave/portal/model/ rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/ rave-jpa/src/test/java...

Author: mfranklin
Date: Tue Sep 10 01:18:59 2013
New Revision: 1521327

URL: http://svn.apache.org/r1521327
Log:
Implemented repository operations (RAVE-1054)

Modified:
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
    rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPage.java
    rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
    rave/trunk/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
    rave/trunk/rave-components/rave-jpa/src/test/resources/test_data.sql
    rave/trunk/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
    rave/trunk/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java Tue Sep 10 01:18:59 2013
@@ -29,7 +29,7 @@ import java.util.List;
  */
 public interface PageRepository extends Repository<Page>{
     /**
-     * Returns all pages of a given PageType owned by the user
+     * Returns all pages of a given page type where the user is a member of the page
      *
      * @param userId the userId to search by
      * @param pageType the pageType to search by
@@ -38,6 +38,15 @@ public interface PageRepository extends 
     List<Page> getAllPagesForUserType(String userId, String pageType);
 
     /**
+     * Returns all pages of a given type where the contextId matches the specified ID
+     *
+     * @param contextId the ID of the context to match
+     * @param pageType the type of the page
+     * @return a list of all the Page objects with the specified contextId of type pageType
+     */
+    List<Page> getPagesForContextType(String contextId, String pageType);
+
+    /**
      * Delete all pages for a userId of the supplied pageType
      *
      * @param userId the userId to search by

Modified: rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPage.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPage.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPage.java (original)
+++ rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPage.java Tue Sep 10 01:18:59 2013
@@ -49,7 +49,8 @@ import java.util.List;
         @NamedQuery(name = JpaPage.GET_ALL, query="SELECT p FROM JpaPage p"),
         @NamedQuery(name = JpaPage.GET_COUNT, query="SELECT count(p) FROM JpaPage p"),
         @NamedQuery(name = JpaPage.DELETE_BY_USER_ID_AND_PAGE_TYPE, query="DELETE FROM JpaPage p WHERE p.ownerId = :userId and p.pageType = :pageType"),
-        @NamedQuery(name = JpaPage.USER_HAS_PERSON_PAGE, query="SELECT count(p) FROM JpaPage p WHERE p.ownerId = :userId and p.pageType = :pageType")
+        @NamedQuery(name = JpaPage.USER_HAS_PERSON_PAGE, query="SELECT count(p) FROM JpaPage p WHERE p.ownerId = :userId and p.pageType = :pageType"),
+        @NamedQuery(name = JpaPage.GET_BY_CONTEXT_AND_PAGE_TYPE, query="SELECT p FROM JpaPage p WHERE p.contextId = :contextId and p.pageType = :pageType")
 })
 @Access(AccessType.FIELD)
 public class JpaPage implements BasicEntity, Serializable, Page {
@@ -59,6 +60,7 @@ public class JpaPage implements BasicEnt
     public static final String USER_HAS_PERSON_PAGE = "JpaPage.hasPersonPage";
     public static final String GET_ALL = "JpaPage.getAll";
     public static final String GET_COUNT = "JpaPage.getCount";
+    public static final String GET_BY_CONTEXT_AND_PAGE_TYPE = "JpaPage.getByContextAndPageType";
 
     @XmlAttribute(name="id")
     @Id @Column(name="entity_id")

Modified: rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java (original)
+++ rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java Tue Sep 10 01:18:59 2013
@@ -84,6 +84,14 @@ public class JpaPageRepository implement
     }
 
     @Override
+    public List<Page> getPagesForContextType(String contextId, String pageType) {
+        TypedQuery<JpaPage> query = manager.createNamedQuery(JpaPage.GET_BY_CONTEXT_AND_PAGE_TYPE, JpaPage.class);
+        query.setParameter("contextId", contextId);
+        query.setParameter("pageType", pageType.toUpperCase());
+        return CollectionUtils.<Page>toBaseTypedList(query.getResultList());
+    }
+
+    @Override
     public int deletePages(String userId, String pageType) {
         List<Page> pages = getAllPagesForUserType(userId, pageType);
         int pageCount = pages.size();

Modified: rave/trunk/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java (original)
+++ rave/trunk/rave-components/rave-jpa/src/test/java/org/apache/rave/portal/repository/impl/JpaPageRepositoryTest.java Tue Sep 10 01:18:59 2013
@@ -121,6 +121,13 @@ public class JpaPageRepositoryTest {
     }
 
     @Test
+    public void getPagesByContextAndType() {
+        List<Page> pages = repository.getPagesForContextType("foo", PageType.USER.toString());
+        assertThat(pages, is(notNullValue()));
+        assertThat(pages.size(), is(1));
+    }
+
+    @Test
     public void getAllPages_validUser_validSubPagePageSet() {
         List<Page> pages = repository.getAllPagesForUserType(USER_ID, PageType.SUB_PAGE.toString());
         assertThat(pages, is(notNullValue()));

Modified: rave/trunk/rave-components/rave-jpa/src/test/resources/test_data.sql
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-jpa/src/test/resources/test_data.sql?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-jpa/src/test/resources/test_data.sql (original)
+++ rave/trunk/rave-components/rave-jpa/src/test/resources/test_data.sql Tue Sep 10 01:18:59 2013
@@ -305,8 +305,8 @@ UPDATE RAVE_PORTAL_SEQUENCES SET seq_cou
 
 --- Layout for user_id_1 ---
 set @page_1_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_seq);
-INSERT INTO page (entity_id, name, owner_id, parent_page_id, page_layout_id, page_type)
-values (@page_1_id, 'Main', @user_id_1, null, @two_col_id, 'USER');
+INSERT INTO page (entity_id, name, owner_id, context_id, parent_page_id, page_layout_id, page_type)
+values (@page_1_id, 'Main', @user_id_1, 'foo', null, @two_col_id, 'USER');
 UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_seq;
 
 --Set up page user data

Modified: rave/trunk/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java (original)
+++ rave/trunk/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java Tue Sep 10 01:18:59 2013
@@ -29,6 +29,7 @@ import org.apache.rave.portal.model.impl
 import org.apache.rave.portal.repository.MongoPageOperations;
 import org.apache.rave.portal.repository.PageRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Repository;
 
@@ -54,6 +55,11 @@ public class MongoDbPageRepository imple
     }
 
     @Override
+    public List<Page> getPagesForContextType(String contextId, String pageType) {
+        return template.find(query(where("pageType").is(getString(pageType)).andOperator(where("contextId").is(contextId))));
+    }
+
+    @Override
     public int deletePages(String userId, String pageType) {
         Query query = query(where("pageType").is(pageType).andOperator(where("ownerId").is(userId)));
         int count = (int)template.count(query);

Modified: rave/trunk/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java?rev=1521327&r1=1521326&r2=1521327&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java (original)
+++ rave/trunk/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java Tue Sep 10 01:18:59 2013
@@ -80,6 +80,27 @@ public class MongoDbPageRepositoryTest {
         assertNotNull(result);
 
     }
+    @Test
+    public void getByContext(){
+        String contextId = "1234L";
+        String userId1 = "9999L";
+        String pageType = PageType.USER.toString();
+        PageUserImpl user = new PageUserImpl();
+        user.setId("3333L");
+        user.setUserId(userId1);
+        List<Page> pages = Lists.newArrayList();
+        List<PageUser> page_users = Lists.newArrayList();
+        page_users.add(user);
+        Page page = new PageImpl();
+        page.setMembers(page_users);
+        pages.add(page);
+
+        expect(template.find(isA(Query.class))).andReturn(pages);
+        replay(template);
+
+        List<Page> result = repo.getPagesForContextType(contextId, pageType);
+        assertNotNull(result);
+    }
 
     @Test
     public void getType(){