Author: mfranklin
Date: Wed Oct 17 04:14:13 2012
New Revision: 1399088

URL: http://svn.apache.org/viewvc?rev=1399088&view=rev
Log:
Refactored interaface location

Added:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageOperations.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoUserOperations.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoWidgetOperations.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsReduce.js
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersReduce.js
Modified:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.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/MongoDbRegionRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.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/MongoDbWidgetCommentRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.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/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplate.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoUserTemplate.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoWidgetTemplate.java

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoModelOperations.java
 Wed Oct 17 04:14:13 2012
@@ -19,9 +19,6 @@
 
 package org.apache.rave.portal.repository;
 
-import org.apache.rave.portal.model.Page;
-import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.Widget;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
 
@@ -37,8 +34,4 @@ public interface MongoModelOperations<T>
     T save(T item);
     void remove(Query query);
     int update(Query query, Update update);
-
-    public static interface MongoPageOperations extends 
MongoModelOperations<Page> {}
-    public static interface MongoUserOperations extends 
MongoModelOperations<User> {}
-    public static interface MongoWidgetOperations extends 
MongoModelOperations<Widget> {}
 }

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageOperations.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageOperations.java?rev=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageOperations.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageOperations.java
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.rave.portal.repository;
+
+import org.apache.rave.portal.model.Page;
+
+public interface MongoPageOperations extends MongoModelOperations<Page> {
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoUserOperations.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoUserOperations.java?rev=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoUserOperations.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoUserOperations.java
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.rave.portal.repository;
+
+import org.apache.rave.portal.model.User;
+
+public interface MongoUserOperations extends MongoModelOperations<User> {
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoWidgetOperations.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoWidgetOperations.java?rev=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoWidgetOperations.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoWidgetOperations.java
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,27 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.rave.portal.repository;
+
+import org.apache.rave.portal.model.Widget;
+import org.springframework.data.mongodb.core.mapreduce.MapReduceResults;
+
+public interface MongoWidgetOperations extends MongoModelOperations<Widget> {
+    <T> MapReduceResults<T> mapReduce(String mapFunction, String 
reduceFunction, Class<T> entityClass);
+}

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=1399088&r1=1399087&r2=1399088&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 17 04:14:13 2012
@@ -25,7 +25,7 @@ import org.apache.rave.portal.model.impl
 import org.apache.rave.portal.model.impl.PageUserImpl;
 import org.apache.rave.portal.model.impl.RegionImpl;
 import org.apache.rave.portal.model.impl.RegionWidgetImpl;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoPageOperations;
 import org.apache.rave.portal.repository.PageRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
@@ -42,7 +42,7 @@ import static org.springframework.data.m
 public class MongoDbPageRepository implements PageRepository {
 
     @Autowired
-    private MongoModelOperations.MongoPageOperations template;
+    private MongoPageOperations template;
 
     @Override
     public List<Page> getAllPages(Long userId, PageType pageType) {

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=1399088&r1=1399087&r2=1399088&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 17 04:14:13 2012
@@ -23,7 +23,7 @@ import com.google.common.base.Function;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang.NotImplementedException;
 import org.apache.rave.portal.model.*;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoUserOperations;
 import org.apache.rave.portal.repository.PersonRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
@@ -42,7 +42,7 @@ import static org.springframework.data.m
 public class MongoDbPersonRepository implements PersonRepository {
 
     @Autowired
-    private MongoModelOperations.MongoUserOperations template;
+    private MongoUserOperations template;
 
     @Override
     public Person findByUsername(String username) {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionRepository.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionRepository.java
 Wed Oct 17 04:14:13 2012
@@ -22,7 +22,7 @@ package org.apache.rave.portal.repositor
 import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.Region;
 import org.apache.rave.portal.model.impl.RegionImpl;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoPageOperations;
 import org.apache.rave.portal.repository.RegionRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -38,7 +38,7 @@ import java.util.List;
 public class MongoDbRegionRepository implements RegionRepository {
 
     @Autowired
-    private MongoModelOperations.MongoPageOperations template;
+    private MongoPageOperations template;
 
 
     @Override

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbRegionWidgetRepository.java
 Wed Oct 17 04:14:13 2012
@@ -23,7 +23,7 @@ import org.apache.rave.portal.model.Mong
 import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.Region;
 import org.apache.rave.portal.model.RegionWidget;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoPageOperations;
 import org.apache.rave.portal.repository.RegionWidgetRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
@@ -37,7 +37,7 @@ import static org.springframework.data.m
 public class MongoDbRegionWidgetRepository implements RegionWidgetRepository {
 
     @Autowired
-    private MongoModelOperations.MongoPageOperations template;
+    private MongoPageOperations template;
 
     @Override
     public Class<? extends RegionWidget> getType() {

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=1399088&r1=1399087&r2=1399088&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
 Wed Oct 17 04:14:13 2012
@@ -20,11 +20,17 @@
 package org.apache.rave.portal.repository.impl;
 
 
+import com.google.common.collect.Lists;
+import org.apache.commons.collections.ListUtils;
 import org.apache.rave.exception.NotSupportedException;
 import org.apache.rave.portal.model.Tag;
+import org.apache.rave.portal.model.Widget;
+import org.apache.rave.portal.model.WidgetTag;
+import org.apache.rave.portal.model.impl.TagImpl;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.TagRepository;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -33,28 +39,35 @@ import java.util.List;
 public class MongoDbTagRepository implements TagRepository{
 
     @Autowired
-    private MongoOperations template;
+    private MongoWidgetOperations widgetTemplate;
 
     @Override
     public List<Tag> getAll() {
-        return null;
+        List<Widget> widgets = widgetTemplate.find(new Query());
+        List<Tag> tags = Lists.newArrayList();
+        for(Widget widget : widgets) {
+            addUniqueTags(tags, widget);
+        }
+        return tags;
     }
 
     @Override
     public int getCountAll() {
-        return 0;
+        return getAll().size();
     }
 
     @Override
     public Tag getByKeyword(String keyword) {
-        return null;
+        return new TagImpl(keyword);
     }
 
     @Override
+    @SuppressWarnings("unchecked")
     public List<Tag> getAvailableTagsByWidgetId(Long widgetId) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        List<Tag> all = getAll();
+        List<Tag> widgetTags= 
getTagsFromWidget(widgetTemplate.get(widgetId).getTags());
+        return ListUtils.subtract(all, widgetTags);
     }
-
     @Override
     public Class<? extends Tag> getType() {
         return Tag.class;
@@ -74,4 +87,22 @@ public class MongoDbTagRepository implem
     public void delete(Tag item) {
         throw new NotSupportedException("Cannot delete tags directly");
     }
+
+    private List<Tag> getTagsFromWidget(List<WidgetTag> widgetTags) {
+        List<Tag> tags = Lists.newArrayList();
+        for(WidgetTag widgetTag : widgetTags) {
+            tags.add(widgetTag.getTag());
+        }
+        return tags;
+    }
+
+
+    private void addUniqueTags(List<Tag> tags, Widget widget) {
+        for(WidgetTag widgetTag : widget.getTags()) {
+            Tag tag = widgetTag.getTag();
+            if(!tags.contains(tag)) {
+                tags.add(tag);
+            }
+        }
+    }
 }

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=1399088&r1=1399087&r2=1399088&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
 Wed Oct 17 04:14:13 2012
@@ -21,7 +21,7 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.MongoDbUser;
 import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoUserOperations;
 import org.apache.rave.portal.repository.UserRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Query;
@@ -39,7 +39,7 @@ import static org.springframework.data.m
 public class MongoDbUserRepository implements UserRepository {
 
     @Autowired
-    private MongoModelOperations.MongoUserOperations template;
+    private MongoUserOperations template;
 
     @Override
     public User getByUsername(String username) {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetCommentRepository.java
 Wed Oct 17 04:14:13 2012
@@ -22,7 +22,7 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.Widget;
 import org.apache.rave.portal.model.WidgetComment;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.WidgetCommentRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
@@ -39,7 +39,7 @@ import static org.springframework.data.m
 public class MongoDbWidgetCommentRepository implements WidgetCommentRepository 
{
 
     @Autowired
-    private MongoModelOperations.MongoWidgetOperations template;
+    private MongoWidgetOperations template;
 
     @Override
     public int deleteAll(Long userId) {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRatingRepository.java
 Wed Oct 17 04:14:13 2012
@@ -21,7 +21,7 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.Widget;
 import org.apache.rave.portal.model.WidgetRating;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.WidgetRatingRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
@@ -37,7 +37,7 @@ import static org.springframework.data.m
 public class MongoDbWidgetRatingRepository implements WidgetRatingRepository {
 
     @Autowired
-    private MongoModelOperations.MongoWidgetOperations template;
+    private MongoWidgetOperations template;
 
     @Override
     public WidgetRating getByWidgetIdAndUserId(Long widgetId, Long userId) {

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=1399088&r1=1399087&r2=1399088&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 17 04:14:13 2012
@@ -21,7 +21,7 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.util.WidgetStatistics;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.WidgetRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -43,7 +43,7 @@ import static org.springframework.data.m
 public class MongoDbWidgetRepository implements WidgetRepository {
 
     @Autowired
-    private MongoModelOperations.MongoWidgetOperations template;
+    private MongoWidgetOperations template;
 
     @Override
     public List<Widget> getAll() {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepository.java
 Wed Oct 17 04:14:13 2012
@@ -22,7 +22,7 @@ package org.apache.rave.portal.repositor
 import org.apache.rave.exception.NotSupportedException;
 import org.apache.rave.portal.model.Widget;
 import org.apache.rave.portal.model.WidgetTag;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.apache.rave.portal.repository.WidgetTagRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
@@ -34,7 +34,7 @@ import java.util.Iterator;
 @Repository
 public class MongoDbWidgetTagRepository implements WidgetTagRepository {
     @Autowired
-    private MongoModelOperations.MongoWidgetOperations template;
+    private MongoWidgetOperations template;
 
     @Override
     public WidgetTag getByWidgetIdAndTag(Long widgetId, String keyword) {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplate.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplate.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplate.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplate.java
 Wed Oct 17 04:14:13 2012
@@ -21,13 +21,13 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.MongoDbPage;
 import org.apache.rave.portal.model.Page;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoPageOperations;
 import org.springframework.stereotype.Component;
 
 /**
  */
 @Component
-public class MongoPageTemplate extends MongoModelTemplate<Page, MongoDbPage> 
implements MongoModelOperations.MongoPageOperations {
+public class MongoPageTemplate extends MongoModelTemplate<Page, MongoDbPage> 
implements MongoPageOperations {
     public static final String COLLECTION = "page";
 
     public MongoPageTemplate() {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoUserTemplate.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoUserTemplate.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoUserTemplate.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoUserTemplate.java
 Wed Oct 17 04:14:13 2012
@@ -21,11 +21,11 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.MongoDbUser;
 import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoUserOperations;
 import org.springframework.stereotype.Component;
 
 @Component
-public class MongoUserTemplate extends MongoModelTemplate<User, MongoDbUser> 
implements MongoModelOperations.MongoUserOperations {
+public class MongoUserTemplate extends MongoModelTemplate<User, MongoDbUser> 
implements MongoUserOperations {
     public static final String COLLECTION = "person";
 
     public MongoUserTemplate() {

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoWidgetTemplate.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoWidgetTemplate.java?rev=1399088&r1=1399087&r2=1399088&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoWidgetTemplate.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoWidgetTemplate.java
 Wed Oct 17 04:14:13 2012
@@ -21,17 +21,23 @@ package org.apache.rave.portal.repositor
 
 import org.apache.rave.portal.model.MongoDbWidget;
 import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.repository.MongoModelOperations;
+import org.apache.rave.portal.repository.MongoWidgetOperations;
+import org.springframework.data.mongodb.core.mapreduce.MapReduceResults;
 import org.springframework.stereotype.Component;
 
 /**
  */
 @Component
-public class MongoWidgetTemplate extends MongoModelTemplate<Widget, 
MongoDbWidget> implements MongoModelOperations.MongoWidgetOperations {
+public class MongoWidgetTemplate extends MongoModelTemplate<Widget, 
MongoDbWidget> implements MongoWidgetOperations {
     
     public static final String COLLECTION = "widget";
 
     public MongoWidgetTemplate() {
         super(Widget.class, MongoDbWidget.class, COLLECTION);
     }
+
+    @Override
+    public <T> MapReduceResults<T> mapReduce(String mapFunction, String 
reduceFunction, Class<T> entityClass) {
+        return mongoTemplate.mapReduce(COLLECTION, mapFunction, 
reduceFunction, entityClass);
+    }
 }

Added: 
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=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsMap.js
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,28 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+function() {
+    for(var i=0; i<this.ratings.length; i++) {
+        var rating = this.ratings[i];
+        emit(this._id, {
+            totalLike : rating.score == 10 ? 1 : 0,
+            totalDislike : rating.score == 0 ? 1: 0,
+            userRating : rating.score
+        });
+    }
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsReduce.js
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsReduce.js?rev=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsReduce.js
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetRatingsReduce.js
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,32 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+function(key, values) {
+    var result = {
+        totalLike : 0,
+        totalDislike : 0,
+        userRating : 0
+    };
+    for(var i=0; i< values.length; i++) {
+        result.totalLike += values[i].totalLike;
+        result.totalDislike += values[i].totalDislike;
+        result.userRating += values[i].userRating;
+    }
+    return result;
+
+}

Added: 
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=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersMap.js
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,30 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+function () {
+    var widgetMap = {};
+    for(var i=0; i<this.regions.length; i++) {
+        for(var j=0; j<this.regions[i].regionWidgets.length; j++) {
+            var regionWidget = this.regions[i].regionWidgets[j];
+            if(!widgetMap[regionWidget.widgetId]) {
+                widgetMap[regionWidget.widgetId] = true;
+                emit(regionWidget.widgetId, 1)
+            }
+        }
+    }
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersReduce.js
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersReduce.js?rev=1399088&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersReduce.js
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/WidgetUsersReduce.js
 Wed Oct 17 04:14:13 2012
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+function (key, values) {
+    var result=0;
+    for(var i=0; i<values.length; i++) {
+        result += values[i];
+    }
+    return result;
+}


Reply via email to