Author: mfranklin
Date: Thu Oct 25 01:39:34 2012
New Revision: 1401946
URL: http://svn.apache.org/viewvc?rev=1401946&view=rev
Log:
Fixed querying by category
Modified:
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbCategory.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverter.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageConverter.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/MongoDbPageRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
Modified:
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java?rev=1401946&r1=1401945&r2=1401946&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
(original)
+++
rave/branches/mongo/rave-components/rave-core/src/main/java/org/apache/rave/portal/util/data/DataImporter.java
Thu Oct 25 01:39:34 2012
@@ -73,7 +73,7 @@ public class DataImporter {
@PostConstruct
public void importData() {
- if (scriptLocations != null) {
+ if (scriptLocations != null && widgetRepository.getCountAll() == 0) {
for (Resource resource : scriptLocations) {
ModelWrapper wrapper = mapObject(resource);
if (wrapper.getPageLayouts() != null) {
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbCategory.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbCategory.java?rev=1401946&r1=1401945&r2=1401946&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbCategory.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbCategory.java
Thu Oct 25 01:39:34 2012
@@ -19,10 +19,9 @@
package org.apache.rave.portal.model;
-import com.google.common.collect.Lists;
import org.apache.rave.portal.model.impl.CategoryImpl;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
import org.apache.rave.portal.repository.UserRepository;
-import org.apache.rave.portal.repository.WidgetRepository;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonMethod;
@@ -32,6 +31,9 @@ import javax.xml.bind.annotation.XmlAcce
import javax.xml.bind.annotation.XmlTransient;
import java.util.List;
+import static org.springframework.data.mongodb.core.query.Criteria.where;
+import static org.springframework.data.mongodb.core.query.Query.query;
+
@XmlAccessorType(value = XmlAccessType.FIELD)
@JsonAutoDetect(value = JsonMethod.FIELD)
public class MongoDbCategory extends CategoryImpl {
@@ -40,13 +42,11 @@ public class MongoDbCategory extends Cat
private UserRepository userRepository;
@XmlTransient @JsonIgnore
- private WidgetRepository widgetRepository;
+ private MongoWidgetOperations widgetTemplate;
private Long lastModifiedUserId;
private Long createdUserId;
- private List<Long> widgetIds;
-
public UserRepository getUserRepository() {
return userRepository;
}
@@ -55,20 +55,12 @@ public class MongoDbCategory extends Cat
this.userRepository = userRepository;
}
- public WidgetRepository getWidgetRepository() {
- return widgetRepository;
- }
-
- public void setWidgetRepository(WidgetRepository widgetRepository) {
- this.widgetRepository = widgetRepository;
- }
-
- public List<Long> getWidgetIds() {
- return widgetIds;
+ public MongoWidgetOperations getWidgetRepository() {
+ return widgetTemplate;
}
- public void setWidgetIds(List<Long> widgetIds) {
- this.widgetIds = widgetIds;
+ public void setWidgetRepository(MongoWidgetOperations widgetRepository) {
+ this.widgetTemplate = widgetRepository;
}
public Long getLastModifiedUserId() {
@@ -111,10 +103,8 @@ public class MongoDbCategory extends Cat
public List<Widget> getWidgets() {
List<Widget> widgets = super.getWidgets();
if(widgets == null) {
- widgets = Lists.newArrayList();
- for(Long widgetId : widgetIds) {
- widgets.add(widgetRepository.get(widgetId));
- }
+ widgets =
widgetTemplate.find(query(where("categoryIds").is(this.getId())));
+ super.setWidgets(widgets);
}
return widgets;
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverter.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverter.java?rev=1401946&r1=1401945&r2=1401946&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverter.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverter.java
Thu Oct 25 01:39:34 2012
@@ -19,18 +19,14 @@
package org.apache.rave.portal.model.conversion.impl;
-import com.google.common.collect.Lists;
import org.apache.rave.portal.model.Category;
import org.apache.rave.portal.model.MongoDbCategory;
-import org.apache.rave.portal.model.Widget;
import org.apache.rave.portal.model.conversion.HydratingModelConverter;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
import org.apache.rave.portal.repository.UserRepository;
-import org.apache.rave.portal.repository.WidgetRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.util.ArrayList;
-
import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
@Component
@@ -40,7 +36,7 @@ public class MongoDbCategoryConverter im
private UserRepository userRepository;
@Autowired
- private WidgetRepository widgetRepository;
+ private MongoWidgetOperations widgetOperations;
@Override
public void hydrate(MongoDbCategory dehydrated) {
@@ -48,7 +44,7 @@ public class MongoDbCategoryConverter im
return;
}
dehydrated.setUserRepository(userRepository);
- dehydrated.setWidgetRepository(widgetRepository);
+ dehydrated.setWidgetRepository(widgetOperations);
}
@Override
@@ -68,13 +64,6 @@ public class MongoDbCategoryConverter im
category.setCreatedUser(null);
category.setLastModifiedUser(null);
category.setText(source.getText());
- ArrayList<Long> widgetIds = Lists.<Long>newArrayList();
- category.setWidgetIds(widgetIds);
- if (source.getWidgets() != null) {
- for (Widget widget : source.getWidgets()) {
- widgetIds.add(widget.getId());
- }
- }
category.setWidgets(null);
return category;
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageConverter.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageConverter.java?rev=1401946&r1=1401945&r2=1401946&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageConverter.java
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageConverter.java
Thu Oct 25 01:39:34 2012
@@ -161,7 +161,9 @@ public class MongoDbPageConverter implem
}
private void hydrate(Region region) {
- if (region.getRegionWidgets() != null) {
+ if (region.getRegionWidgets() == null) {
+ region.setRegionWidgets(Lists.<RegionWidget>newArrayList());
+ } else {
for (RegionWidget regionWidget : region.getRegionWidgets()) {
hydrate((MongoDbRegionWidget) regionWidget, region);
}
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=1401946&r1=1401945&r2=1401946&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 Oct 25 01:39:34 2012
@@ -90,13 +90,22 @@ public class MongoDbWidgetConverter impl
if (source.getCategories() != null) {
convertCategories(source, widget);
}
- if (source.getComments() != null) {
+
+ if (source.getComments() == null) {
+ widget.setComments(Lists.<WidgetComment>newArrayList());
+ } else {
convertComments(source, widget);
}
- if(source.getTags() != null) {
+
+ if (source.getTags() == null) {
+ widget.setTags(Lists.<WidgetTag>newArrayList());
+ } else {
convertTags(source, widget);
}
- if(source.getRatings() != null) {
+
+ if (source.getRatings() == null) {
+ widget.setRatings(Lists.<WidgetRating>newArrayList());
+ } else {
convertRatings(source, widget);
}
return widget;
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=1401946&r1=1401945&r2=1401946&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 Oct 25 01:39:34 2012
@@ -32,6 +32,8 @@ import org.springframework.data.mongodb.
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import static org.springframework.data.mongodb.core.query.Criteria.where;
@@ -47,7 +49,7 @@ public class MongoDbPageRepository imple
@Override
public List<Page> getAllPages(Long userId, PageType pageType) {
- return
template.find(query(where("pageType").is(pageType.getPageType().toUpperCase()).andOperator(where("ownerId").is(userId))));
+ return
sort(template.find(query(where("pageType").is(getString(pageType)).andOperator(where("ownerId").is(userId)))),
userId);
}
@Override
@@ -70,12 +72,12 @@ public class MongoDbPageRepository imple
@Override
public List<PageUser> getPagesForUser(Long userId, PageType pageType) {
- List<Page> pages =
template.find(query(where("members").elemMatch(where("userId").is(userId)).andOperator(where("pageType").is(pageType))));
+ List<Page> pages =
template.find(query(where("members").elemMatch(where("userId").is(userId)).andOperator(where("pageType").is(getString(pageType)))));
List<PageUser> userList = Lists.newArrayList();
for(Page page : pages) {
userList.add(findPageUser(userId, page));
}
- return userList;
+ return sortUsers(userList, userId);
}
@Override
@@ -105,10 +107,41 @@ public class MongoDbPageRepository imple
@Override
public void delete(Page item) {
- template.remove(query(where("id").is(item.getId())));
+ template.remove(query(where("_id").is(item.getId())));
+ }
+
+ private List<Page> sort(List<Page> pages, final Long userId) {
+ Collections.sort(pages, new Comparator<Page>() {
+ @Override
+ public int compare(Page page, Page page1) {
+ return getRenderOrder(page, userId) - getRenderOrder(page1,
userId);
+ }
+ });
+ return pages;
+ }
+
+ private List<PageUser> sortUsers(List<PageUser> userList, Long userId) {
+ Collections.sort(userList, new Comparator<PageUser>() {
+ @Override
+ public int compare(PageUser pageUser, PageUser pageUser1) {
+ return getRenderOrder(pageUser) - getRenderOrder(pageUser1);
+ }
+ });
+ return userList;
+ }
+
+ private int getRenderOrder(PageUser pageUser) {
+ return pageUser == null || pageUser.getRenderSequence() == null ?
Integer.MAX_VALUE : pageUser.getRenderSequence().intValue();
}
- private Query addSort(Query q) {
+ private int getRenderOrder(Page page, Long userId) {
+ for(PageUser user : page.getMembers()) {
+ MongoDbPageUser mUser = (MongoDbPageUser)user;
+ if(mUser.getUser().getId().equals(userId)) {
+ return getRenderOrder(mUser);
+ }
+ }
+ return -1;
}
/**
@@ -213,11 +246,15 @@ public class MongoDbPageRepository imple
private PageUser findPageUser(Long userId, Page page) {
for(PageUser user : page.getMembers()) {
- if(user.getId().equals(userId)) {
+ if(user.getUser().getId().equals(userId)) {
return user;
}
}
return null;
}
+ private String getString(PageType pageType) {
+ return pageType.getPageType().toUpperCase();
+ }
+
}
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=1401946&r1=1401945&r2=1401946&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 Oct 25 01:39:34 2012
@@ -260,7 +260,7 @@ public class MongoDbWidgetRepository imp
}
}
- private WidgetStatistics createWidgetStatisticsFromResults(long user_id,
WidgetRatingsMapReduceResult statsResult, int userResult) {
+ private WidgetStatistics createWidgetStatisticsFromResults(long user_id,
WidgetRatingsMapReduceResult statsResult, Integer userResult) {
WidgetStatistics statistics = new WidgetStatistics();
WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult result =
statsResult.getValue();
if (result != null) {
@@ -268,7 +268,7 @@ public class MongoDbWidgetRepository imp
statistics.setTotalLike(result.getLike().intValue());
statistics.setUserRating(result.getUserRatings().containsKey(user_id) ?
result.getUserRatings().get(user_id).intValue() : -1);
}
- statistics.setTotalUserCount(userResult);
+ statistics.setTotalUserCount(userResult == null ? 0 : userResult);
return statistics;
}
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js?rev=1401946&r1=1401945&r2=1401946&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
Thu Oct 25 01:39:34 2012
@@ -18,15 +18,15 @@
*/
function () {
if (this.ratings) {
- for (var i = 0; i < this.ratings.length; i++) {
- var rating = this.ratings[i];
+ var self = this;
+ this.ratings.forEach(function(rating){
var userMap = {};
- userMap[this.userId.floatApprox] = rating.score;
- emit(this._id, {
- like:rating.score == 10 ? 1 : 0,
- dislike:rating.score == 0 ? 1 : 0,
- userRatings:userMap
- });
- }
+ userMap[rating.userId.floatApprox] = rating.score;
+ emit(self._id, {
+ like:rating.score == 10 ? 1 : 0,
+ dislike:rating.score == 0 ? 1 : 0,
+ userRatings:userMap
+ });
+ });
}
}