You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2013/01/03 18:45:49 UTC
svn commit: r1428505 - in /rave/branches/mongo:
rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/
rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/
rave-components/rave-mongodb/src/main/java/org/apa...
Author: mfranklin
Date: Thu Jan 3 17:45:48 2013
New Revision: 1428505
URL: http://svn.apache.org/viewvc?rev=1428505&view=rev
Log:
Cleaned up final merge bugs
Modified:
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/branches/mongo/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbWidgetConverter.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbMapReduceStatisticsAggregator.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
rave/branches/mongo/rave-portal-resources/src/main/resources_mongo/db/initial-data.json
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp
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=1428505&r1=1428504&r2=1428505&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 Thu Jan 3 17:45:48 2013
@@ -206,7 +206,7 @@ public class DefaultPageService implemen
RegionWidget regionWidget = regionWidgetRepository.get(regionWidgetId);
verifyRegionWidgetIsNotLocked(regionWidget);
verifyRegionIsNotLocked(target);
- if (toRegionId == fromRegionId) {
+ if (toRegionId.equals(fromRegionId)) {
moveWithinRegion(regionWidgetId, newPosition, target);
} else {
moveBetweenRegions(regionWidgetId, newPosition, fromRegionId, target);
@@ -223,6 +223,8 @@ public class DefaultPageService implemen
// Get the region widget
RegionWidget regionWidget = getFromRepository(regionWidgetId, regionWidgetRepository);
+ Region moveFromRegion = regionWidget.getRegion();
+
// Move it to first position of the first region
Region moveToRegion = toPage.getRegions().get(0);
@@ -233,10 +235,14 @@ public class DefaultPageService implemen
regionWidget.setRenderOrder(0);
regionWidget.setRegion(moveToRegion);
moveToRegion.getRegionWidgets().add(0, regionWidget);
+ //remove it from the old region
+ moveFromRegion.getRegionWidgets().remove(regionWidget);
// update the rendersequences of the widgets in this region
updateRenderSequences(moveToRegion.getRegionWidgets());
+ updateRenderSequences(moveFromRegion.getRegionWidgets());
// persist it
regionRepository.save(moveToRegion);
+ regionRepository.save(moveFromRegion);
return getFromRepository(regionWidgetId, regionWidgetRepository);
}
@@ -318,7 +324,6 @@ public class DefaultPageService implemen
@Transactional
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
@@ -329,10 +334,10 @@ public class DefaultPageService implemen
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());
+ addWidgetToPageRegion(clonedPage.getId(), widgetId, clonedPage.getRegions().get(i).getId());
}
}
+ clonedPage = getFromRepository(clonedPage.getId(), pageRepository);
// newly created page - so only one pageUser
PageUser pageUser = clonedPage.getMembers().get(0);
// update status to pending
Modified: rave/branches/mongo/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java (original)
+++ rave/branches/mongo/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java Thu Jan 3 17:45:48 2013
@@ -19,6 +19,7 @@
package org.apache.rave.portal.service.impl;
+import com.google.common.collect.Lists;
import org.apache.rave.portal.model.Page;
import org.apache.rave.portal.model.PageLayout;
import org.apache.rave.portal.model.PageTemplate;
@@ -1307,21 +1308,25 @@ public class DefaultPageServiceTest {
Region region = new RegionImpl();
region.setLocked(false);
+ region.setRegionWidgets(Lists.<RegionWidget>newArrayList());
RegionWidget regionWidget = new RegionWidgetImpl(VALID_REGION_WIDGET_ID);
regionWidget.setRegion(region);
+ region.getRegionWidgets().add(regionWidget);
expect(pageRepository.get(TO_PAGE_ID)).andReturn(toPageValue);
expect(regionWidgetRepository.get(WIDGET_ID)).andReturn(regionWidget).times(2);
+ expect(regionRepository.save(originalRegion)).andReturn(originalRegion);
+ expect(regionRepository.save(region)).andReturn(region);
- replay(pageRepository);
- replay(regionWidgetRepository);
+ replay(pageRepository, regionWidgetRepository, regionRepository);
RegionWidget updatedRegionWidget = pageService.moveRegionWidgetToPage(VALID_REGION_WIDGET_ID, TO_PAGE_ID);
verify(pageRepository);
verify(regionWidgetRepository);
verifyPositions(0, regionWidget, true);
+ assertThat(region.getRegionWidgets().isEmpty(), is(true));
}
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbWidgetConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbWidgetConverter.java?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbWidgetConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbWidgetConverter.java Thu Jan 3 17:45:48 2013
@@ -22,6 +22,7 @@ package org.apache.rave.portal.model.con
import com.google.common.collect.Lists;
import org.apache.rave.portal.model.*;
import org.apache.rave.portal.model.conversion.HydratingModelConverter;
+import org.apache.rave.portal.model.impl.WidgetCommentImpl;
import org.apache.rave.portal.model.impl.WidgetRatingImpl;
import org.apache.rave.portal.repository.CategoryRepository;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,8 +63,11 @@ public class MongoDbWidgetConverter impl
convertCategories(source, widget);
}
- List<WidgetComment> comments = source.getComments() == null ? Lists.<WidgetComment>newArrayList() : source.getComments();
- widget.setComments(comments);
+ if (source.getComments() == null) {
+ widget.setComments(Lists.<WidgetComment>newArrayList());
+ } else {
+ convertComments(source, widget);
+ }
List<WidgetTag> tags = source.getTags() == null ? Lists.<WidgetTag>newArrayList() : source.getTags();
widget.setTags(tags);
@@ -86,6 +90,27 @@ public class MongoDbWidgetConverter impl
widget.setRatings(converted);
}
+
+ private void convertComments(Widget source, MongoDbWidget widget) {
+ List<WidgetComment> convertedComments = Lists.newArrayList();
+ for (WidgetComment comment : source.getComments()) {
+ convertedComments.add(convert(comment, widget));
+ }
+ widget.setComments(convertedComments);
+ }
+
+
+ private WidgetCommentImpl convert(WidgetComment comment, Widget widget) {
+ WidgetCommentImpl converted = comment instanceof WidgetCommentImpl ? ((WidgetCommentImpl) comment) : new WidgetCommentImpl();
+ converted.setUserId(comment.getUserId());
+ converted.setId(comment.getId() == null ? generateId() : comment.getId());
+
+ converted.setCreatedDate(comment.getCreatedDate());
+ converted.setLastModifiedDate(comment.getLastModifiedDate());
+ converted.setText(comment.getText());
+ return converted;
+ }
+
private void convertCategories(Widget source, MongoDbWidget converted) {
List<String> categoryIds = Lists.<String>newArrayList();
for (Category category : source.getCategories()) {
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbMapReduceStatisticsAggregator.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbMapReduceStatisticsAggregator.java?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbMapReduceStatisticsAggregator.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbMapReduceStatisticsAggregator.java Thu Jan 3 17:45:48 2013
@@ -24,6 +24,8 @@ import org.apache.rave.portal.model.Widg
import org.apache.rave.portal.model.WidgetUsersMapReduceResult;
import org.apache.rave.portal.model.util.WidgetStatistics;
import org.apache.rave.portal.repository.StatisticsAggregator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
@@ -44,6 +46,9 @@ import static org.apache.rave.portal.rep
*/
@Component
public class MongoDbMapReduceStatisticsAggregator implements StatisticsAggregator {
+
+ private static final Logger log = LoggerFactory.getLogger(MongoDbMapReduceStatisticsAggregator.class);
+
public static final String RATINGS_MAP = "classpath:/org/apache/rave/WidgetRatingsMap.js";
public static final String RATINGS_REDUCE = "classpath:/org/apache/rave/WidgetRatingsReduce.js";
public static final String USERS_MAP = "classpath:/org/apache/rave/WidgetUsersMap.js";
@@ -102,14 +107,19 @@ public class MongoDbMapReduceStatisticsA
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
- buildStats();
+ try {
+ log.debug("Executing Map/Reduce Statistics Aggregation");
+ buildStats();
+ } catch (Exception e) {
+ log.error("Error executing Map/Reduce Statistics Aggregation!", e);
+ }
}
}, 0, DEFAULT_RESULT_VALIDITY, TimeUnit.SECONDS);
}
public void buildStats() {
RunStatistics runStats = mongoOperations.findById(ID, RunStatistics.class, OPERATIONS);
- if(runStats == null || (System.currentTimeMillis() - (runStats.getRefreshedTimeStamp()*1000) > DEFAULT_RESULT_VALIDITY)) {
+ if(runStats == null || (System.currentTimeMillis() - runStats.getRefreshedTimeStamp()) > (DEFAULT_RESULT_VALIDITY * 1000)) {
queryForUserStats();
}
}
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java Thu Jan 3 17:45:48 2013
@@ -49,7 +49,7 @@ public class MongoDbPageRepository imple
@Override
public List<Page> getAllPages(String userId, PageType pageType) {
- return sort(template.find(query(where("pageType").is(getString(pageType)).andOperator(where("ownerId").is(userId)))), userId);
+ return sort(template.find(query(where("pageType").is(getString(pageType)).andOperator(where("members").elemMatch(where("userId").is(userId))))), userId);
}
@Override
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java Thu Jan 3 17:45:48 2013
@@ -348,10 +348,14 @@ public class MongoDbWidgetRepository imp
}
private WidgetTag getTagByKeyword(String keyword, Widget widget) {
- Tag tag = tagTemplate.findOne(query(where("keyword").is(keyword)));
+ Tag tag = getTag(keyword);
return tag == null ? null : getWidgetTagByTagId(widget, tag.getId());
}
+ private Tag getTag(String keyword) {
+ return tagTemplate.findOne(query(where("keyword").is(keyword)));
+ }
+
private WidgetTag getWidgetTagByTagId(Widget widget, String tagId) {
for (WidgetTag widgetTag : widget.getTags()) {
if (widgetTag.getTagId().equals(tagId)) {
@@ -377,14 +381,15 @@ public class MongoDbWidgetRepository imp
public WidgetComment createWidgetComment(String widgetId, WidgetComment comment) {
Widget widget = template.get(widgetId);
widget.getComments().add(comment);
- save(widget);
- return comment;
+ widget = save(widget);
+ return findCommentByProperties(widget, comment);
}
@Override
public WidgetComment updateWidgetComment(String widgetId, WidgetComment comment) {
Widget widget = template.get(widgetId);
- return updateComment(widget, comment);
+ updateComment(widget, comment);
+ return getCommentById(save(widget), comment.getId());
}
@Override
@@ -480,7 +485,8 @@ public class MongoDbWidgetRepository imp
}
private Query getTagQuery(String tagKeyWord) {
- return query(where("tags").elemMatch(where("tag.keyword").is(tagKeyWord)));
+ Tag tag = getTag(tagKeyWord);
+ return query(where("tags").elemMatch(where("tagId").is(tag.getId())));
}
private String getWidgetStatusString(WidgetStatus widgetStatus) {
@@ -492,6 +498,17 @@ public class MongoDbWidgetRepository imp
return query;
}
+ private WidgetComment findCommentByProperties(Widget widget, WidgetComment comment) {
+ for(WidgetComment c : widget.getComments()) {
+ if(c.getUserId().equals(comment.getUserId()) &&
+ c.getText().equals(comment.getText()) &&
+ c.getCreatedDate().equals(comment.getCreatedDate())) {
+ return c;
+ }
+ }
+ return null;
+ }
+
public void setTemplate(MongoWidgetOperations template) {
this.template = template;
}
Modified: rave/branches/mongo/rave-portal-resources/src/main/resources_mongo/db/initial-data.json
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/resources_mongo/db/initial-data.json?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal-resources/src/main/resources_mongo/db/initial-data.json (original)
+++ rave/branches/mongo/rave-portal-resources/src/main/resources_mongo/db/initial-data.json Thu Jan 3 17:45:48 2013
@@ -1507,7 +1507,7 @@
"id": 2
}
],
- "renderSequence": 0,
+ "renderSequence": 1,
"defaultTemplate": true
}
]
Modified: rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp (original)
+++ rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp Thu Jan 3 17:45:48 2013
@@ -165,7 +165,7 @@
</div>
</div>
<div class="span3">
- <portal:person id="${page.ownerId}" var="${owner}" />
+ <portal:person id="${page.ownerId}" var="owner" />
<button type="button" id="addRemoveFriend" value="${owner.username}" class="btn btn-primary profile-info-visible"><fmt:message key="page.personProfile.addremove.friends"/></button>
</div>
<div class="span3">
Modified: rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp?rev=1428505&r1=1428504&r2=1428505&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp (original)
+++ rave/branches/mongo/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp Thu Jan 3 17:45:48 2013
@@ -43,7 +43,7 @@
<div id="widgetAdded_${widget.id}" class="detailWidgetAdd">
<button class="btn btn-primary btn-large storeItemButton"
id="addWidget_${widget.id}"
- onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.id}, pageId: ${referringPageId}, redirectAfterAdd:true});"
+ onclick="rave.api.rpc.addWidgetToPage({widgetId: '${widget.id}', pageId: '${referringPageId}', redirectAfterAdd:true});"
data-success="<fmt:message key="page.widget.addedToPage"/>">
<fmt:message key="page.widget.addToPage"/>
</button>