You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by er...@apache.org on 2013/07/26 17:06:31 UTC

svn commit: r1507343 - 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-mongodb/src/main/...

Author: erinnp
Date: Fri Jul 26 15:06:30 2013
New Revision: 1507343

URL: http://svn.apache.org/r1507343
Log:
RAVE-999, RAVE-1000. Add ResourceRepository Interface for common methods needed for rest resources. Implemented on PageRepository, following model of widgetrepository.

Modified:
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/PageRepository.java
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetRepository.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-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.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=1507343&r1=1507342&r2=1507343&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 Fri Jul 26 15:06:30 2013
@@ -20,13 +20,14 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.repository.Repository;
 import org.apache.rave.model.*;
+import org.apache.rave.repository.ResourceRepository;
 
 import java.util.List;
 
 /**
  * Provides persistence operations for the {@link org.apache.rave.model.Page} class
  */
-public interface PageRepository extends Repository<Page> {
+public interface PageRepository extends Repository<Page>, ResourceRepository<Page> {
     /**
      * Returns all pages of a given PageType owned by the user
      *

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetRepository.java?rev=1507343&r1=1507342&r2=1507343&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/WidgetRepository.java Fri Jul 26 15:06:30 2013
@@ -21,34 +21,13 @@ package org.apache.rave.portal.repositor
 import org.apache.rave.repository.Repository;
 import org.apache.rave.model.*;
 import org.apache.rave.portal.model.util.WidgetStatistics;
+import org.apache.rave.repository.ResourceRepository;
 
 import java.util.List;
 import java.util.Map;
 
 
-public interface WidgetRepository extends Repository<Widget> {
-    /**
-     * Gets a list of <strong>all</strong> widgets in the repository
-     *
-     * @return a valid List
-     */
-    List<Widget> getAll();
-
-    /**
-     * List of Widgets with the same condition as in {@link #getAll()}
-     * but with a limited amount of Widgets.
-     *
-     * @param offset   start point within the total resultset
-     * @param pageSize maximum number of items to be returned (for paging)
-     * @return a List of widgets with of at most the number of items in pageSize
-     */
-    List<Widget> getLimitedList(int offset, int pageSize);
-
-    /**
-     * @return the total number of {@link org.apache.rave.model.Widget}'s in the repository. Useful for paging.
-     */
-    int getCountAll();
-
+public interface WidgetRepository extends Repository<Widget>, ResourceRepository<Widget> {
     /**
      * Gets a List of {@link Widget}'s by performing a free text search
      *

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=1507343&r1=1507342&r2=1507343&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 Fri Jul 26 15:06:30 2013
@@ -46,6 +46,8 @@ import java.util.List;
 @XmlAccessorType(XmlAccessType.NONE)
 @Table(name="page", uniqueConstraints={@UniqueConstraint(columnNames={"owner_id","name","page_type"})})
 @NamedQueries({
+        @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")
 })
@@ -55,6 +57,8 @@ public class JpaPage implements BasicEnt
 
     public static final String DELETE_BY_USER_ID_AND_PAGE_TYPE = "JpaPage.deleteByUserIdAndPageType";
     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";
 
     @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=1507343&r1=1507342&r2=1507343&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 Fri Jul 26 15:06:30 2013
@@ -29,10 +29,12 @@ import org.springframework.stereotype.Re
 
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 import java.util.ArrayList;
 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
@@ -253,4 +255,22 @@ public class JpaPageRepository implement
         return pages;
     }
 
+    @Override
+    public List<Page> getAll() {
+        TypedQuery<Page> query = manager.createNamedQuery(JpaPage.GET_ALL, Page.class);
+        return CollectionUtils.<Page>toBaseTypedList(query.getResultList());
+    }
+
+    @Override
+    public List<Page> getLimitedList(int offset, int limit) {
+        TypedQuery<Page> query = manager.createNamedQuery(JpaPage.GET_ALL, Page.class);
+        return CollectionUtils.<Page>toBaseTypedList(getPagedResultList(query, offset, limit));
+    }
+
+    @Override
+    public int getCountAll() {
+        Query query = manager.createNamedQuery(JpaWidget.WIDGET_COUNT_ALL);
+        Number countResult = (Number) query.getSingleResult();
+        return countResult.intValue();
+    }
 }
\ No newline at end of file

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=1507343&r1=1507342&r2=1507343&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 Fri Jul 26 15:06:30 2013
@@ -266,4 +266,18 @@ public class MongoDbPageRepository imple
     }
 
 
+    @Override
+    public List<Page> getAll() {
+        return template.find(new Query());
+    }
+
+    @Override
+    public List<Page> getLimitedList(int offset, int pageSize) {
+        return template.find(new Query().skip(offset).limit(pageSize));
+    }
+
+    @Override
+    public int getCountAll() {
+        return (int) template.count(new Query());
+    }
 }