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/01 02:09:57 UTC

svn commit: r1427268 - in /rave/branches/mongo/rave-components/rave-mongodb/src: main/java/org/apache/rave/portal/model/conversion/impl/ main/java/org/apache/rave/portal/repository/ main/java/org/apache/rave/portal/repository/impl/ test/java/org/apache...

Author: mfranklin
Date: Tue Jan  1 01:09:57 2013
New Revision: 1427268

URL: http://svn.apache.org/viewvc?rev=1427268&view=rev
Log:
Fixed minor bugs with String Ids

Modified:
    rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverter.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/MongoDbPageTemplateConverter.java
    rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverter.java
    rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverter.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/model/conversion/impl/TagImplConverter.java
    rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/StatisticsAggregator.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/MongoDbTagRepository.java
    rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.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/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverterTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverterTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverterTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverterTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverterTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbUserRepositoryTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepositoryTest.java
    rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MonogoDbMapReduceStatisticsAggregatorTest.java

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverter.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverter.java Tue Jan  1 01:09:57 2013
@@ -24,8 +24,6 @@ import org.apache.rave.portal.model.Mong
 import org.apache.rave.portal.model.conversion.HydratingModelConverter;
 import org.springframework.stereotype.Component;
 
-import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
-
 @Component
 public class MongoDbAuthorityConverter implements HydratingModelConverter<Authority, MongoDbAuthority> {
     @Override
@@ -40,13 +38,7 @@ public class MongoDbAuthorityConverter i
 
     @Override
     public MongoDbAuthority convert(Authority source) {
-        MongoDbAuthority converted;
-        if(source instanceof MongoDbAuthority) {
-            converted = ((MongoDbAuthority)source);
-        } else {
-            converted = new MongoDbAuthority();
-            converted.setId(generateId());
-        }
+        MongoDbAuthority converted = source instanceof MongoDbAuthority ? (MongoDbAuthority) source : new MongoDbAuthority();
         converted.setAuthority(source.getAuthority());
         converted.setDefaultForNewUser(source.isDefaultForNewUser());
         return converted;

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -26,6 +26,8 @@ import org.apache.rave.portal.repository
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
+
 @Component
 public class MongoDbCategoryConverter implements HydratingModelConverter<Category, MongoDbCategory> {
 
@@ -49,7 +51,7 @@ public class MongoDbCategoryConverter im
     @Override
     public MongoDbCategory convert(Category source) {
         MongoDbCategory category = new MongoDbCategory();
-        category.setId(source.getId());
+        category.setId(source.getId() == null ? generateId() : source.getId());
         category.setCreatedDate(source.getCreatedDate());
         category.setCreatedUserId(source.getCreatedUserId());
         category.setLastModifiedUserId(source.getLastModifiedUserId());

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -49,7 +49,7 @@ public class MongoDbPageConverter implem
     @Override
     public MongoDbPage convert(Page sourcePage) {
         MongoDbPage page = new MongoDbPage();
-        page.setId(sourcePage.getId());
+        page.setId(sourcePage.getId() == null ? generateId() : sourcePage.getId());
         page.setOwnerId(sourcePage.getOwnerId());
         page.setPageLayoutCode(sourcePage.getPageLayout().getCode());
         page.setName(sourcePage.getName());

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverter.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverter.java Tue Jan  1 01:09:57 2013
@@ -135,7 +135,7 @@ public class MongoDbPageTemplateConverte
     }
 
     private void updateProperties(PageTemplate source, MongoDbPageTemplate converted) {
-        converted.setId(source.getId());
+        converted.setId(source.getId() == null ? generateId() : source.getId());
         converted.setName(source.getName());
         converted.setDescription(source.getDescription());
         converted.setPageType(source.getPageType());

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverter.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverter.java Tue Jan  1 01:09:57 2013
@@ -24,8 +24,6 @@ import org.apache.rave.portal.model.Port
 import org.apache.rave.portal.model.conversion.HydratingModelConverter;
 import org.springframework.stereotype.Component;
 
-import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
-
 @Component
 public class MongoDbPortalPreferenceConverter implements HydratingModelConverter<PortalPreference, MongoDbPortalPreference> {
     @Override
@@ -40,14 +38,7 @@ public class MongoDbPortalPreferenceConv
 
     @Override
     public MongoDbPortalPreference convert(PortalPreference source) {
-        MongoDbPortalPreference converted;
-        if (source instanceof MongoDbPortalPreference) {
-            converted = ((MongoDbPortalPreference) source);
-        }
-        else {
-            converted = new MongoDbPortalPreference();
-            converted.setId(generateId());
-        }
+        MongoDbPortalPreference converted = source instanceof MongoDbPortalPreference ? (MongoDbPortalPreference) source : new MongoDbPortalPreference();
         converted.setKey(source.getKey());
         converted.setValues(source.getValues());
         return converted;

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverter.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverter.java Tue Jan  1 01:09:57 2013
@@ -67,7 +67,7 @@ public class MongoDbUserConverter implem
 
     @Override
     public MongoDbUser convert(User source) {
-        MongoDbUser user = new MongoDbUser();
+        MongoDbUser user = source instanceof MongoDbUser ? (MongoDbUser)source : new MongoDbUser();
         List<String> authorityCodes = Lists.newArrayList();
         for(GrantedAuthority authority : source.getAuthorities()) {
             authorityCodes.add(authority.getAuthority());
@@ -102,7 +102,7 @@ public class MongoDbUserConverter implem
         converted.setOpenId(source.getOpenId());
         converted.setForgotPasswordHash(source.getForgotPasswordHash());
         converted.setForgotPasswordTime(source.getForgotPasswordTime());
-
+        converted.setPageLayoutRepository(null);
     }
 
     private String getPageLayoutCode(User source) {

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -97,7 +97,7 @@ public class MongoDbWidgetConverter impl
     }
 
     private void updateProperties(Widget source, MongoDbWidget converted) {
-        converted.setId(source.getId());
+        converted.setId(source.getId() == null ? generateId() : source.getId());
         converted.setUrl(source.getUrl());
         converted.setType(source.getType());
         converted.setTitle(source.getTitle());

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/TagImplConverter.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/TagImplConverter.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/TagImplConverter.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/conversion/impl/TagImplConverter.java Tue Jan  1 01:09:57 2013
@@ -5,6 +5,8 @@ import org.apache.rave.portal.model.conv
 import org.apache.rave.portal.model.impl.TagImpl;
 import org.springframework.stereotype.Component;
 
+import static org.apache.rave.portal.model.util.MongoDbModelUtil.generateId;
+
 @Component
 public class TagImplConverter implements HydratingModelConverter<Tag, TagImpl> {
     @Override
@@ -19,6 +21,7 @@ public class TagImplConverter implements
 
     @Override
     public TagImpl convert(Tag tag) {
-        return new TagImpl(tag.getId(), tag.getKeyword());
+        String id = tag.getId() == null ? generateId() : tag.getId();
+        return new TagImpl(id, tag.getKeyword());
     }
 }

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/StatisticsAggregator.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/StatisticsAggregator.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/StatisticsAggregator.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/StatisticsAggregator.java Tue Jan  1 01:09:57 2013
@@ -22,6 +22,7 @@ package org.apache.rave.portal.repositor
 import org.apache.rave.portal.model.util.WidgetStatistics;
 
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Manages statistics for various attributes of the Rave
@@ -29,4 +30,5 @@ import java.util.Map;
 public interface StatisticsAggregator {
     Map<String, WidgetStatistics> getAllWidgetStatistics(String  userId);
     WidgetStatistics getWidgetStatistics(String widget_id, String user_id);
+    Set<String> getUsersWithWidget(String widgetId);
 }

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -33,6 +33,7 @@ import org.springframework.stereotype.Co
 import javax.annotation.PostConstruct;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
@@ -75,6 +76,12 @@ public class MongoDbMapReduceStatisticsA
     }
 
     @Override
+    public Set<String> getUsersWithWidget(String widgetId) {
+        WidgetUsersMapReduceResult result = mongoOperations.findById(widgetId, WidgetUsersMapReduceResult.class, WIDGET_USERS);
+        return result.getValue().keySet();
+    }
+
+    @Override
     public Map<String , WidgetStatistics> getAllWidgetStatistics(String userId) {
         List<WidgetRatingsMapReduceResult> widgetStats = mongoOperations.findAll(WidgetRatingsMapReduceResult.class, WIDGET_RATINGS);
         List<WidgetUsersMapReduceResult> widgetUsers = mongoOperations.findAll(WidgetUsersMapReduceResult.class, WIDGET_USERS);
@@ -102,7 +109,7 @@ public class MongoDbMapReduceStatisticsA
 
     public void buildStats() {
         RunStatistics runStats = mongoOperations.findById(ID, RunStatistics.class, OPERATIONS);
-        if(runStats == null || (System.currentTimeMillis() - runStats.getRefreshedTimeStamp() > DEFAULT_RESULT_VALIDITY)) {
+        if(runStats == null || (System.currentTimeMillis() - (runStats.getRefreshedTimeStamp()*1000) > DEFAULT_RESULT_VALIDITY)) {
             queryForUserStats();
         }
     }
@@ -126,7 +133,8 @@ public class MongoDbMapReduceStatisticsA
     }
 
     private MapReduceOptions getOptions(String collection) {
-        return MapReduceOptions.options().javaScriptMode(true).outputCollection(collection).outputTypeReplace();
+        //Currently a bug in javascriptMode prevents maps from being correctly stored by the db
+        return MapReduceOptions.options().outputCollection(collection).outputTypeReplace();
     }
 
     private MapReduceResults<WidgetUsersMapReduceResult> executeUsersMapReduce() {

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -36,7 +36,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import static org.bson.types.ObjectId.massageToObjectId;
 import static org.springframework.data.mongodb.core.query.Criteria.where;
 import static org.springframework.data.mongodb.core.query.Query.query;
 
@@ -108,7 +107,7 @@ public class MongoDbPageRepository imple
 
     @Override
     public void delete(Page item) {
-        template.remove(query(where("_id").is(massageToObjectId(item.getId()))));
+        template.remove(query(where("_id").is(item.getId())));
     }
 
     private List<Page> sort(List<Page> pages, final String  userId) {

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbTagRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbTagRepository.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbTagRepository.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbTagRepository.java Tue Jan  1 01:09:57 2013
@@ -72,7 +72,7 @@ public class MongoDbTagRepository implem
 
     @Override
     public void delete(Tag item) {
-        template.remove(query(where("_id").is(massageToObjectId(item.getId()))));
+        template.remove(query(where("_id").is(item.getId())));
     }
 
     public void setWidgetTemplate(MongoTagOperations tagTemplate) {

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbUserRepository.java Tue Jan  1 01:09:57 2013
@@ -20,11 +20,10 @@
 package org.apache.rave.portal.repository.impl;
 
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
 import org.apache.rave.portal.model.MongoDbUser;
-import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.repository.MongoUserOperations;
+import org.apache.rave.portal.repository.StatisticsAggregator;
 import org.apache.rave.portal.repository.UserRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -34,10 +33,8 @@ import org.springframework.stereotype.Re
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Set;
 import java.util.regex.Pattern;
 
-import static org.bson.types.ObjectId.massageToObjectId;
 import static org.springframework.data.mongodb.core.query.Criteria.where;
 import static org.springframework.data.mongodb.core.query.Query.query;
 
@@ -51,7 +48,7 @@ public class MongoDbUserRepository imple
     private MongoUserOperations template;
 
     @Autowired
-    private MongoPageTemplate pageTemplate;
+    private StatisticsAggregator statisticsAggregator;
 
     @Override
     public User getByUsername(String username) {
@@ -91,15 +88,7 @@ public class MongoDbUserRepository imple
 
     @Override
     public List<User> getAllByAddedWidget(String  widgetId) {
-        Query q = query(where("regions").elemMatch(where("regionWidgets").elemMatch(where("widgetId").is(widgetId))));
-        List<Page> pages = pageTemplate.find(q);
-        Set<String> userIds = Sets.newHashSet();
-        for(Page p : pages) {
-            if(!userIds.contains(p.getOwnerId())){
-                userIds.add(p.getOwnerId());
-            }
-        }
-        return getUsersById(userIds);
+        return getUsersById(statisticsAggregator.getUsersWithWidget(widgetId));
     }
 
     @Override
@@ -124,7 +113,7 @@ public class MongoDbUserRepository imple
 
     @Override
     public void delete(User item) {
-        template.remove(query(where("_id").is(massageToObjectId(item.getId()))));
+        template.remove(query(where("_id").is(item.getId())));
     }
 
     private List<User> getUsersById(Collection<String> userIds) {
@@ -149,7 +138,7 @@ public class MongoDbUserRepository imple
         this.template = template;
     }
 
-    public void setPageTemplate(MongoPageTemplate pageTemplate) {
-        this.pageTemplate = pageTemplate;
+    public void setStatisticsAggregator(StatisticsAggregator statisticsAggregator) {
+        this.statisticsAggregator = statisticsAggregator;
     }
 }

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=1427268&r1=1427267&r2=1427268&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 Tue Jan  1 01:09:57 2013
@@ -182,7 +182,7 @@ public class MongoDbWidgetRepository imp
 
     @Override
     public void delete(Widget item) {
-        template.remove(new Query(where("_id").is(massageToObjectId(item.getId()))));
+        template.remove(new Query(where("_id").is(item.getId())));
     }
 
     /*
@@ -221,7 +221,10 @@ public class MongoDbWidgetRepository imp
 
     @Override
     public WidgetRating updateWidgetRating(String widgetId, WidgetRating rating) {
-        return null;
+        Widget widget = template.get(widgetId);
+        WidgetRating updated = updateRating(widget, rating);
+        save(widget);
+        return updated;
     }
 
     @Override
@@ -231,6 +234,17 @@ public class MongoDbWidgetRepository imp
         template.save(widget);
     }
 
+    private WidgetRating updateRating(Widget widget, WidgetRating rating) {
+        for(WidgetRating currentRating : widget.getRatings()) {
+            if(currentRating.getId().equals(rating.getId())) {
+                currentRating.setScore(rating.getScore());
+                currentRating.setUserId(rating.getUserId());
+                return currentRating;
+            }
+        }
+        return null;
+    }
+
     private void removeRating(String ratingId, Widget widget) {
         Iterator<WidgetRating> iterator = widget.getRatings().iterator();
         while (iterator.hasNext()) {
@@ -444,7 +458,6 @@ public class MongoDbWidgetRepository imp
     /*
      * End WidgetComment Repository
      */
-
     private Query getWidgetStatusFreeTextQuery(WidgetStatus widgetStatus, String type, String searchTerm) {
         Criteria criteria = addFreeTextClause(searchTerm, new Criteria());
         if (type != null && !type.isEmpty()) {

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverterTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverterTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbAuthorityConverterTest.java Tue Jan  1 01:09:57 2013
@@ -57,7 +57,7 @@ public class MongoDbAuthorityConverterTe
 
         MongoDbAuthority converted = authorityConverter.convert(authority);
         assertNotNull(converted.getAuthority());
-        assertNotNull(converted.getId());
+        //assertNotNull(converted.getId());
         assertThat(converted.getAuthority(), is(sameInstance(authority.getAuthority())));
         assertThat(converted.isDefaultForNewUser(), is(sameInstance(authority.isDefaultForNewUser())));
 

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverterTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverterTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbCategoryConverterTest.java Tue Jan  1 01:09:57 2013
@@ -102,6 +102,6 @@ public class MongoDbCategoryConverterTes
 
         assertNull(converted.getLastModifiedUserId());
         assertNull(converted.getCreatedUserId());
-        assertNull(converted.getId());
+        assertNotNull(converted.getId());
     }
 }

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverterTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverterTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPageTemplateConverterTest.java Tue Jan  1 01:09:57 2013
@@ -148,7 +148,7 @@ public class MongoDbPageTemplateConverte
 
         MongoDbPageTemplate converted = pageTemplateConverter.convert(pageTemplate);
 
-        assertNull(converted.getId());
+        assertNotNull(converted.getId());
         assertNotNull(converted.getPageTemplateRegions());
         assertNotNull(converted.getSubPageTemplates());
     }
@@ -211,7 +211,7 @@ public class MongoDbPageTemplateConverte
 
         MongoDbPageTemplate converted = pageTemplateConverter.convert(pageTemplate);
 
-        assertNull(converted.getId());
+        assertNotNull(converted.getId());
     }
 
     @Test

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverterTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverterTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbPortalPreferenceConverterTest.java Tue Jan  1 01:09:57 2013
@@ -60,7 +60,7 @@ public class MongoDbPortalPreferenceConv
 
         assertThat(converted.getKey(), is(equalTo("key")));
         assertTrue(converted.getValues().isEmpty());
-        assertNotNull(converted.getId());
+        //assertNotNull(converted.getId());
 
         converted = converter.convert(mpp);
 

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverterTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverterTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverterTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/conversion/impl/MongoDbUserConverterTest.java Tue Jan  1 01:09:57 2013
@@ -185,7 +185,7 @@ public class MongoDbUserConverterTest {
         source.setDefaultPageLayout(pageLayout);
         converted = userConverter.convert(source);
 
-        assertNotNull(converted.getId());
+        //assertNotNull(converted.getId());
         assertThat(converted.getDefaultPageLayoutCode(), is(pageLayout.getCode()));
         assertNull(source.getDefaultPageLayout());
 

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbUserRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbUserRepositoryTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbUserRepositoryTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbUserRepositoryTest.java Tue Jan  1 01:09:57 2013
@@ -19,18 +19,19 @@
 
 package org.apache.rave.portal.repository.impl;
 
+import com.google.common.collect.Sets;
 import org.apache.rave.portal.model.MongoDbUser;
-import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.impl.PageImpl;
 import org.apache.rave.portal.model.impl.UserImpl;
 import org.apache.rave.portal.repository.MongoUserOperations;
+import org.apache.rave.portal.repository.StatisticsAggregator;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.data.mongodb.core.query.Query;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import static org.easymock.EasyMock.*;
 import static org.easymock.EasyMock.isA;
@@ -48,15 +49,15 @@ import static org.springframework.data.m
 public class MongoDbUserRepositoryTest {
     private MongoDbUserRepository userRepository;
     private MongoUserOperations template;
-    private MongoPageTemplate pageTemplate;
+    private StatisticsAggregator aggregator;
 
     @Before
     public void setup() {
         userRepository = new MongoDbUserRepository();
         template = createMock(MongoUserOperations.class);
-        pageTemplate = createMock(MongoPageTemplate.class);
+        aggregator = createMock(StatisticsAggregator.class);
         userRepository.setTemplate(template);
-        userRepository.setPageTemplate(pageTemplate);
+        userRepository.setStatisticsAggregator(aggregator);
     }
 
     @Test
@@ -128,47 +129,20 @@ public class MongoDbUserRepositoryTest {
 
     @Test
     public void getAllByAddedWidget_Valid(){
-          String widgetId = "123";
+        String widgetId = "123";
         String ownerId = "ABC";
-        List<Page> pages = new ArrayList<Page>();
-        Page page = new PageImpl();
-        page.setOwnerId(ownerId);
-        pages.add(page);
-        expect(pageTemplate.find(query(where("regions").elemMatch(where("regionWidgets").elemMatch(where("widgetId").is(widgetId)))))).andReturn(pages);
-        replay(pageTemplate);
+        Set<String> userIds = Sets.newHashSet();
+        userIds.add(ownerId);
+
+        expect(aggregator.getUsersWithWidget(widgetId)).andReturn(userIds);
         UserImpl owner = new UserImpl(ownerId);
         expect(template.get(ownerId)).andReturn(owner);
-        replay(template);
-
-        List<User> users = userRepository.getAllByAddedWidget(widgetId);
-
-        assertTrue(users.size() == pages.size());
-        assertTrue(users.contains(owner));
-    }
-
-    @Test
-    public void getAllByAddedWidget_ContainsOwner(){
-        String widgetId = "123";
-        String ownerId = "1234";
-
-        List<Page> pages = new ArrayList<Page>();
-        Page page = new PageImpl();
-        Page page_2 = new PageImpl();
-        page.setOwnerId(ownerId);
-        page_2.setOwnerId(ownerId);
-        pages.add(page);
-        pages.add(page_2);
-        expect(pageTemplate.find(query(where("regions").elemMatch(where("regionWidgets").elemMatch(where("widgetId").is(widgetId)))))).andReturn(pages);
-        replay(pageTemplate);
-        UserImpl user = new UserImpl(ownerId);
-        expect(template.get(ownerId)).andReturn(user);
-        replay(template);
+        replay(template, aggregator);
 
         List<User> users = userRepository.getAllByAddedWidget(widgetId);
 
         assertTrue(users.size() == 1);
-        assertTrue(users.contains(user));
-
+        assertTrue(users.contains(owner));
     }
 
     @Test

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepositoryTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepositoryTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepositoryTest.java Tue Jan  1 01:09:57 2013
@@ -25,7 +25,6 @@ import org.apache.rave.portal.model.impl
 import org.apache.rave.portal.model.impl.WidgetRatingImpl;
 import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -33,6 +32,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import static org.easymock.EasyMock.*;
+import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.sameInstance;
 import static org.junit.Assert.*;
@@ -168,7 +168,7 @@ public class MongoDbWidgetRatingReposito
         assertNull(ratingRepository.getRatingById(widgetId, id));
     }
 
-    @Test @Ignore("Fix Before Merge")
+    @Test
     public void save_Id_Valid(){
         WidgetRatingImpl item = new WidgetRatingImpl();
         WidgetRatingImpl lookup = new WidgetRatingImpl();
@@ -183,15 +183,15 @@ public class MongoDbWidgetRatingReposito
         Widget widget = new WidgetImpl();
         widget.setRatings(Arrays.asList((WidgetRating)lookup));
 
-        expect(template.get(id)).andReturn(widget);
+        expect(template.get(widgetId)).andReturn(widget);
         expect(template.save(widget)).andReturn(widget);
         replay(template);
 
         WidgetRating widgetRating = ratingRepository.updateWidgetRating(widgetId, item);
 
-        assertThat(item.getScore(), is(sameInstance(lookup.getScore())));
-        assertThat(item.getUserId(), is(sameInstance(lookup.getUserId())));
-        assertThat(item.getScore(), is(sameInstance(lookup.getScore())));
+        assertThat(item.getScore(), is(equalTo(lookup.getScore())));
+        assertThat(item.getUserId(), is(equalTo(lookup.getUserId())));
+        assertThat(item.getScore(), is(equalTo(lookup.getScore())));
         assertThat(widgetRating, is(sameInstance((WidgetRating)lookup)));
     }
 

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MonogoDbMapReduceStatisticsAggregatorTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MonogoDbMapReduceStatisticsAggregatorTest.java?rev=1427268&r1=1427267&r2=1427268&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MonogoDbMapReduceStatisticsAggregatorTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MonogoDbMapReduceStatisticsAggregatorTest.java Tue Jan  1 01:09:57 2013
@@ -270,10 +270,9 @@ public class MonogoDbMapReduceStatistics
         assertThat(result.getTotalUserCount(), is(equalTo(0)));
     }
 
-    @Test
-    @Ignore
+    @Test @Ignore
     public void init_existing() {
-        expect(mongoOperations.findById(eq(ID), eq(RunStatistics.class), eq(OPERATIONS))).andReturn(new RunStatistics(ID, System.currentTimeMillis() - DEFAULT_RESULT_VALIDITY));
+        expect(mongoOperations.findById(eq(ID), eq(RunStatistics.class), eq(OPERATIONS))).andReturn(new RunStatistics(ID, System.currentTimeMillis() - (DEFAULT_RESULT_VALIDITY * 1000)));
         setMapReduceExpectations();
         mongoOperations.save(isA(RunStatistics.class), eq(OPERATIONS));
         expectLastCall();