You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2012/12/28 18:43:30 UTC
svn commit: r1426593 [3/16] - in /rave/branches/mongo: ./ rave-components/
rave-components/rave-commons/
rave-components/rave-commons/src/main/java/org/apache/rave/persistence/
rave-components/rave-core/
rave-components/rave-core/src/main/java/org/apac...
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetPermissionEvaluator.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/security/impl/DefaultWidgetRatingPermissionEvaluator.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/AuthorityService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/CategoryService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java Fri Dec 28 17:43:23 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,17 @@ 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
+ * @param pageId the id of the page to add the widget to
+ * @param widgetId the {@link org.apache.rave.portal.model.Widget} id to add
+ * @return a valid widget instance
+ */
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update') and " +
+ "hasPermission(#widgetId, 'org.apache.rave.portal.model.Widget', 'read')")
+ RegionWidget addWidgetToPageRegion(String pageId, String widgetId, String regionId);
/**
* Deletes the specified widget from the page.
@@ -170,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.
@@ -180,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
@@ -192,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
@@ -201,7 +211,17 @@ 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)
+ * @param pageId - the id of the page in question
+ * @param userId - the userid to add
+ * @param pageName = name of the page
+ * @return true or false whether the user was added
+ */
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.portal.model.Page', 'update')")
+ Boolean clonePageForUser(String pageId, String userId, String pageName);
/**
* Add another user to share this page with
@@ -210,8 +230,8 @@ 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
* @param pageId - the id of the page in question
@@ -221,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
@@ -230,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)
@@ -241,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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/RegionWidgetService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/TagService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/UserService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetMarketplaceService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetMarketplaceService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetMarketplaceService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetMarketplaceService.java Fri Dec 28 17:43:23 2012
@@ -77,7 +77,7 @@ public interface WidgetMarketplaceServic
* @return
* @throws Exception
*/
- Widget getWidgetMetadata(String url, String type) throws Exception;
+ Widget resolveWidgetMetadata(String url, String type) throws Exception;
/**
* Gets the specified Widget
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/WidgetService.java Fri Dec 28 17:43:23 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/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultAuthorityService.java Fri Dec 28 17:43:23 2012
@@ -40,7 +40,7 @@ public class DefaultAuthorityService imp
}
@Override
- public Authority getAuthorityById(long entityId) {
+ public Authority getAuthorityById(String entityId) {
return repository.get(entityId);
}
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultCategoryService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultCategoryService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultCategoryService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultCategoryService.java Fri Dec 28 17:43:23 2012
@@ -39,8 +39,8 @@ public class DefaultCategoryService impl
}
@Override
- public Category get(long entityId) {
- return categoryRepository.get(entityId);
+ public Category get(String id) {
+ return categoryRepository.get(id);
}
@@ -57,20 +57,20 @@ public class DefaultCategoryService impl
Date now = new Date();
category.setText(text);
category.setCreatedDate(now);
- category.setCreatedUser(createdUser);
+ category.setCreatedUserId(createdUser.getId());
category.setLastModifiedDate(now);
- category.setLastModifiedUser(createdUser);
+ category.setLastModifiedUserId(createdUser.getId());
categoryRepository.save(category);
return category;
}
@Override
@Transactional
- public Category update(long categoryId, String text, User lastModifiedUser) {
+ public Category update(String categoryId, String text, User lastModifiedUser) {
Category category = categoryRepository.get(categoryId);
category.setText(text);
category.setLastModifiedDate(new Date());
- category.setLastModifiedUser(lastModifiedUser);
+ category.setLastModifiedUserId(lastModifiedUser.getId());
categoryRepository.save(category);
return category;
}
Copied: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java (from r1425410, rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java)
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java?p2=rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java&p1=rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java&r1=1425410&r2=1426593&rev=1426593&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultOmdlService.java Fri Dec 28 17:43:23 2012
@@ -18,31 +18,12 @@
*/
package org.apache.rave.portal.service.impl;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.commons.io.FileUtils;
import org.apache.rave.exception.DuplicateItemException;
import org.apache.rave.portal.model.Page;
import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.model.impl.WidgetImpl;
-import org.apache.rave.portal.model.util.omdl.BadOmdlXmlFormatException;
-import org.apache.rave.portal.model.util.omdl.OmdlConstants;
-import org.apache.rave.portal.model.util.omdl.OmdlInputAdapter;
-import org.apache.rave.portal.model.util.omdl.OmdlModelUtils;
-import org.apache.rave.portal.model.util.omdl.OmdlOutputAdapter;
-import org.apache.rave.portal.model.util.omdl.OmdlWidgetReference;
-import org.apache.rave.portal.service.OmdlService;
-import org.apache.rave.portal.service.PageService;
-import org.apache.rave.portal.service.UserService;
-import org.apache.rave.portal.service.RemoteWidgetResolverService;
-import org.apache.rave.portal.service.WidgetService;
+import org.apache.rave.portal.model.util.omdl.*;
+import org.apache.rave.portal.service.*;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -54,6 +35,14 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.List;
/**
* This class is responsible for the import and export of page objects to/from OMDL format
*
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Fri Dec 28 17:43:23 2012
@@ -54,7 +54,7 @@ public class DefaultPageService implemen
private final PageTemplateRepository pageTemplateRepository;
private final String defaultPageName;
- private final long MOVE_PAGE_DEFAULT_POSITION_INDEX = -1L;
+ private final String MOVE_PAGE_DEFAULT_POSITION_INDEX = "-1";
@Autowired
public DefaultPageService(PageRepository pageRepository,
@@ -76,18 +76,18 @@ public class DefaultPageService implemen
}
@Override
- public Page getPage(long pageId) {
+ public Page getPage(String pageId) {
return pageRepository.get(pageId);
}
@Override
- public List<Page> getAllUserPages(long userId) {
+ public List<Page> getAllUserPages(String userId) {
return pageRepository.getAllPages(userId, PageType.USER);
}
@Override
@Transactional
- public Page getPersonProfilePage(long userId) {
+ public Page getPersonProfilePage(String userId) {
List<Page> profilePages = pageRepository.getAllPages(userId, PageType.PERSON_PROFILE);
Page personPage = null;
if (profilePages.isEmpty()){
@@ -99,7 +99,7 @@ public class DefaultPageService implemen
}
@Override
- public Page getPageFromList(long pageId, List<Page> pages) {
+ public Page getPageFromList(String pageId, List<Page> pages) {
for(Page page: pages) {
if(page.getId().equals(pageId)){
return page;
@@ -122,7 +122,7 @@ public class DefaultPageService implemen
@Override
@Transactional
- public Page addNewDefaultUserPage(long userId) {
+ public Page addNewDefaultUserPage(String userId) {
User user = userService.getUserById(userId);
return addNewUserPage(user, defaultPageName, user.getDefaultPageLayout().getCode());
}
@@ -149,13 +149,13 @@ public class DefaultPageService implemen
long renderSequence = (parentPage.getSubPages() != null) ? parentPage.getSubPages().size() + 1 : 1;
Page page = new PageImpl();
page.setName(pageName);
- page.setOwner(user);
+ page.setOwnerId(user.getId());
page.setPageLayout(pageLayout);
page.setRegions(regions);
// set this as a "sub-page" page type
page.setPageType(PageType.SUB_PAGE);
- PageUser pageUser = new PageUserImpl(page.getOwner(), page, renderSequence);
+ PageUser pageUser = new PageUserImpl(page.getOwnerId(), page, renderSequence);
pageUser.setPageStatus(PageInvitationStatus.OWNER);
List<PageUser> members = new ArrayList<PageUser>();
members.add(pageUser);
@@ -180,7 +180,7 @@ public class DefaultPageService implemen
@Override
@Transactional
- public void deletePage(long pageId) {
+ public void deletePage(String pageId) {
User user = userService.getAuthenticatedUser();
// first delete the page
pageRepository.delete(pageRepository.get(pageId));
@@ -194,13 +194,13 @@ public class DefaultPageService implemen
@Override
@Transactional
- public int deletePages(long userId, PageType pageType) {
+ public int deletePages(String userId, PageType pageType) {
return pageRepository.deletePages(userId, pageType);
}
@Override
@Transactional
- public RegionWidget moveRegionWidget(long regionWidgetId, int newPosition, long toRegionId, long fromRegionId) {
+ public RegionWidget moveRegionWidget(String regionWidgetId, int newPosition, String toRegionId, String fromRegionId) {
Region target = getFromRepository(toRegionId, regionRepository);
// verify that the target Region and the RegionWidget are not locked and can be modified
RegionWidget regionWidget = regionWidgetRepository.get(regionWidgetId);
@@ -217,7 +217,7 @@ public class DefaultPageService implemen
@Override
@Transactional
- public RegionWidget moveRegionWidgetToPage(long regionWidgetId, long toPageId) {
+ public RegionWidget moveRegionWidgetToPage(String regionWidgetId, String toPageId) {
// Get the new page
Page toPage = getFromRepository(toPageId, pageRepository);
// Get the region widget
@@ -242,7 +242,7 @@ public class DefaultPageService implemen
@Override
@Transactional
- public Region removeWidgetFromPage(long regionWidgetId) {
+ public Region removeWidgetFromPage(String regionWidgetId) {
RegionWidget regionWidget = getFromRepository(regionWidgetId, regionWidgetRepository);
verifyRegionWidgetIsNotLocked(regionWidget);
regionWidgetRepository.delete(regionWidget);
@@ -251,29 +251,44 @@ public class DefaultPageService implemen
@Override
@Transactional
- public RegionWidget addWidgetToPage(long pageId, long widgetId) {
+ public RegionWidget addWidgetToPage(String pageId, String widgetId) {
Page page = getFromRepository(pageId, pageRepository);
Widget widget = getFromRepository(widgetId, widgetRepository);
Region region = page.getRegions().get(0);
verifyRegionIsNotLocked(region);
return createWidgetInstance(widget, region, 0);
}
+
+ @Override
+ @Transactional
+ public RegionWidget addWidgetToPageRegion(String pageId, String widgetId, String regionId) {
+ Page page = getFromRepository(pageId, pageRepository);
+ Widget widget = getFromRepository(widgetId, widgetRepository);
+ for(Region region : page.getRegions()){
+ if(region.getId().equals(regionId)){
+ verifyRegionIsNotLocked(region);
+ return createWidgetInstance(widget, region, 0);
+ }
+ }
+ // region not found
+ return null;
+ }
@Override
@Transactional
- public Page movePage(long pageId, long moveAfterPageId) {
+ public Page movePage(String pageId, String moveAfterPageId) {
return doMovePage(pageId, moveAfterPageId);
}
@Override
@Transactional
- public Page movePageToDefault(long pageId) {
+ public Page movePageToDefault(String pageId) {
return doMovePage(pageId, MOVE_PAGE_DEFAULT_POSITION_INDEX);
}
@Override
@Transactional
- public Page updatePage(long pageId, String name, String pageLayoutCode) {
+ public Page updatePage(String pageId, String name, String pageLayoutCode) {
Page page = pageRepository.get(pageId);
PageLayout newLayout = pageLayoutRepository.getByPageLayoutCode(pageLayoutCode);
PageLayout curLayout = page.getPageLayout();
@@ -302,10 +317,38 @@ public class DefaultPageService implemen
}
@Transactional
- public Boolean addMemberToPage(long pageId, long userId){
+ public Boolean clonePageForUser(String pageId, String userId, String pageName) {
+ Widget widget = null;
+ Page page = getPage(pageId);
+ if(pageName == null || pageName.equals("null")){
+ // try to use the original page name if none supplied
+ pageName = page.getName();
+ }
+ Page clonedPage = addNewUserPage(userService.getUserById(userId), pageName, page.getPageLayout().getCode());
+ // populate all the widgets in cloned page from original
+ for(int i=0; i<page.getRegions().size(); i++){
+ for(int j=0; j<page.getRegions().get(i).getRegionWidgets().size(); j++){
+ String widgetId = page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId();
+ widget = widgetRepository.get(widgetId);
+ addWidgetToPageRegion(clonedPage.getId(), widget.getId(), clonedPage.getRegions().get(i).getId());
+ }
+ }
+ // newly created page - so only one pageUser
+ PageUser pageUser = clonedPage.getMembers().get(0);
+ // update status to pending
+ pageUser.setPageStatus(PageInvitationStatus.PENDING);
+ if(pageRepository.save(clonedPage) != null){
+ return Boolean.TRUE;
+ }else{
+ return Boolean.FALSE;
+ }
+ }
+
+ @Transactional
+ public Boolean addMemberToPage(String pageId, String userId){
Page page = getPage(pageId);
PageUser pageUser = new PageUserImpl();
- pageUser.setUser(userService.getUserById(userId));
+ pageUser.setUserId(userService.getUserById(userId).getId());
pageUser.setPage(page);
pageUser.setPageStatus(PageInvitationStatus.PENDING);
List<PageUser> thisUsersPages = pageRepository.getPagesForUser(userService.getUserById(userId).getId(), PageType.USER);
@@ -319,11 +362,20 @@ public class DefaultPageService implemen
}
@Transactional
- public Boolean removeMemberFromPage(long pageId, long userId){
+ public Boolean removeMemberFromPage(String pageId, String userId){
+ User user = userService.getAuthenticatedUser();
Page page = this.getPage(pageId);
+ if(page.getOwnerId().equals(user.getId())){
+ // If I am the owner, this page has been cloned
+ // Declining a cloned page means there is no need to strip
+ // out this users pageUser object, instead remove the page itself
+ // which also removes the pageUser object further down the stack
+ pageRepository.delete(page);
+ return true;
+ }
PageUser pageUserToRemove = null;
for(PageUser pageUser : page.getMembers()){
- if(pageUser.getUser().getId().equals(userId)){
+ if(pageUser.getUserId().equals(userId)){
pageUserToRemove = pageUser;
break;
}
@@ -341,10 +393,10 @@ public class DefaultPageService implemen
@Override
@Transactional
- public Boolean updateSharedPageStatus(long pageId, String shareStatus) {
+ public Boolean updateSharedPageStatus(String pageId, String shareStatus) {
Page page = this.getPage(pageId);
for(PageUser pageUser : page.getMembers()){
- if(pageUser.getUser().equals(userService.getAuthenticatedUser())){
+ if(pageUser.getUserId().equals(userService.getAuthenticatedUser().getId())){
pageUser.setPageStatus(PageInvitationStatus.get(shareStatus));
}
}
@@ -357,10 +409,10 @@ public class DefaultPageService implemen
@Override
@Transactional
- public Boolean updatePageEditingStatus(long pageId, long userId, boolean isEditor) {
+ public Boolean updatePageEditingStatus(String pageId, String userId, boolean isEditor) {
Page page = this.getPage(pageId);
for(PageUser pageUser : page.getMembers()){
- if(pageUser.getUser().equals(userService.getUserById(userId))){
+ if(pageUser.getUserId().equals(userService.getUserById(userId).getId())){
pageUser.setEditor(isEditor);
}
}
@@ -447,7 +499,7 @@ public class DefaultPageService implemen
private RegionWidget createWidgetInstance(Widget widget, Region region, int position) {
RegionWidget regionWidget = new RegionWidgetImpl();
regionWidget.setRenderOrder(position);
- regionWidget.setWidget(widget);
+ regionWidget.setWidgetId(widget.getId());
// TODO: setLocked and setHideChrome are hard-coded to false for new widgets manually added by users
// which makes sense for most default cases. However should we change them to a customizable property
// to allow for more flexibility?
@@ -459,12 +511,12 @@ public class DefaultPageService implemen
return persistedRegion.getRegionWidgets().get(position);
}
- private void moveWithinRegion(long regionWidgetId, int newPosition, Region target) {
+ private void moveWithinRegion(String regionWidgetId, int newPosition, Region target) {
replaceRegionWidget(regionWidgetId, newPosition, target, target);
updateRenderSequences(target.getRegionWidgets());
}
- private void moveBetweenRegions(long regionWidgetId, int newPosition, long fromRegion, Region target) {
+ private void moveBetweenRegions(String regionWidgetId, int newPosition, String fromRegion, Region target) {
Region source = getFromRepository(fromRegion, regionRepository);
replaceRegionWidget(regionWidgetId, newPosition, target, source);
updateRenderSequences(source.getRegionWidgets());
@@ -472,7 +524,7 @@ public class DefaultPageService implemen
regionRepository.save(source);
}
- private void replaceRegionWidget(long regionWidgetId, int newPosition, Region target, Region source) {
+ private void replaceRegionWidget(String regionWidgetId, int newPosition, Region target, Region source) {
RegionWidget widget = findRegionWidgetById(regionWidgetId, source.getRegionWidgets());
source.getRegionWidgets().remove(widget);
target.getRegionWidgets().add(newPosition, widget);
@@ -510,9 +562,9 @@ public class DefaultPageService implemen
long renderSequence = defaultUserPage.size() + 1;
page = new PageImpl();
page.setName(pageName);
- page.setOwner(user);
+ page.setOwnerId(user.getId());
page.setPageLayout(pageLayout);
- PageUser pageUser = new PageUserImpl(page.getOwner(), page, renderSequence);
+ PageUser pageUser = new PageUserImpl(page.getOwnerId(), page, renderSequence);
pageUser.setPageStatus(PageInvitationStatus.OWNER);
pageUser.setEditor(true);
@@ -539,7 +591,7 @@ public class DefaultPageService implemen
}
}
- private Page doMovePage(long pageId, long moveAfterPageId) {
+ private Page doMovePage(String pageId, String moveAfterPageId) {
// get the logged in user
User user = userService.getAuthenticatedUser();
// get the page to move and the page to move after
@@ -569,7 +621,7 @@ public class DefaultPageService implemen
return movingPageUser.getPage();
}
- private static <T> T getFromRepository(long id, Repository<T> repo) {
+ private static <T> T getFromRepository(String id, Repository<T> repo) {
T object = repo.get(id);
if (object == null) {
throw new IllegalArgumentException("Could not find object of given id in " + repo.getClass().getSimpleName());
@@ -585,7 +637,7 @@ public class DefaultPageService implemen
}
}
- private static RegionWidget findRegionWidgetById(Long id, List<RegionWidget> regionWidgets) {
+ private static RegionWidget findRegionWidgetById(String id, List<RegionWidget> regionWidgets) {
for (RegionWidget widget : regionWidgets) {
if (widget.getId().equals(id)) {
return widget;
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultRegionWidgetService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultRegionWidgetService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultRegionWidgetService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultRegionWidgetService.java Fri Dec 28 17:43:23 2012
@@ -44,7 +44,7 @@ public class DefaultRegionWidgetService
}
@Override
- public RegionWidget getRegionWidget(long regionWidgetId) {
+ public RegionWidget getRegionWidget(String regionWidgetId) {
return regionWidgetRepository.get(regionWidgetId);
}
@@ -57,7 +57,7 @@ public class DefaultRegionWidgetService
@Override
@Synchronized(discriminator = "'RegionWidget'", id = "#regionWidgetId")
@Transactional
- public List<RegionWidgetPreference> saveRegionWidgetPreferences(long regionWidgetId,
+ public List<RegionWidgetPreference> saveRegionWidgetPreferences(String regionWidgetId,
List<RegionWidgetPreference> preferences) {
RegionWidget regionWidget = this.getValidRegionWidget(regionWidgetId);
ModelUtils.normalizeRegionWidgetPreferences(regionWidgetId, preferences);
@@ -68,7 +68,7 @@ public class DefaultRegionWidgetService
@Override
@Synchronized(discriminator = "'RegionWidget'", id = "#regionWidgetId")
@Transactional
- public RegionWidgetPreference saveRegionWidgetPreference(long regionWidgetId, RegionWidgetPreference preference) {
+ public RegionWidgetPreference saveRegionWidgetPreference(String regionWidgetId, RegionWidgetPreference preference) {
RegionWidget regionWidget = this.getValidRegionWidget(regionWidgetId);
ModelUtils.normalizeRegionWidgetPreference(regionWidgetId, preference);
reconcileRegionWidgetPreferences(regionWidget.getPreferences(), Arrays.asList(preference), false);
@@ -86,13 +86,13 @@ public class DefaultRegionWidgetService
@Override
@Transactional
- public RegionWidget saveRegionWidgetCollapsedState(long regionWidgetId, boolean collapsed) {
+ public RegionWidget saveRegionWidgetCollapsedState(String regionWidgetId, boolean collapsed) {
RegionWidget regionWidget = getValidRegionWidget(regionWidgetId);
regionWidget.setCollapsed(collapsed);
return saveRegionWidget(regionWidget);
}
- private RegionWidget getValidRegionWidget(long regionWidgetId) {
+ private RegionWidget getValidRegionWidget(String regionWidgetId) {
RegionWidget regionWidget = this.getRegionWidget(regionWidgetId);
if (regionWidget == null) {
throw new IllegalArgumentException("Invalid RegionWidget ID");
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultTagService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultTagService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultTagService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultTagService.java Fri Dec 28 17:43:23 2012
@@ -24,6 +24,7 @@ import org.apache.rave.portal.repository
import org.apache.rave.portal.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -39,7 +40,7 @@ public class DefaultTagService implement
}
@Override
- public Tag getTagById(long entityId) {
+ public Tag getTagById(String entityId) {
return repository.get(entityId);
}
@@ -56,11 +57,17 @@ public class DefaultTagService implement
}
@Override
- public List<Tag> getAvailableTagsByWidgetId(Long widgetId) {
-
- return repository.getAvailableTagsByWidgetId(widgetId);
-
+ @Transactional
+ public Tag save(Tag tag) {
+ return repository.save(tag);
}
+// @Override
+// public List<Tag> getAvailableTagsByWidgetId(String widgetId) {
+//
+// return repository.getAvailableTagsByWidgetId(widgetId);
+//
+// }
+
}
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultUserService.java Fri Dec 28 17:43:23 2012
@@ -20,26 +20,12 @@
package org.apache.rave.portal.service.impl;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import org.apache.commons.lang.StringUtils;
import org.apache.rave.portal.model.PageType;
import org.apache.rave.portal.model.Person;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.util.SearchResult;
-import org.apache.rave.portal.repository.CategoryRepository;
-import org.apache.rave.portal.repository.PageRepository;
-import org.apache.rave.portal.repository.PageTemplateRepository;
-import org.apache.rave.portal.repository.PersonRepository;
-import org.apache.rave.portal.repository.UserRepository;
-import org.apache.rave.portal.repository.WidgetCommentRepository;
-import org.apache.rave.portal.repository.WidgetRatingRepository;
-import org.apache.rave.portal.repository.WidgetRepository;
+import org.apache.rave.portal.repository.*;
import org.apache.rave.portal.service.EmailService;
import org.apache.rave.portal.service.UserService;
import org.slf4j.Logger;
@@ -60,6 +46,8 @@ import org.springframework.security.open
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.*;
+
/**
*
*/
@@ -70,8 +58,6 @@ public class DefaultUserService implemen
private final UserRepository userRepository;
private final PageRepository pageRepository;
private final PageTemplateRepository pageTemplateRepository;
- private final WidgetRatingRepository widgetRatingRepository;
- private final WidgetCommentRepository widgetCommentRepository;
private final WidgetRepository widgetRepository;
private final CategoryRepository categoryRepository;
private final PersonRepository personRepository;
@@ -115,16 +101,12 @@ public class DefaultUserService implemen
@Autowired
public DefaultUserService(PageRepository pageRepository,
UserRepository userRepository,
- WidgetRatingRepository widgetRatingRepository,
- WidgetCommentRepository widgetCommentRepository,
WidgetRepository widgetRepository,
PageTemplateRepository pageTemplateRepository,
CategoryRepository categoryRepository,
PersonRepository personRepository) {
this.userRepository = userRepository;
this.pageRepository = pageRepository;
- this.widgetRatingRepository = widgetRatingRepository;
- this.widgetCommentRepository = widgetCommentRepository;
this.widgetRepository = widgetRepository;
this.pageTemplateRepository = pageTemplateRepository;
this.categoryRepository = categoryRepository;
@@ -153,7 +135,7 @@ public class DefaultUserService implemen
}
@Override
- public void setAuthenticatedUser(long userId) {
+ public void setAuthenticatedUser(String userId) {
final User user = userRepository.get(userId);
if (user == null) {
throw new UsernameNotFoundException("User with id '" + userId + "' was not found!");
@@ -207,7 +189,7 @@ public class DefaultUserService implemen
}
@Override
- public User getUserById(Long id) {
+ public User getUserById(String id) {
return userRepository.get(id);
}
@@ -255,7 +237,7 @@ public class DefaultUserService implemen
@Override
@Transactional
// TODO RAVE-300: add security check that is is called by admin or the user itself
- public void deleteUser(Long userId) {
+ public void deleteUser(String userId) {
log.info("about to delete userId: " + userId);
User user = userRepository.get(userId);
if (user == null) {
@@ -270,23 +252,26 @@ public class DefaultUserService implemen
// delete all person pages
int numDeletedPersonPages = pageRepository.deletePages(userId, PageType.PERSON_PROFILE);
// delete all the widget comments
- int numWidgetComments = widgetCommentRepository.deleteAll(userId);
+ int numWidgetComments = widgetRepository.deleteAllWidgetComments(userId);
// delete all the widget ratings
- int numWidgetRatings = widgetRatingRepository.deleteAll(userId);
+ int numWidgetRatings = widgetRepository.deleteAllWidgetRatings(userId);
// unassign the user from any widgets where they were the owner
int numWidgetsOwned = widgetRepository.unassignWidgetOwner(userId);
// unassign the user from any category records they created or modified
int numCategoriesTouched = categoryRepository.removeFromCreatedOrModifiedFields(userId);
+ // remove any person associations created with other users
+ int numAssociationsRemoved = personRepository.removeAllFriendsAndRequests(userId);
// finally delete the user
userRepository.delete(user);
log.info("Deleted user [" + userId + ',' + username + "] - numPages: " + numDeletedPages + ", numPersonPages:" +
numDeletedPersonPages + ", numWidgetComments: " + numWidgetComments + ", numWidgetRatings: " +
- numWidgetRatings + ", numWidgetsOwned: " + numWidgetsOwned + ",numCategoriesTouched:" + numCategoriesTouched);
+ numWidgetRatings + ", numWidgetsOwned: " + numWidgetsOwned + ", numCategoriesTouched:" + numCategoriesTouched +
+ ", numAssociationRemoved:" + numAssociationsRemoved);
}
@Override
- public List<Person> getAllByAddedWidget(long widgetId) {
+ public List<Person> getAllByAddedWidget(String widgetId) {
List<Person> persons = new ArrayList<Person>();
List<User> users = userRepository.getAllByAddedWidget(widgetId);
for (User u : users) {
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetMarketplaceService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetMarketplaceService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetMarketplaceService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetMarketplaceService.java Fri Dec 28 17:43:23 2012
@@ -1,4 +1,5 @@
/*
+/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
@@ -20,22 +21,17 @@ package org.apache.rave.portal.service.i
import java.nio.charset.Charset;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.rave.portal.model.PortalPreference;
-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.util.SearchResult;
import org.apache.rave.portal.model.util.WidgetMarketplaceSearchResult;
import org.apache.rave.portal.model.util.WidgetMarketplaceWidgetResult;
import org.apache.rave.portal.service.PortalPreferenceService;
-import org.apache.rave.portal.service.UserService;
import org.apache.rave.portal.service.WidgetMarketplaceService;
-import org.apache.rave.portal.service.WidgetMetadataResolver;
-import org.apache.rave.portal.service.WidgetService;
+import org.apache.rave.portal.service.RemoteWidgetResolverService;
import org.apache.rave.portal.web.util.PortalPreferenceKeys;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,10 +53,8 @@ import org.springframework.web.client.Re
@Service
public class DefaultWidgetMarketplaceService implements WidgetMarketplaceService {
- private final WidgetService widgetService;
- private final UserService userService;
private PortalPreferenceService portalPreferenceService;
- private Map<String, WidgetMetadataResolver> widgetMetadataResolverMap;
+ private RemoteWidgetResolverService widgetResolverService;
private static final String DEFAULT_URL = null;
private static final Logger logger = LoggerFactory.getLogger(DefaultWidgetMarketplaceService.class);
private static final String SEARCH = "search?q=${SEARCHTERM}&start=${OFFSET}&rows=${LIMIT}";
@@ -69,16 +63,10 @@ public class DefaultWidgetMarketplaceSer
private static final String CATEGORY_LIST = "tag/all";
@Autowired
- public DefaultWidgetMarketplaceService(WidgetService widgetService, UserService userService,
- PortalPreferenceService pps, List<WidgetMetadataResolver> widgetMetadataResolvers){
- this.widgetService = widgetService;
- this.userService = userService;
+ public DefaultWidgetMarketplaceService(RemoteWidgetResolverService widgetResolverService, PortalPreferenceService pps){
+ this.widgetResolverService = widgetResolverService;
this.portalPreferenceService = pps;
- widgetMetadataResolverMap = new HashMap<String, WidgetMetadataResolver>();
- for (WidgetMetadataResolver widgetMetadataResolver : widgetMetadataResolvers) {
- widgetMetadataResolverMap.put(widgetMetadataResolver.getSupportedContext(), widgetMetadataResolver);
- }
- }
+ }
/* (non-Javadoc)
* @see org.apache.rave.portal.service.WidgetMarketplaceService#getWidgetsByFreeTextSearch(java.lang.String, int, int)
@@ -185,48 +173,6 @@ public class DefaultWidgetMarketplaceSer
return restTemplate;
}
- /*
- * (non-Javadoc)
- * @see org.apache.rave.portal.service.WidgetMarketplaceService#getWidgetMetadata(java.lang.String, java.lang.String)
- */
- public Widget getWidgetMetadata(String url, String type) throws Exception{
- Widget widget = null;
- // check for namespaces in the the type element
- if(type.contains("#")){
- String[] deNamespacedType = type.split("#");
- if(deNamespacedType.length > 0){
- type = deNamespacedType[1];
- }
- }
- if (type.equals("W3C") || type.equals("W3C Widget") || type.equals("W3CWidget")){
- widget = widgetMetadataResolverMap.get("W3C").publishRemote(url);
- } else if (type.equals("OpenSocial") || type.startsWith("OpenSocial")|| type.startsWith("Open Social")){
- widget = widgetMetadataResolverMap.get("OpenSocial").getMetadata(url);
- }else{
- // there may be resources in a marketplace store other than W3C & OpenSocial
- // gadgets so return null if it isn't one of the supported types in rave.
- throw new Exception("Unsupported Widget format");
- }
- return widget;
- }
-
- /* (non-Javadoc)
- * @see org.apache.rave.portal.service.WidgetMarketplaceService#addWidget(org.apache.rave.portal.model.Widget)
- */
- @Override
- public Widget addWidget(Widget widget) throws Exception{
- PortalPreference status = portalPreferenceService.getPreference(PortalPreferenceKeys.INITIAL_WIDGET_STATUS);
- User user = userService.getAuthenticatedUser();
- widget.setOwner(user);
- if (status != null && status.getValue().equals("PUBLISHED")){
- widget.setWidgetStatus(WidgetStatus.PUBLISHED);
- } else {
- widget.setWidgetStatus(WidgetStatus.PREVIEW);
- }
- widgetService.registerNewWidget(widget);
- return widget;
- }
-
/* (non-Javadoc)
* @see org.apache.rave.portal.service.WidgetMarketplaceService#getWidget(java.lang.String)
*/
@@ -240,4 +186,14 @@ public class DefaultWidgetMarketplaceSer
return widget;
}
+ @Override
+ public Widget addWidget(Widget widget) throws Exception {
+ return widgetResolverService.addWidget(widget);
+ }
+
+ @Override
+ public Widget resolveWidgetMetadata(String url, String type) throws Exception {
+ return widgetResolverService.resolveAndDownloadWidgetMetadata(url, type);
+ }
+
}
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultWidgetService.java Fri Dec 28 17:43:23 2012
@@ -21,10 +21,7 @@ package org.apache.rave.portal.service.i
import org.apache.commons.lang.StringUtils;
import org.apache.rave.exception.DuplicateItemException;
-import org.apache.rave.portal.model.Category;
-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.model.util.SearchResult;
import org.apache.rave.portal.model.util.WidgetStatistics;
import org.apache.rave.portal.repository.CategoryRepository;
@@ -35,6 +32,7 @@ import org.springframework.beans.factory
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -87,7 +85,7 @@ public class DefaultWidgetService implem
}
@Override
- public Widget getWidget(long id) {
+ public Widget getWidget(String id) {
return widgetRepository.get(id);
}
@@ -123,7 +121,7 @@ public class DefaultWidgetService implem
}
@Override
- public SearchResult<Widget> getWidgetsByOwner(Long ownerId, int offset, int pageSize) {
+ public SearchResult<Widget> getWidgetsByOwner(String ownerId, int offset, int pageSize) {
final User user = userRepository.get(ownerId);
final int count = widgetRepository.getCountByOwner(user, offset, pageSize);
final List<Widget> widgets = widgetRepository.getByOwner(user, offset, pageSize);
@@ -153,12 +151,12 @@ public class DefaultWidgetService implem
}
@Override
- public WidgetStatistics getWidgetStatistics(long widgetId, long userId) {
+ public WidgetStatistics getWidgetStatistics(String widgetId, String userId) {
return widgetRepository.getWidgetStatistics(widgetId, userId);
}
@Override
- public Map<Long, WidgetStatistics> getAllWidgetStatistics(long userId) {
+ public Map<String, WidgetStatistics> getAllWidgetStatistics(String userId) {
return widgetRepository.getAllWidgetStatistics(userId);
}
@@ -180,11 +178,105 @@ public class DefaultWidgetService implem
}
@Override
- public SearchResult<Widget> getWidgetsByCategory(long categoryId, int offset, int pageSize) {
- List<Widget> widgets = categoryRepository.get(categoryId).getWidgets();
+ public SearchResult<Widget> getWidgetsByCategory(String categoryId, int offset, int pageSize) {
+ Category category = categoryRepository.get(categoryId);
+ if (category == null) {
+ return new SearchResult<Widget>(new ArrayList<Widget>(), 0);
+ }
+
+ List<Widget> widgets = category.getWidgets();
SearchResult<Widget> searchResult = new SearchResult<Widget>(widgets, widgets.size());
searchResult.setOffset(offset);
searchResult.setPageSize(pageSize);
return searchResult;
}
+
+ @Override
+ public WidgetTag getWidgetTag(String id) {
+ return widgetRepository.getTagById(id);
+ }
+
+
+ @Override
+ @Transactional
+ public WidgetTag createWidgetTag(String widgetId, WidgetTag widgetTag) {
+ return widgetRepository.saveWidgetTag(widgetId, widgetTag);
+ }
+
+ @Override
+ public WidgetTag getWidgetTagByWidgetIdAndKeyword(String widgetId, String keyword) {
+ return widgetRepository.getTagByWidgetIdAndKeyword(widgetId, keyword);
+ }
+
+ // ***************************************************************************************************************
+ // Widget Comment Methods
+ // ***************************************************************************************************************
+
+ @Override
+ public WidgetComment getWidgetComment(String widgetId, String commentId) {
+ return widgetRepository.getCommentById(widgetId, commentId);
+ }
+
+ @Override
+ @Transactional
+ public void createWidgetComment(String widgetId, WidgetComment widgetComment) {
+ widgetRepository.createWidgetComment(widgetId, widgetComment);
+ }
+
+ @Override
+ @Transactional
+ public void updateWidgetComment(String widgetId, WidgetComment widgetComment) {
+ widgetRepository.updateWidgetComment(widgetId, widgetComment);
+ }
+
+ @Override
+ @Transactional
+ public void removeWidgetComment(String widgetId, String commentId) {
+ widgetRepository.deleteWidgetComment(widgetId, getWidgetComment(widgetId, commentId));
+ }
+
+ @Override
+ @Transactional
+ public int deleteAllWidgetComments(String userId) {
+ return widgetRepository.deleteAllWidgetComments(userId);
+ }
+
+ @Override
+ public WidgetRating getWidgetRatingByWidgetIdAndUserId(String widgetId, String userId) {
+ return widgetRepository.getWidgetRatingsByWidgetIdAndUserId(widgetId, userId);
+ }
+
+ @Override
+ @Transactional
+ public void updateWidgetRatingScore(String widgetId, WidgetRating widgetRating, Integer score) {
+ widgetRating.setScore(score);
+ widgetRepository.updateWidgetRating(widgetId, widgetRating);
+ }
+
+ @Override
+ @Transactional
+ public void saveWidgetRating(String widgetId, WidgetRating rating) {
+ WidgetRating existingRating = getWidgetRatingByWidgetIdAndUserId(widgetId, rating.getUserId());
+ if (existingRating == null) {
+ widgetRepository.createWidgetRating(widgetId, rating);
+ } else {
+ updateWidgetRatingScore(widgetId, existingRating, rating.getScore());
+ }
+ }
+
+ @Override
+ @Transactional
+ public void removeWidgetRating(String widgetId, String userId) {
+ WidgetRating widgetRating = widgetRepository.getWidgetRatingsByWidgetIdAndUserId(widgetId, userId);
+ if (widgetRating == null) {
+ return;
+ }
+ widgetRepository.deleteWidgetRating(widgetId, widgetRating);
+ }
+
+ @Override
+ @Transactional
+ public int removeAllWidgetRatings(String userId) {
+ return widgetRepository.deleteAllWidgetRatings(userId);
+ }
}
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RegionWidgetRenderer.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RegionWidgetRenderer.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RegionWidgetRenderer.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RegionWidgetRenderer.java Fri Dec 28 17:43:23 2012
@@ -19,9 +19,9 @@
package org.apache.rave.portal.web.renderer;
-import org.apache.rave.portal.model.RegionWidget;
+import org.apache.rave.portal.web.renderer.model.RegionWidgetWrapper;
/**
* Scoped renderer that provides additional RegionWidget related rendering operations
*/
-public interface RegionWidgetRenderer extends Renderer<RegionWidget> {}
+public interface RegionWidgetRenderer extends Renderer<RegionWidgetWrapper> {}
Modified: rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RenderService.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RenderService.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RenderService.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/web/renderer/RenderService.java Fri Dec 28 17:43:23 2012
@@ -19,7 +19,7 @@
package org.apache.rave.portal.web.renderer;
-import org.apache.rave.portal.model.RegionWidget;
+import org.apache.rave.portal.web.renderer.model.RegionWidgetWrapper;
import org.apache.rave.portal.web.renderer.model.RenderContext;
import java.util.Collection;
@@ -35,13 +35,12 @@ public interface RenderService {
Collection<String> getSupportedWidgetTypes();
/**
- * Renders the {@link org.apache.rave.portal.model.RegionWidget} as a String
+ * Renders the {@link org.apache.rave.portal.model.RegionWidget} as a String\
*
- *
- * @param widget widget to renderer
+ * @param regionWidgetWrapper widget to renderer
* @param context the cotnext under which to render the widget
* @return a String representing the rendered widget
*/
- String render(RegionWidget widget, RenderContext context);
+ String render(RegionWidgetWrapper regionWidgetWrapper, RenderContext context);
}