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/10/24 22:28:24 UTC
svn commit: r1401862 - in
/rave/branches/mongo/rave-components/rave-mongodb/src/main:
java/org/apache/rave/portal/model/util/
java/org/apache/rave/portal/repository/impl/ resources/org/apache/rave/
Author: mfranklin
Date: Wed Oct 24 20:28:24 2012
New Revision: 1401862
URL: http://svn.apache.org/viewvc?rev=1401862&view=rev
Log:
Fixed search by free text
Modified:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/util/MongoDbModelUtil.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/MongoDbPersonRepository.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/WidgetUsersMap.js
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/util/MongoDbModelUtil.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/util/MongoDbModelUtil.java?rev=1401862&r1=1401861&r2=1401862&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/util/MongoDbModelUtil.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/util/MongoDbModelUtil.java Wed Oct 24 20:28:24 2012
@@ -29,6 +29,7 @@ public class MongoDbModelUtil {
private MongoDbModelUtil(){}
public static long generateId() {
- return Math.abs(new Random().nextLong());
+ //Use INT as javascript has issues with truncating longs and we are moving model Ids to String
+ return Math.abs(new Random().nextInt());
}
}
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=1401862&r1=1401861&r2=1401862&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 Wed Oct 24 20:28:24 2012
@@ -35,6 +35,7 @@ import java.util.ArrayList;
import java.util.List;
import static org.springframework.data.mongodb.core.query.Criteria.where;
+import static org.springframework.data.mongodb.core.query.Query.query;
/**
*/
@@ -46,12 +47,12 @@ public class MongoDbPageRepository imple
@Override
public List<Page> getAllPages(Long userId, PageType pageType) {
- return template.find(new Query(where("pageType").is(pageType.getPageType().toUpperCase()).andOperator(where("ownerId").is(userId))));
+ return template.find(query(where("pageType").is(pageType.getPageType().toUpperCase()).andOperator(where("ownerId").is(userId))));
}
@Override
public int deletePages(Long userId, PageType pageType) {
- Query query = new Query(where("pageType").is(pageType).andOperator(where("ownerId").is(userId)));
+ Query query = query(where("pageType").is(pageType).andOperator(where("ownerId").is(userId)));
int count = (int)template.count(query);
template.remove(query);
return count;
@@ -64,12 +65,12 @@ public class MongoDbPageRepository imple
@Override
public boolean hasPersonPage(long userId) {
- return template.count(new Query(where("pageType").is(PageType.PERSON_PROFILE).andOperator(where("ownerId").is(userId)))) > 0;
+ return template.count(query(where("pageType").is(PageType.PERSON_PROFILE).andOperator(where("ownerId").is(userId)))) > 0;
}
@Override
public List<PageUser> getPagesForUser(Long userId, PageType pageType) {
- List<Page> pages = template.find(new 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(pageType))));
List<PageUser> userList = Lists.newArrayList();
for(Page page : pages) {
userList.add(findPageUser(userId, page));
@@ -104,7 +105,10 @@ public class MongoDbPageRepository imple
@Override
public void delete(Page item) {
- template.remove(new Query(where("id").is(item.getId())));
+ template.remove(query(where("id").is(item.getId())));
+ }
+
+ private Query addSort(Query q) {
}
/**
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java?rev=1401862&r1=1401861&r2=1401862&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPersonRepository.java Wed Oct 24 20:28:24 2012
@@ -66,7 +66,7 @@ public class MongoDbPersonRepository imp
@Override
public List<Person> findFriends(String username) {
- MongoDbUser user = (MongoDbUser)template.find(getUsernameQuery(username));
+ MongoDbUser user = (MongoDbUser)template.findOne(getUsernameQuery(username));
return Lists.transform(user.getFriends(), new Function<MongoDbPersonAssociation, Person>() {
@Override
public Person apply(@Nullable MongoDbPersonAssociation input) {
@@ -81,8 +81,8 @@ public class MongoDbPersonRepository imp
@Override
public List<Person> findFriendsWithFriend(String username, String friendUsername) {
- MongoDbUser follower = (MongoDbUser)template.find(getUsernameQuery(username));
- MongoDbUser followed = (MongoDbUser)template.find(getUsernameQuery(friendUsername));
+ MongoDbUser follower = (MongoDbUser)template.findOne(getUsernameQuery(username));
+ MongoDbUser followed = (MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
List<Long> commonFriends = getCommonFriends(follower, followed);
return Lists.transform(commonFriends, new Function<Long, Person>() {
@Override
@@ -109,8 +109,8 @@ public class MongoDbPersonRepository imp
@Override
public boolean addFriend(String friendUsername, String username) {
- MongoDbUser follower = (MongoDbUser)template.find(getUsernameQuery(username));
- MongoDbUser followed = (MongoDbUser)template.find(getUsernameQuery(friendUsername));
+ MongoDbUser follower = (MongoDbUser)template.findOne(getUsernameQuery(username));
+ MongoDbUser followed = (MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
MongoDbPersonAssociation outgoing = new MongoDbPersonAssociation(followed.getId(), FriendRequestStatus.SENT, MongoDbPersonAssociation.Direction.OUTGOING);
MongoDbPersonAssociation incoming = new MongoDbPersonAssociation(follower.getId(), FriendRequestStatus.RECEIVED, MongoDbPersonAssociation.Direction.INCOMING);
@@ -125,8 +125,8 @@ public class MongoDbPersonRepository imp
@Override
public void removeFriend(String friendUsername, String username) {
- MongoDbUser follower = (MongoDbUser)template.find(getUsernameQuery(username));
- MongoDbUser followed = (MongoDbUser)template.find(getUsernameQuery(friendUsername));
+ MongoDbUser follower = (MongoDbUser)template.findOne(getUsernameQuery(username));
+ MongoDbUser followed = (MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
removeAssociation(follower, followed);
removeAssociation(followed, follower);
template.save(follower);
@@ -144,8 +144,8 @@ public class MongoDbPersonRepository imp
@Override
public boolean acceptFriendRequest(String friendUsername, String username) {
- MongoDbUser follower = (MongoDbUser)template.find(getUsernameQuery(username));
- MongoDbUser followed = (MongoDbUser)template.find(getUsernameQuery(friendUsername));
+ MongoDbUser follower = (MongoDbUser)template.findOne(getUsernameQuery(username));
+ MongoDbUser followed = (MongoDbUser)template.findOne(getUsernameQuery(friendUsername));
setAccepted(follower, followed);
setAccepted(followed, follower);
template.save(follower);
@@ -166,7 +166,7 @@ public class MongoDbPersonRepository imp
@Override
public List<Person> findFriendRequestsSent(String username) {
- MongoDbUser follower = (MongoDbUser)template.find(getUsernameQuery(username));
+ MongoDbUser follower = (MongoDbUser)template.findOne(getUsernameQuery(username));
return Lists.transform(follower.getFriends(), new Function<MongoDbPersonAssociation, Person>() {
@Override
public Person apply(@Nullable MongoDbPersonAssociation input) {
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=1401862&r1=1401861&r2=1401862&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 Wed Oct 24 20:28:24 2012
@@ -36,6 +36,7 @@ import org.springframework.stereotype.Re
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Pattern;
import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;
@@ -76,13 +77,13 @@ public class MongoDbWidgetRepository imp
@Override
public List<Widget> getByFreeTextSearch(String searchTerm, int offset, int pageSize) {
- Query query = new Query(getFreeTextClause(searchTerm)).skip(offset).limit(pageSize);
+ Query query = new Query(addFreeTextClause(searchTerm, new Criteria())).skip(offset).limit(pageSize);
return template.find(addSort(query));
}
@Override
public int getCountFreeTextSearch(String searchTerm) {
- return (int) template.count(new Query(getFreeTextClause(searchTerm)));
+ return (int) template.count(new Query(addFreeTextClause(searchTerm, new Criteria())));
}
@Override
@@ -220,19 +221,20 @@ public class MongoDbWidgetRepository imp
}
private Query getWidgetStatusFreeTextQuery(WidgetStatus widgetStatus, String type, String searchTerm) {
- Criteria criteria = getFreeTextClause(searchTerm);
+ Criteria criteria = new Criteria();
if(type != null) {
- criteria.andOperator(where("type").is(type));
+ criteria.and("type").is(type);
}
if(widgetStatus != null) {
- criteria.andOperator(where("widgetStatus").is(getWidgetStatusString(widgetStatus)));
+ criteria.and("widgetStatus").is(getWidgetStatusString(widgetStatus));
}
- return query(criteria);
+ return query(addFreeTextClause(searchTerm, criteria));
}
- private Criteria getFreeTextClause(String searchTerm) {
- String regex = ".*" + searchTerm + ".*";
- return where("title").regex(regex).orOperator(where("title").is(regex));
+ private Criteria addFreeTextClause(String searchTerm, Criteria criteria) {
+ Pattern p = Pattern.compile(".*" + searchTerm + ".*", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
+ criteria.orOperator(where ("title") .regex(p), (where("description").regex(p)));
+ return criteria;
}
private Query getQueryByOwner(User owner) {
Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js?rev=1401862&r1=1401861&r2=1401862&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js Wed Oct 24 20:28:24 2012
@@ -21,23 +21,27 @@ function () {
var widgetMap = {};
var self = this;
- var mapPage = function(page) {
+ var mapPage = function (page) {
if (page.regions) {
- page.regions.forEach(function(region) {
- region.regionWidgets.forEach(function(regionWidget) {
- if (!widgetMap[regionWidget.widgetId]) {
- widgetMap[regionWidget.widgetId] = true;
- var userMap = {};
- userMap[self.ownerId.floatApprox] = 1;
- emit(regionWidget.widgetId, userMap);
- }
- })
+ page.regions.forEach(function (region) {
+ if (region.regionWidgets) {
+ region.regionWidgets.forEach(function (regionWidget) {
+ if (!widgetMap[regionWidget.widgetId]) {
+ widgetMap[regionWidget.widgetId] = true;
+ var userMap = {};
+ userMap[self.ownerId.floatApprox] = 1;
+ emit(regionWidget.widgetId, userMap);
+ }
+ })
+ }
})
}
};
mapPage(this);
- if(this.subPages) {
- this.subPages.forEach(function(p){mapPage(p)})
+ if (this.subPages) {
+ this.subPages.forEach(function (p) {
+ mapPage(p)
+ })
}
}