You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by cg...@apache.org on 2012/10/29 05:00:05 UTC

svn commit: r1403166 [2/11] - in /rave/trunk: ./ rave-components/rave-commons/src/main/java/org/apache/rave/persistence/ rave-components/rave-core/src/main/java/org/apache/rave/portal/model/ rave-components/rave-core/src/main/java/org/apache/rave/porta...

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetImpl.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetImpl.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetImpl.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetImpl.java Mon Oct 29 03:59:56 2012
@@ -20,10 +20,11 @@ package org.apache.rave.portal.model.imp
 
 import org.apache.rave.portal.model.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class WidgetImpl implements Widget {
-    private Long id;
+    private String id;
     private String title;
     private String titleUrl;
     private String url;
@@ -34,31 +35,31 @@ public class WidgetImpl implements Widge
     private String authorEmail;
     private String description;
     private WidgetStatus widgetStatus;
-    private List<WidgetComment> comments;
-    private User owner;
+    private List<WidgetComment> comments = new ArrayList<WidgetComment>();
+    private String ownerId;
     private boolean disableRendering;
     private String disableRenderingMessage;
-    private List<WidgetRating> ratings;
-    private List<WidgetTag> tags;
-    private List<Category> categories;
+    private List<WidgetRating> ratings = new ArrayList<WidgetRating>();
+    private List<WidgetTag> tags = new ArrayList<WidgetTag>();
+    private List<Category> categories = new ArrayList<Category>();
     private boolean featured;
 
     public WidgetImpl() {}
 
-    public WidgetImpl(long id) {
+    public WidgetImpl(String id) {
         this.id = id;
     }
 
-    public WidgetImpl(long id, String url) {
+    public WidgetImpl(String id, String url) {
         this.id = id;
         this.url = url;
     }
 
-    public Long getId() {
+    public String getId() {
         return id;
     }
 
-    public void setId(Long id) {
+    public void setId(String id) {
         this.id = id;
     }
 
@@ -150,12 +151,12 @@ public class WidgetImpl implements Widge
         this.comments = comments;
     }
 
-    public User getOwner() {
-        return owner;
+    public String getOwnerId() {
+        return ownerId;
     }
 
-    public void setOwner(User owner) {
-        this.owner = owner;
+    public void setOwnerId(String owner) {
+        this.ownerId = owner;
     }
 
     public boolean isDisableRendering() {
@@ -223,7 +224,7 @@ public class WidgetImpl implements Widge
         if (disableRenderingMessage != null ? !disableRenderingMessage.equals(widget.disableRenderingMessage) : widget.disableRenderingMessage != null)
             return false;
         if (id != null ? !id.equals(widget.id) : widget.id != null) return false;
-        if (owner != null ? !owner.equals(widget.owner) : widget.owner != null) return false;
+        if (ownerId != null ? !ownerId.equals(widget.ownerId) : widget.ownerId != null) return false;
         if (ratings != null ? !ratings.equals(widget.ratings) : widget.ratings != null) return false;
         if (screenshotUrl != null ? !screenshotUrl.equals(widget.screenshotUrl) : widget.screenshotUrl != null)
             return false;
@@ -253,7 +254,7 @@ public class WidgetImpl implements Widge
         result = 31 * result + (description != null ? description.hashCode() : 0);
         result = 31 * result + (widgetStatus != null ? widgetStatus.hashCode() : 0);
         result = 31 * result + (comments != null ? comments.hashCode() : 0);
-        result = 31 * result + (owner != null ? owner.hashCode() : 0);
+        result = 31 * result + (ownerId != null ? ownerId.hashCode() : 0);
         result = 31 * result + (disableRendering ? 1 : 0);
         result = 31 * result + (disableRenderingMessage != null ? disableRenderingMessage.hashCode() : 0);
         result = 31 * result + (ratings != null ? ratings.hashCode() : 0);

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetRatingImpl.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetRatingImpl.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetRatingImpl.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetRatingImpl.java Mon Oct 29 03:59:56 2012
@@ -22,42 +22,37 @@ import org.apache.rave.portal.model.Widg
 
 public class WidgetRatingImpl implements WidgetRating {
 
-    private Long id;
-    private Long widgetId;
-    private Long userId;
+    private String id;
+    private String widgetId;
+    private String userId;
     private Integer score;
 
     public WidgetRatingImpl() {
     }
 
-    public WidgetRatingImpl(long id, long widgetId, long userId, int score) {
+    public WidgetRatingImpl(String id) {
+        this.id = id;
+    }
+
+    public WidgetRatingImpl(String id, String userId, int score) {
         this.id = id;
-        this.widgetId = widgetId;
         this.userId = userId;
         this.score = score;
     }
 
-    public Long getId() {
+    public String getId() {
         return id;
     }
 
-    public void setId(Long id) {
+    public void setId(String id) {
         this.id = id;
     }
 
-    public Long getWidgetId() {
-        return widgetId;
-    }
-
-    public void setWidgetId(Long widgetId) {
-        this.widgetId = widgetId;
-    }
-
-    public Long getUserId() {
+    public String getUserId() {
         return userId;
     }
 
-    public void setUserId(Long userId) {
+    public void setUserId(String userId) {
         this.userId = userId;
     }
 

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetTagImpl.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetTagImpl.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetTagImpl.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/WidgetTagImpl.java Mon Oct 29 03:59:56 2012
@@ -26,58 +26,34 @@ import java.util.Date;
 
 public class WidgetTagImpl implements WidgetTag {
 
-    private Long widgetId;
-    private User user;
-    private Tag tag;
+    private String userId;
+    private String tagId;
     private Date createdDate;
 
-    public WidgetTagImpl() {
-    }
-
-    public WidgetTagImpl(Long widgetId, User user, Date createdDate, Tag tag) {
-        this.widgetId = widgetId;
-        this.user = user;
-        this.tag = tag;
+    public WidgetTagImpl(User user, Date createdDate, Tag tag) {
+        this.userId = user.getId();
+        this.tagId = tag.getId();
         this.createdDate = createdDate;
     }
 
-    @Override
-    public Long getWidgetId() {
-        return this.widgetId;
-    }
-
-    @Override
-    public void setWidgetId(Long id) {
-        this.widgetId = id;
-    }
-
-    @Override
-    public User getUser() {
-        return this.user;
-    }
-
-    @Override
-    public void setUser(User user) {
-        this.user = user;
+    public WidgetTagImpl(String userId, Date createdDate, String tagId) {
+        this.userId = userId;
+        this.tagId = tagId;
+        this.createdDate = createdDate;
     }
 
     @Override
-    public Tag getTag() {
-        return this.tag;
+    public String getUserId() {
+        return this.userId;
     }
 
     @Override
-    public void setTag(Tag tag) {
-        this.tag = tag;
+    public String getTagId() {
+        return this.tagId;
     }
 
     @Override
     public Date getCreatedDate() {
        return this.createdDate;
     }
-
-    @Override
-    public void setCreatedDate(Date date) {
-        this.createdDate = date;
-    }
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/ModelUtils.java Mon Oct 29 03:59:56 2012
@@ -37,13 +37,13 @@ public class ModelUtils {
 
     public static final String STANDARD_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
 
-    public static void normalizeRegionWidgetPreferences(long regionWidgetId, List<RegionWidgetPreference> preferences) {
+    public static void normalizeRegionWidgetPreferences(String regionWidgetId, List<RegionWidgetPreference> preferences) {
         for (RegionWidgetPreference preference : preferences) {
             normalizeRegionWidgetPreference(regionWidgetId, preference);
         }
     }
 
-    public static void normalizeRegionWidgetPreference(long regionWidgetId, RegionWidgetPreference regionWidgetPreference) {
+    public static void normalizeRegionWidgetPreference(String regionWidgetId, RegionWidgetPreference regionWidgetPreference) {
         regionWidgetPreference.setRegionWidgetId(regionWidgetId);
     }
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceSearchResult.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceSearchResult.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceSearchResult.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceSearchResult.java Mon Oct 29 03:59:56 2012
@@ -50,7 +50,7 @@ public class WidgetMarketplaceSearchResu
 	    Long widgetIndex = 1L;
 		List<Widget> widgets = new ArrayList<Widget>();
 		for (MarketplaceWidgetResult widget:getWidgets()){
-			widgets.add(widget.toWidget(widgetIndex));
+			widgets.add(widget.toWidget(widgetIndex.toString()));
 			widgetIndex++;
 		}
 		
@@ -102,7 +102,7 @@ public class WidgetMarketplaceSearchResu
 		public String id;
 		public String downloadUrl;
 				
-		public Widget toWidget(Long widgetIndex){
+		public Widget toWidget(String widgetIndex){
 			ExternalWidgetImpl widget = new ExternalWidgetImpl(widgetIndex);
 			widget.setTitle(name);
 			widget.setDescription(description);

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceWidgetResult.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceWidgetResult.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceWidgetResult.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/WidgetMarketplaceWidgetResult.java Mon Oct 29 03:59:56 2012
@@ -33,7 +33,7 @@ public class WidgetMarketplaceWidgetResu
 
     public Widget getWidget(){
         MarketplaceWidgetDetailResult result = getWidgetProfile();
-        return result.toWidget(1L);
+        return result.toWidget("1");
     }
     
     /**
@@ -42,10 +42,7 @@ public class WidgetMarketplaceWidgetResu
     public MarketplaceWidgetDetailResult getWidgetProfile() {
         return widgetProfile;
     }
-    
-    /**
-     * @param widgets the widgets to set
-     */
+
     public void setWidgetProfile(MarketplaceWidgetDetailResult profile) {
         this.widgetProfile = profile;
     }
@@ -66,7 +63,7 @@ public class WidgetMarketplaceWidgetResu
         public String downloadUrl;
         
                 
-        public Widget toWidget(Long widgetIndex){
+        public Widget toWidget(String widgetIndex){
             ExternalWidgetImpl widget = new ExternalWidgetImpl(widgetIndex);
             widget.setTitle(name);
             widget.setDescription(description);

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/omdl/OmdlOutputAdapter.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/omdl/OmdlOutputAdapter.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/omdl/OmdlOutputAdapter.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/util/omdl/OmdlOutputAdapter.java Mon Oct 29 03:59:56 2012
@@ -29,7 +29,11 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlValue;
 
 import org.apache.rave.portal.model.Page;
+import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.service.UserService;
+import org.apache.rave.portal.service.WidgetService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
@@ -40,7 +44,7 @@ import org.springframework.stereotype.Co
  * for more information on the specification.
  * 
  */
-@Component
+//@Component
 @XmlRootElement(name = "workspace")
 @XmlAccessorType(XmlAccessType.NONE)
 public class OmdlOutputAdapter implements OmdlConstants {
@@ -79,7 +83,14 @@ public class OmdlOutputAdapter implement
 
     private List<OmdlWidget> widgetsList;
 
-    public OmdlOutputAdapter(){}
+    private WidgetService widgetService;
+    private UserService userService;
+
+    //@Autowired
+    public OmdlOutputAdapter(WidgetService widgetService, UserService userService){
+        this.widgetService = widgetService;
+        this.userService = userService;
+    }
 
     public void buildModel(Page page, String omdlUrl, String wookieUrl) {
         this.wookieUrl = wookieUrl;
@@ -95,7 +106,7 @@ public class OmdlOutputAdapter implement
         widgetsList = new ArrayList<OmdlWidget>();
         for(int i=0;i<page.getRegions().size(); i++){
             for(int j=0;j<page.getRegions().get(i).getRegionWidgets().size();j++){
-                 Widget widget = page.getRegions().get(i).getRegionWidgets().get(j).getWidget();
+                 Widget widget = widgetService.getWidget(page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId());
                  omdlWidget = new OmdlWidget();
                  omdlWidget.setUrl(widget.getUrl());
                  omdlWidget.setLink(createLinkElement(widget.getType(), widget.getUrl()));
@@ -133,11 +144,12 @@ public class OmdlOutputAdapter implement
 
     private String getCreator(Page page){
         String result="";
-        result = page.getOwner().getDisplayName();
+        User user = userService.getUserById(page.getOwnerId());
+        result = user.getDisplayName();
         if(result == null || result.equals("")){
-            result = page.getOwner().getPreferredName();
+            result = user.getPreferredName();
             if(result == null || result.equals("")){
-                result = page.getOwner().getUsername();
+                result = user.getUsername();
             }
         }
         return result;

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/CategoryRepository.java Mon Oct 29 03:59:56 2012
@@ -34,5 +34,5 @@ public interface CategoryRepository exte
      * @param userId
      * @return the number of Categories modified
      */
-    int removeFromCreatedOrModifiedFields(long userId);
+    int removeFromCreatedOrModifiedFields(String userId);
 }
\ No newline at end of file

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=1403166&r1=1403165&r2=1403166&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 Mon Oct 29 03:59:56 2012
@@ -34,7 +34,7 @@ public interface PageRepository extends 
      * @param pageType the pageType to search by
      * @return a list of all the Page objects owned by userId of type pageType
      */
-    List<Page> getAllPages(Long userId, PageType pageType);
+    List<Page> getAllPages(String userId, PageType pageType);
 
     /**
      * Delete all pages for a userId of the supplied pageType
@@ -42,7 +42,7 @@ public interface PageRepository extends 
      * @param pageType
      * @return the number of pages deleted
      */
-    int deletePages(Long userId, PageType pageType);
+    int deletePages(String userId, PageType pageType);
 
     /**
      * Create either a Person or User Page from PageTemplate for the given user
@@ -58,7 +58,7 @@ public interface PageRepository extends 
      * @param userId
      * @return boolean
      */
-    boolean hasPersonPage(long userId);
+    boolean hasPersonPage(String userId);
 
     /**
      * Returns a list of pageUser records of a certain pageType.
@@ -67,7 +67,7 @@ public interface PageRepository extends 
      * @param pageType
      * @return a list of pageUser
      */
-    public List<PageUser> getPagesForUser(Long userId, PageType pageType);
+    public List<PageUser> getPagesForUser(String userId, PageType pageType);
 
 
     /**
@@ -76,5 +76,5 @@ public interface PageRepository extends 
      * @param pageId
      * @return a single pageUser
      */
-    public PageUser getSingleRecord(Long userId, Long pageId);
+    public PageUser getSingleRecord(String userId, String pageId);
 }
\ No newline at end of file

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/TagRepository.java Mon Oct 29 03:59:56 2012
@@ -46,9 +46,4 @@ public interface TagRepository extends R
 
     Tag getByKeyword(String keyword);
 
-    /**
-     * @return a List of all tag not link to this widget{@link org.apache.rave.portal.model.Tag}'s.
-     */
-
-    List<Tag> getAvailableTagsByWidgetId(Long widgetId);
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/UserRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/UserRepository.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/UserRepository.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/repository/UserRepository.java Mon Oct 29 03:59:56 2012
@@ -87,7 +87,7 @@ public interface UserRepository extends 
      * @param widgetId the entityId of the Widget to search
      * @return List of User objects in alphabetical order sorted by familyname, givenname
      */
-    List<User> getAllByAddedWidget(long widgetId);
+    List<User> getAllByAddedWidget(String widgetId);
 
     /**
      * Gets a {@link org.apache.rave.portal.model.User} by generated forgot email hash

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=1403166&r1=1403165&r2=1403166&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 Mon Oct 29 03:59:56 2012
@@ -19,10 +19,7 @@
 package org.apache.rave.portal.repository;
 
 import org.apache.rave.persistence.Repository;
-import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.model.WidgetRating;
-import org.apache.rave.portal.model.WidgetStatus;
+import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.util.WidgetStatistics;
 
 import java.util.List;
@@ -132,7 +129,7 @@ public interface WidgetRepository extend
      * @param user_id id of the user
      * @return {@link WidgetStatistics} with the rating information
      */
-    WidgetStatistics getWidgetStatistics(long widget_id, long user_id);
+    WidgetStatistics getWidgetStatistics(String widget_id, String user_id);
 
     /**
      * Generates the mapping of widget statistics for the user.
@@ -140,7 +137,7 @@ public interface WidgetRepository extend
      * @param userId id of the user
      * @return Mapping of {@link WidgetStatistics} objects keyed off of the widget's entityId
      */
-    Map<Long, WidgetStatistics> getAllWidgetStatistics(long userId);
+    Map<String, WidgetStatistics> getAllWidgetStatistics(String userId);
 
     /**
      * Generates the mapping of widget ratings for the user.
@@ -148,7 +145,7 @@ public interface WidgetRepository extend
      * @param userId id of the user
      * @return Mapping of {@link org.apache.rave.portal.model.WidgetRating} objects keyed off of the widget's entityId
      */
-    Map<Long, WidgetRating> getUsersWidgetRatings(long userId);
+    Map<String, WidgetRating> getUsersWidgetRatings(String userId);
 
     /**
 	  * Gets a List of {@link Widget}'s by performing a tag search
@@ -174,5 +171,79 @@ public interface WidgetRepository extend
      * @param userId the widget owner to unassign
      * @return the number of widgets updated
      */
-     int unassignWidgetOwner(long userId);
+     int unassignWidgetOwner(String userId);
+
+    // ***************************************************************************************************************
+    // Widget Tag Methods
+    // ***************************************************************************************************************
+
+    /**
+     * Tries to find a {@link org.apache.rave.portal.model.WidgetTag} by the id's of a Widget and Tag keyword
+     *
+     * @param widgetId unique identifier of a Widget
+     * @param keyword   tag's keyword
+     * @return {@link org.apache.rave.portal.model.WidgetTag} if it exists, otherwise {@literal null}
+     */
+     WidgetTag getTagByWidgetIdAndKeyword(String widgetId, String keyword);
+
+    /**
+     * Tries to find a {@link org.apache.rave.portal.model.WidgetTag} by the id of the Tag
+     *
+     * @param widgetTagId   tag's id
+     * @return {@link org.apache.rave.portal.model.WidgetTag} if it exists, otherwise {@literal null}
+     */
+    WidgetTag getTagById(String widgetTagId);
+
+    WidgetTag saveWidgetTag(String widgetId, WidgetTag tag);
+
+    void deleteWidgetTag(WidgetTag tag);
+
+    // ***************************************************************************************************************
+    // Widget Comment Methods
+    // ***************************************************************************************************************
+
+    WidgetComment getCommentById(String widgetId, String widgetCommentId);
+
+    WidgetComment createWidgetComment(String widgetId, WidgetComment comment);
+
+    WidgetComment updateWidgetComment(String widgetId, WidgetComment comment);
+
+    void deleteWidgetComment(String widgetId, WidgetComment comment);
+
+    /**
+     * Delete all Widget Comments for a userId
+     *
+     * @param userId
+     * @return count of comments deleted
+     */
+    int deleteAllWidgetComments(String userId);
+
+    // ***************************************************************************************************************
+    // Widget Ratings Methods
+    // ***************************************************************************************************************
+
+    WidgetRating getRatingById(String widgetId, String widgetRatingId);
+
+    WidgetRating createWidgetRating(String widgetId, WidgetRating rating);
+
+    WidgetRating updateWidgetRating(String widgetId, WidgetRating rating);
+
+    void deleteWidgetRating(String widgetId, WidgetRating rating);
+
+    /**
+     * Tries to find a {@link org.apache.rave.portal.model.WidgetRating} by the id's of a Widget and USer
+     *
+     * @param widgetId unique identifier of a Widget
+     * @param userId   unique identifier of a User
+     * @return {@link org.apache.rave.portal.model.WidgetRating} if it exists, otherwise {@literal null}
+     */
+    WidgetRating getWidgetRatingsByWidgetIdAndUserId(String widgetId, String userId);
+
+    /**
+     * Delete all Widget Ratings for a userId
+     *
+     * @param userId
+     * @return count of ratings deleted
+     */
+    int deleteAllWidgetRatings(String userId);
 }
\ No newline at end of file

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultCategoryPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultCategoryPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultCategoryPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultCategoryPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -86,7 +86,7 @@ public class DefaultCategoryPermissionEv
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext)targetId);
         } else {
-            hasPermission = hasPermission(authentication, categoryRepository.get((Long)targetId), permission, true);
+            hasPermission = hasPermission(authentication, categoryRepository.get((String)targetId), permission, true);
         }
         return hasPermission;
     }
@@ -127,7 +127,7 @@ public class DefaultCategoryPermissionEv
 
     // returns a trusted Category object, either from the CategoryRepository, or the
     // cached container list
-    private Category getTrustedCategory(long categoryId, List<Category> trustedCategoryContainer) {
+    private Category getTrustedCategory(String categoryId, List<Category> trustedCategoryContainer) {
         Category p = null;
         if (trustedCategoryContainer.isEmpty()) {
             p = categoryRepository.get(categoryId);
@@ -149,14 +149,14 @@ public class DefaultCategoryPermissionEv
             trustedCategory = getTrustedCategory(category.getId(), trustedCategoryContainer);
         }
 
-        return isCategoryCreatedUserByUsername(authentication, trustedCategory.getCreatedUser().getUsername());
+        return isCategoryCreatedUserByUsername(authentication, trustedCategory.getCreatedUserId());
     }
 
-    private boolean isCategoryCreatedUserByUsername(Authentication authentication, String username) {
-        return ((User)authentication.getPrincipal()).getUsername().equals(username);
+    private boolean isCategoryCreatedUserByUsername(Authentication authentication, String id) {
+        return ((User)authentication.getPrincipal()).getId().equals(id);
     }
 
-    private boolean isCategoryCreatedUserById(Authentication authentication, Long userId) {
+    private boolean isCategoryCreatedUserById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
@@ -170,7 +170,7 @@ public class DefaultCategoryPermissionEv
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isCategoryCreatedUserById(authentication, (Long) raveSecurityContext.getId());
+            return isCategoryCreatedUserById(authentication, (String) raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultPagePermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -20,6 +20,7 @@ package org.apache.rave.portal.security.
 
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.repository.PageRepository;
+import org.apache.rave.portal.repository.UserRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,10 +40,12 @@ import java.util.List;
 public class DefaultPagePermissionEvaluator extends AbstractModelPermissionEvaluator<Page> {
     private Logger log = LoggerFactory.getLogger(getClass());
     private PageRepository pageRepository;
+    private UserRepository userRepository;
 
     @Autowired
-    public DefaultPagePermissionEvaluator(PageRepository pageRepository) {
+    public DefaultPagePermissionEvaluator(PageRepository pageRepository, UserRepository userRepository) {
         this.pageRepository = pageRepository;
+        this.userRepository = userRepository;
     }
 
     @Override
@@ -87,7 +90,7 @@ public class DefaultPagePermissionEvalua
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext)targetId);
         } else {
-            hasPermission = hasPermission(authentication, pageRepository.get((Long)targetId), permission, true);
+            hasPermission = hasPermission(authentication, pageRepository.get((String)targetId), permission, true);
         }
         return hasPermission;
     }
@@ -132,7 +135,7 @@ public class DefaultPagePermissionEvalua
 
     // returns a trusted Page object, either from the PageRepository, or the
     // cached container list
-    private Page getTrustedPage(long pageId, List<Page> trustedPageContainer) {
+    private Page getTrustedPage(String pageId, List<Page> trustedPageContainer) {
         Page p = null;
         if (trustedPageContainer.isEmpty()) {
             p = pageRepository.get(pageId);
@@ -154,14 +157,14 @@ public class DefaultPagePermissionEvalua
             trustedPage = getTrustedPage(page.getId(), trustedPageContainer);
         }
 
-        return isPageOwnerByUsername(authentication, trustedPage.getOwner().getUsername());
+        return isPageOwnerByUserId(authentication, trustedPage.getOwnerId());
     }
 
-    private boolean isPageOwnerByUsername(Authentication authentication, String username) {
-        return ((User)authentication.getPrincipal()).getUsername().equals(username);
+    private boolean isPageOwnerByUserId(Authentication authentication, String userId) {
+        return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
-    private boolean isPageOwnerById(Authentication authentication, Long userId) {
+    private boolean isPageOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
@@ -175,7 +178,7 @@ public class DefaultPagePermissionEvalua
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isPageOwnerById(authentication, (Long)raveSecurityContext.getId());
+            return isPageOwnerById(authentication, (String)raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }
@@ -217,7 +220,7 @@ public class DefaultPagePermissionEvalua
         List<PageUser> members = trustedPage.getMembers();
         if (members != null) {
             for (PageUser pageUser : members){
-                if (pageUser.getUser().getUsername().equals(viewer)){
+                if (userRepository.get(pageUser.getUserId()).getUsername().equals(viewer)){
                     log.info("User "+viewer+" is a member of page "+trustedPage.getId());
                     if(checkEditorStatus){
                         log.info("checking editor:"+trustedPage.getId()+"@"+viewer+"@"+pageUser.isEditor());

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -20,6 +20,7 @@ package org.apache.rave.portal.security.
 
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.repository.RegionRepository;
+import org.apache.rave.portal.repository.UserRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,10 +35,12 @@ import java.util.List;
 public class DefaultRegionPermissionEvaluator extends AbstractModelPermissionEvaluator<Region>{
     private Logger log = LoggerFactory.getLogger(getClass());
     private RegionRepository regionRepository;
+    private UserRepository userRepository;
 
     @Autowired
-    public DefaultRegionPermissionEvaluator(RegionRepository regionRepository) {
+    public DefaultRegionPermissionEvaluator(RegionRepository regionRepository, UserRepository userRepository) {
         this.regionRepository = regionRepository;
+        this.userRepository = userRepository;
     }
 
     @Override
@@ -82,7 +85,7 @@ public class DefaultRegionPermissionEval
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext) targetId);
         } else {
-            hasPermission = hasPermission(authentication, regionRepository.get((Long) targetId), permission, true);
+            hasPermission = hasPermission(authentication, regionRepository.get((String) targetId), permission, true);
         }
         return hasPermission;
     }
@@ -126,7 +129,7 @@ public class DefaultRegionPermissionEval
 
     // returns a trusted Region object, either from the RegionRepository, or the
     // cached container list
-    private Region getTrustedRegion(long regionId, List<Region> trustedRegionContainer) {
+    private Region getTrustedRegion(String regionId, List<Region> trustedRegionContainer) {
         Region region = null;
         if (trustedRegionContainer.isEmpty()) {
             region = regionRepository.get(regionId);
@@ -147,14 +150,14 @@ public class DefaultRegionPermissionEval
         } else {
             trustedRegion = getTrustedRegion(region.getId(), trustedRegionContainer);
         }
-        return isRegionOwnerByUsername(authentication, trustedRegion.getPage().getOwner().getUsername());
+        return isRegionOwnerByUserId(authentication, trustedRegion.getPage().getOwnerId());
     }
 
-    private boolean isRegionOwnerByUsername(Authentication authentication, String username) {
-        return ((User)authentication.getPrincipal()).getUsername().equals(username);
+    private boolean isRegionOwnerByUserId(Authentication authentication, String userId) {
+        return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
-    private boolean isRegionOwnerById(Authentication authentication, Long userId) {
+    private boolean isRegionOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
@@ -168,7 +171,7 @@ public class DefaultRegionPermissionEval
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isRegionOwnerById(authentication, (Long) raveSecurityContext.getId());
+            return isRegionOwnerById(authentication, (String) raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }
@@ -193,7 +196,7 @@ public class DefaultRegionPermissionEval
         //
         String viewer = ((User)authentication.getPrincipal()).getUsername();
         for (PageUser pageUser:containerPage.getMembers()){
-            if (pageUser.getUser().getUsername().equals(viewer)){
+            if (userRepository.get(pageUser.getUserId()).getUsername().equals(viewer)){
                 log.info("User "+viewer+" is a member of page "+containerPage.getId());
                 if(checkEditorStatus){
                     return pageUser.isEditor();

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultRegionWidgetPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -20,6 +20,7 @@ package org.apache.rave.portal.security.
 
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.repository.RegionWidgetRepository;
+import org.apache.rave.portal.repository.UserRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,10 +35,12 @@ import java.util.List;
 public class DefaultRegionWidgetPermissionEvaluator extends AbstractModelPermissionEvaluator<RegionWidget> {
     private Logger log = LoggerFactory.getLogger(getClass());
     private RegionWidgetRepository regionWidgetRepository;
+    private UserRepository userRepository;
 
     @Autowired
-    public DefaultRegionWidgetPermissionEvaluator(RegionWidgetRepository regionWidgetRepository) {
+    public DefaultRegionWidgetPermissionEvaluator(RegionWidgetRepository regionWidgetRepository, UserRepository userRepository) {
         this.regionWidgetRepository = regionWidgetRepository;
+        this.userRepository = userRepository;
     }
 
     @Override
@@ -82,7 +85,7 @@ public class DefaultRegionWidgetPermissi
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext) targetId);
         } else {
-            hasPermission = hasPermission(authentication, regionWidgetRepository.get((Long) targetId), permission, true);
+            hasPermission = hasPermission(authentication, regionWidgetRepository.get((String) targetId), permission, true);
         }
         return hasPermission;
     }
@@ -126,7 +129,7 @@ public class DefaultRegionWidgetPermissi
 
     // returns a trusted RegionWidget object, either from the RegionWidgetRepository, or the
     // cached container list
-    private RegionWidget getTrustedRegionWidget(long regionWidgetId, List<RegionWidget> trustedRegionWidgetContainer) {
+    private RegionWidget getTrustedRegionWidget(String regionWidgetId, List<RegionWidget> trustedRegionWidgetContainer) {
         RegionWidget regionWidget = null;
         if (trustedRegionWidgetContainer.isEmpty()) {
             regionWidget = regionWidgetRepository.get(regionWidgetId);
@@ -147,14 +150,14 @@ public class DefaultRegionWidgetPermissi
         } else {
             trustedRegionWidget = getTrustedRegionWidget(regionWidget.getId(), trustedRegionWidgetContainer);
         }
-        return isRegionWidgetOwnerByUsername(authentication, getUsernameFromRegionWidget(trustedRegionWidget));
+        return isRegionWidgetOwnerByUsername(authentication, getUserIdFromRegionWidget(trustedRegionWidget));
     }
 
-    private boolean isRegionWidgetOwnerByUsername(Authentication authentication, String username) {
-        return ((User)authentication.getPrincipal()).getUsername().equals(username);
+    private boolean isRegionWidgetOwnerByUsername(Authentication authentication, String userId) {
+        return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
-    private boolean isRegionWidgetOwnerById(Authentication authentication, Long userId) {
+    private boolean isRegionWidgetOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
@@ -168,14 +171,14 @@ public class DefaultRegionWidgetPermissi
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isRegionWidgetOwnerById(authentication, (Long) raveSecurityContext.getId());
+            return isRegionWidgetOwnerById(authentication, (String) raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }
     }
 
-    private String getUsernameFromRegionWidget(RegionWidget regionWidget) {
-        return regionWidget.getRegion().getPage().getOwner().getUsername();
+    private String getUserIdFromRegionWidget(RegionWidget regionWidget) {
+        return regionWidget.getRegion().getPage().getOwnerId();
     }
 
     private boolean isRegionWidgetMember(Authentication authentication,
@@ -198,7 +201,7 @@ public class DefaultRegionWidgetPermissi
         //
         String viewer = ((User)authentication.getPrincipal()).getUsername();
         for (PageUser pageUser:containerPage.getMembers()){
-            if (pageUser.getUser().getUsername().equals(viewer)){
+            if (userRepository.get(pageUser.getUserId()).getUsername().equals(viewer)){
                 log.info("User "+viewer+" is a member of page "+containerPage.getId());
                 if(checkEditorStatus){
                     return pageUser.isEditor();

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetCommentPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetCommentPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetCommentPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetCommentPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -17,7 +17,7 @@ package org.apache.rave.portal.security.
 
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.model.WidgetComment;
-import org.apache.rave.portal.repository.WidgetCommentRepository;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,11 +34,11 @@ import java.util.List;
 public class DefaultWidgetCommentPermissionEvaluator extends AbstractModelPermissionEvaluator<WidgetComment> {
 
     private Logger log = LoggerFactory.getLogger(getClass());
-    private WidgetCommentRepository widgetCommentRepository;
+    private WidgetRepository widgetRepository;
 
     @Autowired
-    public DefaultWidgetCommentPermissionEvaluator(WidgetCommentRepository widgetCommentRepository) {
-        this.widgetCommentRepository = widgetCommentRepository;
+    public DefaultWidgetCommentPermissionEvaluator(WidgetRepository widgetRepository) {
+        this.widgetRepository = widgetRepository;
     }
 
     @Override
@@ -83,7 +83,7 @@ public class DefaultWidgetCommentPermiss
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext)targetId, permission);
         } else {
-            hasPermission = hasPermission(authentication, widgetCommentRepository.get((Long)targetId), permission, true);
+            hasPermission = hasPermission(authentication, widgetRepository.getCommentById(null, (String)targetId), permission, true);
         }
         return hasPermission;
     }
@@ -110,9 +110,9 @@ public class DefaultWidgetCommentPermiss
                 hasPermission =  true;
                 break;
             case CREATE:
-            case CREATE_OR_UPDATE:
-                hasPermission = isWidgetCommentOwnerById(authentication, widgetComment.getUser().getId());
+                hasPermission = true;
                 break;
+            case CREATE_OR_UPDATE:
             case DELETE:
             case UPDATE:
                 // anyone can create, delete, read, or update a page that they own
@@ -150,7 +150,7 @@ public class DefaultWidgetCommentPermiss
                 case UPDATE:
                 case CREATE_OR_UPDATE:
                     // anyone can create, delete, read, or update a page that they own
-                    hasPermission = isWidgetCommentOwnerById(authentication, (Long)raveSecurityContext.getId());
+                    hasPermission = isWidgetCommentOwnerById(authentication, (String)raveSecurityContext.getId());
                     break;
                 default:
                     log.warn("unknown permission: " + permission);
@@ -173,15 +173,15 @@ public class DefaultWidgetCommentPermiss
             trustedWidgetComment = getTrustedWidgetComment(widgetComment.getId(), trustedPageContainer);
         }
 
-        return isWidgetCommentOwnerByUsername(authentication, trustedWidgetComment.getUser().getUsername());
+        return isWidgetCommentOwnerById(authentication, trustedWidgetComment.getUserId());
     }
 
     // returns a trusted Page object, either from the PageRepository, or the
     // cached container list
-    private WidgetComment getTrustedWidgetComment(long widgetCommentId, List<WidgetComment> trustedWidgetCommentContainer) {
+    private WidgetComment getTrustedWidgetComment(String widgetCommentId, List<WidgetComment> trustedWidgetCommentContainer) {
         WidgetComment p = null;
         if (trustedWidgetCommentContainer.isEmpty()) {
-            p = widgetCommentRepository.get(widgetCommentId);
+            p = widgetRepository.getCommentById(null, widgetCommentId);
             trustedWidgetCommentContainer.add(p);
         } else {
             p = trustedWidgetCommentContainer.get(0);
@@ -192,7 +192,7 @@ public class DefaultWidgetCommentPermiss
     private boolean isWidgetCommentOwnerByUsername(Authentication authentication, String username) {
         return ((User)authentication.getPrincipal()).getUsername().equals(username);
     }
-    private boolean isWidgetCommentOwnerById(Authentication authentication, Long userId) {
+    private boolean isWidgetCommentOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -18,10 +18,10 @@
  */
 package org.apache.rave.portal.security.impl;
 
-import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.model.WidgetStatus;
+import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.repository.TagRepository;
 import org.apache.rave.portal.repository.WidgetRepository;
+import org.apache.rave.portal.security.util.AuthenticationUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,10 +36,12 @@ import java.util.List;
 public class DefaultWidgetPermissionEvaluator extends AbstractModelPermissionEvaluator<Widget>{
     private Logger log = LoggerFactory.getLogger(getClass());
     private WidgetRepository widgetRepository;
+    private TagRepository tagRepository;
 
     @Autowired
-    public DefaultWidgetPermissionEvaluator(WidgetRepository widgetRepository) {
+    public DefaultWidgetPermissionEvaluator(WidgetRepository widgetRepository, TagRepository tagRepository) {
         this.widgetRepository = widgetRepository;
+        this.tagRepository = tagRepository;
     }
 
     @Override
@@ -84,7 +86,7 @@ public class DefaultWidgetPermissionEval
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext) targetId);
         } else {
-            hasPermission = hasPermission(authentication, widgetRepository.get((Long) targetId), permission, true);
+            hasPermission = hasPermission(authentication, widgetRepository.get(targetId.toString()), permission, true);
         }
         return hasPermission;
     }
@@ -107,11 +109,11 @@ public class DefaultWidgetPermissionEval
         switch (permission) {
             case ADMINISTER:
                 // if you are here, you are not an administrator, so you can't administer Widget
-                break;          
+                break;
             case READ:
                 // users can read any widget which they are the owner of, or any widget that is published
                 hasPermission = isWidgetOwner(authentication, widget, trustedWidgetContainer, trustedDomainObject) ||
-                                isPublishedWidget(widget, trustedWidgetContainer, trustedDomainObject);                
+                                isPublishedWidget(widget, trustedWidgetContainer, trustedDomainObject);
                 break;
             case CREATE:
             case UPDATE:
@@ -129,7 +131,7 @@ public class DefaultWidgetPermissionEval
 
     // returns a trusted Widget object, either from the WidgetRepository, or the
     // cached container list
-    private Widget getTrustedWidget(long widgetId, List<Widget> trustedWidgetContainer) {
+    private Widget getTrustedWidget(String widgetId, List<Widget> trustedWidgetContainer) {
         Widget widget;
         if (trustedWidgetContainer.isEmpty()) {
             widget = widgetRepository.get(widgetId);
@@ -144,7 +146,7 @@ public class DefaultWidgetPermissionEval
     // if trustedDomainObject is false, pull the entity from the database first to ensure
     // the model object is trusted and hasn't been modified
     private boolean isWidgetOwner(Authentication authentication, Widget widget, List<Widget> trustedWidgetContainer, boolean trustedDomainObject) {
-        if (widget.getOwner() == null) {
+        if (widget.getOwnerId() == null) {
             return false;
         }
         Widget trustedWidget;
@@ -153,17 +155,17 @@ public class DefaultWidgetPermissionEval
         } else {
             trustedWidget = getTrustedWidget(widget.getId(), trustedWidgetContainer);
         }
-        return isWidgetOwnerByUsername(authentication, trustedWidget.getOwner().getUsername());
+        return isWidgetOwnerById(authentication, trustedWidget.getOwnerId());
     }
 
     private boolean isWidgetOwnerByUsername(Authentication authentication, String username) {
         return ((User)authentication.getPrincipal()).getUsername().equals(username);
     }
 
-    private boolean isWidgetOwnerById(Authentication authentication, Long userId) {
+    private boolean isWidgetOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
-    
+
     private boolean isPublishedWidget(Widget widget, List<Widget> trustedWidgetContainer, boolean trustedDomainObject) {
         Widget trustedWidget;
         if (trustedDomainObject) {
@@ -172,7 +174,7 @@ public class DefaultWidgetPermissionEval
             trustedWidget = getTrustedWidget(widget.getId(), trustedWidgetContainer);
         }
         return WidgetStatus.PUBLISHED.equals(trustedWidget.getWidgetStatus());
-    }    
+    }
 
     private boolean verifyRaveSecurityContext(Authentication authentication, RaveSecurityContext raveSecurityContext) {
         Class<?> clazz;
@@ -184,9 +186,10 @@ public class DefaultWidgetPermissionEval
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isWidgetOwnerById(authentication, (Long) raveSecurityContext.getId());
+            return isWidgetOwnerById(authentication, (String) raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }
     }
+
 }
\ No newline at end of file

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java Mon Oct 29 03:59:56 2012
@@ -20,7 +20,7 @@ package org.apache.rave.portal.security.
 
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.model.WidgetRating;
-import org.apache.rave.portal.repository.WidgetRatingRepository;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,11 +34,11 @@ import java.util.List;
 @Component
 public class DefaultWidgetRatingPermissionEvaluator extends AbstractModelPermissionEvaluator<WidgetRating> {
     private Logger log = LoggerFactory.getLogger(getClass());
-    private WidgetRatingRepository widgetRatingRepository;
+    private WidgetRepository widgetRepository;
 
     @Autowired
-    public DefaultWidgetRatingPermissionEvaluator(WidgetRatingRepository widgetRatingRepository) {
-        this.widgetRatingRepository = widgetRatingRepository;
+    public DefaultWidgetRatingPermissionEvaluator(WidgetRepository widgetRepository) {
+        this.widgetRepository = widgetRepository;
     }
 
     @Override
@@ -83,7 +83,7 @@ public class DefaultWidgetRatingPermissi
         if (targetId instanceof RaveSecurityContext) {
             hasPermission = verifyRaveSecurityContext(authentication, (RaveSecurityContext) targetId);
         } else {
-            hasPermission = hasPermission(authentication, widgetRatingRepository.get((Long) targetId), permission, true);
+            hasPermission = hasPermission(authentication, widgetRepository.getRatingById(null, (String) targetId), permission, true);
         }
         return hasPermission;
     }
@@ -127,10 +127,10 @@ public class DefaultWidgetRatingPermissi
 
     // returns a trusted WidgetRating object, either from the WidgetRatingRepository, or the
     // cached container list
-    private WidgetRating getTrustedWidgetRating(long widgetRatingId, List<WidgetRating> trustedWidgetRatingContainer) {
+    private WidgetRating getTrustedWidgetRating(String widgetRatingId, List<WidgetRating> trustedWidgetRatingContainer) {
         WidgetRating widgetRating = null;
         if (trustedWidgetRatingContainer.isEmpty()) {
-            widgetRating = widgetRatingRepository.get(widgetRatingId);
+            widgetRating = widgetRepository.getRatingById(null, widgetRatingId);
             trustedWidgetRatingContainer.add(widgetRating);
         } else {
             widgetRating = trustedWidgetRatingContainer.get(0);
@@ -155,7 +155,7 @@ public class DefaultWidgetRatingPermissi
         return ((User)authentication.getPrincipal()).getUsername().equals(username);
     }
 
-    private boolean isWidgetRatingOwnerById(Authentication authentication, Long userId) {
+    private boolean isWidgetRatingOwnerById(Authentication authentication, String userId) {
         return ((User)authentication.getPrincipal()).getId().equals(userId);
     }
 
@@ -169,7 +169,7 @@ public class DefaultWidgetRatingPermissi
 
         // perform the permissions check based on the class supplied to the RaveSecurityContext object
         if (User.class == clazz) {
-            return isWidgetRatingOwnerById(authentication, (Long) raveSecurityContext.getId());
+            return isWidgetRatingOwnerById(authentication, (String) raveSecurityContext.getId());
         } else {
             throw new IllegalArgumentException("unknown RaveSecurityContext type: " + raveSecurityContext.getType());
         }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java Mon Oct 29 03:59:56 2012
@@ -25,10 +25,10 @@ import org.apache.rave.portal.model.util
 public interface AuthorityService {
 
     /**
-     * @param entityId unique identifier of the {@link org.apache.rave.portal.model.Authority}
+     * @param id unique identifier of the {@link org.apache.rave.portal.model.Authority}
      * @return Authority if it can be found, otherwise {@literal null}
      */
-    Authority getAuthorityById(long entityId);
+    Authority getAuthorityById(String id);
 
     /**
      * @param authorityName name of the authority, can be a role (ROLE_USER)

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java Mon Oct 29 03:59:56 2012
@@ -30,11 +30,11 @@ import java.util.List;
 public interface CategoryService {
 
     /**
-     * @param entityId unique identifier of the {@link org.apache.rave.portal.model.Category}
+     * @param id unique identifier of the {@link org.apache.rave.portal.model.Category}
      * @return Category if it can be found, otherwise {@literal null}
      */
     @PostAuthorize("returnObject == null or hasPermission(returnObject, 'read')")
-    Category get(long entityId);
+    Category get(String id);
 
     /**
      * @return a {@link java.util.List} with all {@link org.apache.rave.portal.model.Category}'s
@@ -60,7 +60,7 @@ public interface CategoryService {
      * @return the updated Category object
      */
     @PreAuthorize("hasPermission(#categoryId, 'org.apache.rave.portal.model.Category', 'update')")
-    Category update(long categoryId, String text, User lastModifiedUser);
+    Category update(String categoryId, String text, User lastModifiedUser);
 
     /**
      * Deletes a Category

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/OmdlService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/OmdlService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/OmdlService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/OmdlService.java Mon Oct 29 03:59:56 2012
@@ -29,7 +29,7 @@ public interface OmdlService {
      * @param omdlUrl - page url - used in construction of OMDL file
      * @return an OmdlOutputAdapter - a JaxB xml OMDL format
      */
-    OmdlOutputAdapter exportOmdl(long pageId, String omdlUrl);
+    OmdlOutputAdapter exportOmdl(String pageId, String omdlUrl);
     
     /**
      * Import an OMDL xml format file to generate into a page object (with all of its reqionwidgets)

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java Mon Oct 29 03:59:56 2012
@@ -35,7 +35,7 @@ public interface PageService {
      * @return the Page object 
      */
     @PostAuthorize("hasPermission(returnObject, 'read')")
-    Page getPage(long pageId);
+    Page getPage(String pageId);
     
     /**
      * Gets all user pages for the given user.
@@ -44,7 +44,7 @@ public interface PageService {
      * @return A non null possible empty list of pages for the given user.
      */   
     @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.Page', 'read')") 
-    List<Page> getAllUserPages(long userId);
+    List<Page> getAllUserPages(String userId);
     
     /**
      * Gets the profile page for the given user.
@@ -53,7 +53,7 @@ public interface PageService {
      * @return The profile page
      */
     @PostAuthorize("hasPermission(returnObject, 'read')")
-    Page getPersonProfilePage(long userId);
+    Page getPersonProfilePage(String userId);
 
     /**
      * Return the page object from a list of pages given the pageId
@@ -62,7 +62,7 @@ public interface PageService {
      * @param pages a list of pages to search in
      * @return the Page object representing the pageId, or null if not found
      */
-    Page getPageFromList(long pageId, List<Page> pages);
+    Page getPageFromList(String pageId, List<Page> pages);
     
     /**
      * Given a List of Page objects, return the default one
@@ -91,7 +91,7 @@ public interface PageService {
      * @return the new default Page object for the user
      */        
     @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.Page', 'create')")         
-    Page addNewDefaultUserPage(long userId);
+    Page addNewDefaultUserPage(String userId);
 
     /**
      * Creates a new sub page with the supplied pageName and pageLayoutCode for the parentPage
@@ -117,7 +117,7 @@ public interface PageService {
      * @param pageId the pageId to delete
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'delete')") 
-    void deletePage(long pageId);
+    void deletePage(String pageId);
 
     /**
      * Deletes all pages of the supplied pageType for the userId
@@ -126,7 +126,7 @@ public interface PageService {
      * @param pageType
      */
     @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.Page', 'delete')")
-    int deletePages(long userId, PageType pageType);
+    int deletePages(String userId, PageType pageType);
     
     /**
      * Moves a Region widget's position in a region or across regions
@@ -140,7 +140,7 @@ public interface PageService {
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'update') and " +
                   "hasPermission(#toRegionId, 'org.apache.rave.portal.model.Region', 'update') and " +
                   "hasPermission(#fromRegionId, 'org.apache.rave.portal.model.Region', 'update')")
-    RegionWidget moveRegionWidget(long regionWidgetId, int newPosition, long toRegionId, long fromRegionId);
+    RegionWidget moveRegionWidget(String regionWidgetId, int newPosition, String toRegionId, String fromRegionId);
 
     /**
      * Moves a RegionWidget from one page to another
@@ -151,7 +151,7 @@ public interface PageService {
      */
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'update') and " +
                   "hasPermission(#toPageId, 'org.apache.rave.portal.model.Page', 'update')")
-    RegionWidget moveRegionWidgetToPage(long regionWidgetId, long toPageId);    
+    RegionWidget moveRegionWidgetToPage(String regionWidgetId, String toPageId);
     
     /**
      * Creates a new instance of a widget and adds it to the first position of the first region on the page
@@ -161,7 +161,7 @@ public interface PageService {
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update') and " +
                   "hasPermission(#widgetId, 'org.apache.rave.portal.model.Widget', 'read')") 
-    RegionWidget addWidgetToPage(long pageId, long widgetId);
+    RegionWidget addWidgetToPage(String pageId, String widgetId);
     
     /**
      * Creates a new instance of a widget and adds it to the first position of the identified region on the page
@@ -171,7 +171,7 @@ public interface PageService {
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update') and " +
                   "hasPermission(#widgetId, 'org.apache.rave.portal.model.Widget', 'read')") 
-    RegionWidget addWidgetToPageRegion(long pageId, long widgetId, long regionId);
+    RegionWidget addWidgetToPageRegion(String pageId, String widgetId, String regionId);
 
     /**
      * Deletes the specified widget from the page.
@@ -180,7 +180,7 @@ public interface PageService {
      * @return the region from which the widget was deleted
      */
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'delete')")
-    Region removeWidgetFromPage(long regionWidgetId);
+    Region removeWidgetFromPage(String regionWidgetId);
 
     /**
      * Updates the page properties.
@@ -190,7 +190,7 @@ public interface PageService {
      * @param pageLayoutCode the new layout for the page
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')") 
-    Page updatePage(long pageId, String name, String pageLayoutCode);
+    Page updatePage(String pageId, String name, String pageLayoutCode);
     
     /**
      * Moves a page to be rendered after another page in order for a user
@@ -202,7 +202,7 @@ public interface PageService {
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read') and " +
                   "hasPermission(#moveAfterPageId, 'org.apache.rave.portal.model.Page', 'read')")
-    Page movePage(long pageId, long moveAfterPageId);
+    Page movePage(String pageId, String moveAfterPageId);
     
     /**
      * Moves a page to be rendered as the first page for a user
@@ -211,7 +211,7 @@ public interface PageService {
      * @return the updated Page object containing its new render sequence
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')") 
-    Page movePageToDefault(long pageId);
+    Page movePageToDefault(String pageId);
 
     /**
      * Clone the page and then share it with another user (Page is detached from original)
@@ -221,7 +221,7 @@ public interface PageService {
      * @return true or false whether the user was added
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
-    Boolean clonePageForUser(long pageId, long userId, String pageName);
+    Boolean clonePageForUser(String pageId, String userId, String pageName);
 
     /**
      * Add another user to share this page with
@@ -230,7 +230,7 @@ public interface PageService {
      * @return true or false whether the user was added
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
-    Boolean addMemberToPage(long pageId, long userId);
+    Boolean addMemberToPage(String pageId, String userId);
 
     /**
      * Remove an existing user from the page share
@@ -241,7 +241,7 @@ public interface PageService {
      * unless they are set as an 'editor' of the page, which means 'update' access. 
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')")
-    Boolean removeMemberFromPage(long pageId, long userId);
+    Boolean removeMemberFromPage(String pageId, String userId);
 
     /**
      * Allows a user to accept or decline a page share
@@ -250,7 +250,7 @@ public interface PageService {
      * @return
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'read')")
-    Boolean updateSharedPageStatus(long pageId, String shareStatus);
+    Boolean updateSharedPageStatus(String pageId, String shareStatus);
 
     /**
      * Update a user who has shared access to a given page, so that they can edit the page (true)
@@ -261,6 +261,6 @@ public interface PageService {
      * @return
      */
     @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
-    Boolean updatePageEditingStatus(long pageId, long userId, boolean isEditor);
+    Boolean updatePageEditingStatus(String pageId, String userId, boolean isEditor);
 
 }
\ No newline at end of file

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java Mon Oct 29 03:59:56 2012
@@ -34,7 +34,7 @@ public interface RegionWidgetService {
      * @return The RegionWidget or null if not found.
      */
     @PostAuthorize("hasPermission(returnObject, 'read')")
-    RegionWidget getRegionWidget(long regionWidgetId);
+    RegionWidget getRegionWidget(String regionWidgetId);
 
     /**
      * Saves the given RegionWidget and returns the updated instance.
@@ -53,7 +53,7 @@ public interface RegionWidgetService {
      * @return The updated RegionWidgetPreferences with all ID numbers populated.
      */
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'update')")
-    List<RegionWidgetPreference> saveRegionWidgetPreferences(long regionWidgetId,
+    List<RegionWidgetPreference> saveRegionWidgetPreferences(String regionWidgetId,
                                                              List<RegionWidgetPreference> preferences);
 
     /**
@@ -65,7 +65,7 @@ public interface RegionWidgetService {
      * @return The updated RegionWidgetPreference with all ID numbers populated.
      */
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'update')")
-    RegionWidgetPreference saveRegionWidgetPreference(long regionWidgetId, RegionWidgetPreference preference);
+    RegionWidgetPreference saveRegionWidgetPreference(String regionWidgetId, RegionWidgetPreference preference);
     
     /**
      * Saves the collapsed state of the given regionWidgetId
@@ -75,5 +75,5 @@ public interface RegionWidgetService {
      * @return The updated RegionWidget with the new collapsed value
      */
     @PreAuthorize("hasPermission(#regionWidgetId, 'org.apache.rave.portal.model.RegionWidget', 'update')")
-    RegionWidget saveRegionWidgetCollapsedState(long regionWidgetId, boolean collapsed);
+    RegionWidget saveRegionWidgetCollapsedState(String regionWidgetId, boolean collapsed);
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java Mon Oct 29 03:59:56 2012
@@ -21,15 +21,16 @@ package org.apache.rave.portal.service;
 
 import org.apache.rave.portal.model.Tag;
 
+import javax.swing.text.html.parser.TagElement;
 import java.util.List;
 
 public interface TagService {
 
     /**
-     * @param entityId unique identifier of the {@link org.apache.rave.portal.model.Tag}
+     * @param id unique identifier of the {@link org.apache.rave.portal.model.Tag}
      * @return Tag if it can be found, otherwise {@literal null}
      */
-    Tag getTagById(long entityId);
+    Tag getTagById(String id);
 
 
     /**
@@ -48,6 +49,8 @@ public interface TagService {
      * @return a {@link org.apache.rave.portal.model.util.SearchResult} with all {@link org.apache.rave.portal.model.Tag}'s
      *         Not link to a widget
      */
-    List<Tag> getAvailableTagsByWidgetId(Long widgetId);
+    //List<Tag> getAvailableTagsByWidgetId(String widgetId);
+
+    Tag save(Tag tag);
 
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java Mon Oct 29 03:59:56 2012
@@ -42,7 +42,7 @@ public interface UserService extends Use
      *
      * @param userId the unique id of the use
      */
-    void setAuthenticatedUser(long userId);
+    void setAuthenticatedUser(String userId);
 
     /**
      * Un-sets the currently authenticated user
@@ -70,7 +70,7 @@ public interface UserService extends Use
      * @param id the user ID
      * @return {@link org.apache.rave.portal.model.User} if one exists, otherwise {@literal null}
      */
-    User getUserById(Long id);
+    User getUserById(String id);
 
     /**
      * Return a user object by the user email.
@@ -111,7 +111,7 @@ public interface UserService extends Use
      *
      * @param userId {@link Long} id if the user
      */
-    void deleteUser(Long userId);
+    void deleteUser(String userId);
 
     /**
      * List of persons whom have added the supplied widget to one or more pages
@@ -119,7 +119,7 @@ public interface UserService extends Use
      * @param widgetId the entityId of the Widget to search
      * @return List of Person objects in alphabetical order sorted by familyname, givenname
      */
-    List<Person> getAllByAddedWidget(long widgetId);
+    List<Person> getAllByAddedWidget(String widgetId);
 
     /**
      * Sends an email which contains link for changing user password

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java Mon Oct 29 03:59:56 2012
@@ -20,6 +20,9 @@
 package org.apache.rave.portal.service;
 
 import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.model.WidgetComment;
+import org.apache.rave.portal.model.WidgetRating;
+import org.apache.rave.portal.model.WidgetTag;
 import org.apache.rave.portal.model.util.SearchResult;
 import org.apache.rave.portal.model.util.WidgetStatistics;
 import org.springframework.security.access.prepost.PostAuthorize;
@@ -69,7 +72,7 @@ public interface WidgetService {
      * @return a valid widget if one exists for the given id; null otherwise
      */
     @PostAuthorize("returnObject == null or hasPermission(returnObject, 'read')")
-    Widget getWidget(long id);
+    Widget getWidget(String id);
 
     /**
      * Gets a {@link SearchResult} for {@link Widget}'s that are published
@@ -104,7 +107,7 @@ public interface WidgetService {
     SearchResult<Widget> getWidgetsBySearchCriteria(String searchTerm, String widgetType, String widgetStatus,
                                                     int offset, int pageSize);
 
-    SearchResult<Widget> getWidgetsByOwner(Long ownerId, int offset, int pageSize);
+    SearchResult<Widget> getWidgetsByOwner(String ownerId, int offset, int pageSize);
 
     /**
      * Gets a Widget by its (unique) url
@@ -139,7 +142,7 @@ public interface WidgetService {
      * @param userId id of the user
      * @return {@link WidgetStatistics} with the rating information
      */
-    WidgetStatistics getWidgetStatistics(long widgetId, long userId);
+    WidgetStatistics getWidgetStatistics(String widgetId, String userId);
 
     /**
      * Generates the mapping of widget statistics for the user.
@@ -147,7 +150,7 @@ public interface WidgetService {
      * @param userId id of the user
      * @return Mapping of {@link WidgetStatistics} objects keyed off of the widget's entityId
      */
-    Map<Long, WidgetStatistics> getAllWidgetStatistics(long userId);
+    Map<String, WidgetStatistics> getAllWidgetStatistics(String userId);
 
     /**
      * Updates {@link Widget}
@@ -175,6 +178,89 @@ public interface WidgetService {
      * @param pageSize   maximum number of items to be returned (for paging)
      * @return           SearchResult
      */
-    SearchResult<Widget> getWidgetsByCategory(long categoryId, int offset, int pageSize);
+    SearchResult<Widget> getWidgetsByCategory(String categoryId, int offset, int pageSize);
 
+    // ***************************************************************************************************************
+    // Widget Tag Methods
+    // ***************************************************************************************************************
+
+    WidgetTag getWidgetTag(String id);
+
+    WidgetTag getWidgetTagByWidgetIdAndKeyword(String widgetId, String keyword);
+
+    // No security check required as everyone is allowed to create a tag
+    WidgetTag createWidgetTag(String widgetId, WidgetTag widgetTag);
+
+    // ***************************************************************************************************************
+    // Widget Comment Methods
+    // ***************************************************************************************************************
+
+    @PostAuthorize("hasPermission(returnObject, 'read')")
+    WidgetComment getWidgetComment(String widgetId, String id);
+
+    // No security check required as everyone is allowed to create a comment
+    void createWidgetComment(String widgetId, WidgetComment widgetComment);
+
+    @PreAuthorize("hasPermission(#widgetComment, 'update')")
+    void updateWidgetComment(String widgetId, WidgetComment widgetComment);
+
+    @PreAuthorize("hasPermission(#commentId, 'org.apache.rave.portal.model.WidgetComment', 'delete')")
+    void removeWidgetComment(String widgetId, String commentId);
+
+    /**
+     * Deletes all Widget Comments for a userId
+     *
+     * @param userId
+     * @return number of comments deleted
+     */
+    @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.WidgetComment', 'delete')")
+    int deleteAllWidgetComments(String userId);
+
+    // ***************************************************************************************************************
+    // Widget Ratings Methods
+    // ***************************************************************************************************************
+
+    /**
+     * Gets a {@link org.apache.rave.portal.model.WidgetRating} for the widgetId and userId
+     *
+     * @param widgetId unique identifier for a Widget
+     * @param userId   unique identifier for a User
+     * @return WidgetRating or {@link null} if there is no such combination
+     */
+    WidgetRating getWidgetRatingByWidgetIdAndUserId(String widgetId, String userId);
+
+    /**
+     * Updates the score of a {@link org.apache.rave.portal.model.WidgetRating}
+     *
+     * @param widgetId Widget ID
+     * @param widgetRating WidgetRating
+     * @param score        value of the rating
+     */
+    @PreAuthorize("hasPermission(#widgetRating.entityId, 'org.apache.rave.portal.model.WidgetRating', 'update')")
+    void updateWidgetRatingScore(String widgetId, WidgetRating widgetRating, Integer score);
+
+    /**
+     * Saves a {@link org.apache.rave.portal.model.WidgetRating} for a widget
+     *
+     * @param rating   WidgetRating
+     */
+    void saveWidgetRating(String widgetId, WidgetRating rating);
+
+    /**
+     * Removes the rating of a widget
+     *
+     * @param widgetId unique identifier of a {@link org.apache.rave.portal.model.Widget}
+     * @param userId   unique identifier of a {@link org.apache.rave.portal.model.User}
+     */
+    @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.WidgetRating', 'delete')")
+    void removeWidgetRating(String widgetId, String userId);
+
+    /**
+     * Removes all widget ratings for a userId, for all widgets
+     *
+     * @param userId
+     * @return the number of widget ratings deleted
+     */
+    @PreAuthorize("hasPermission(new org.apache.rave.portal.security.impl.RaveSecurityContext(#userId, 'org.apache.rave.portal.model.User'), 'org.apache.rave.portal.model.WidgetRating', 'delete')")
+    int removeAllWidgetRatings(String userId);
 }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java?rev=1403166&r1=1403165&r2=1403166&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java Mon Oct 29 03:59:56 2012
@@ -40,7 +40,7 @@ public class DefaultAuthorityService imp
     }
 
     @Override
-    public Authority getAuthorityById(long entityId) {
+    public Authority getAuthorityById(String entityId) {
         return repository.get(entityId);
     }