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/12/28 18:43:30 UTC

svn commit: r1426593 [11/16] - in /rave/branches/mongo: ./ rave-components/ rave-components/rave-commons/ rave-components/rave-commons/src/main/java/org/apache/rave/persistence/ rave-components/rave-core/ rave-components/rave-core/src/main/java/org/apa...

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepositoryTest.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepositoryTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepositoryTest.java Fri Dec 28 17:43:23 2012
@@ -31,34 +31,8 @@ import org.apache.rave.portal.repository
 import org.apache.rave.portal.repository.StatisticsAggregator;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.easymock.EasyMock.*;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.springframework.data.mongodb.core.query.Criteria.where;
-import static org.springframework.data.mongodb.core.query.Query.query;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.easymock.EasyMock.*;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.springframework.data.mongodb.core.query.Criteria.where;
-import static org.springframework.data.mongodb.core.query.Query.query;
-
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -296,10 +270,10 @@ public class MongoDbWidgetRepositoryTest
     public void getByOwmer(){
         int offset = 2;
         int pageSize = 10;
-        User owner = new UserImpl(1234L);
+        User owner = new UserImpl("1234L");
         List<Widget> widgets = Lists.newArrayList();
         Widget w = new WidgetImpl();
-        w.setOwner(owner);
+        w.setOwnerId(owner.getId());
         widgets.add(w);
 
         expect(template.find(isA(Query.class))).andReturn(widgets);
@@ -314,10 +288,11 @@ public class MongoDbWidgetRepositoryTest
         long count = 0;
         int offset = 2;
         int pageSize = 10;
-        User owner = new UserImpl(1234L);
+        String id = "1234L";
+        User owner = new UserImpl(id);
         List<Widget> widgets = Lists.newArrayList();
         Widget w = new WidgetImpl();
-        w.setOwner(owner);
+        w.setOwnerId(id);
         widgets.add(w);
 
         expect(template.count(isA(Query.class))).andReturn(count);
@@ -344,8 +319,8 @@ public class MongoDbWidgetRepositoryTest
 
     @Test
     public void getWidgetStatistics(){
-        long widget_id = 1111L;
-        long user_id = 2222L;
+        String widget_id = "1111L";
+        String user_id = "2222L";
 
         WidgetStatistics ws = new WidgetStatistics();
 
@@ -359,8 +334,8 @@ public class MongoDbWidgetRepositoryTest
 
     @Test
     public void getAllWidgetStatistics(){
-        long user_id = 2222L;
-        Map<Long, WidgetStatistics> ws = Maps.newHashMap();
+        String user_id = "2222L";
+        Map<String, WidgetStatistics> ws = Maps.newHashMap();
 
         expect(statsAggregator.getAllWidgetStatistics(user_id)).andReturn(ws);
         replay(statsAggregator);
@@ -372,15 +347,15 @@ public class MongoDbWidgetRepositoryTest
 
     @Test
     public void getUserWidgetRatings(){
-        long userId = 1234L;
-        Map<Long, WidgetRating> wr = Maps.newHashMap();
+        String userId = "1234L";
+        Map<String, WidgetRating> wr = Maps.newHashMap();
         List<Widget> widgets = Lists.newArrayList();
         List<WidgetRating> widget_ratings = Lists.newArrayList();
-        Widget widget = new WidgetImpl(1111L);
+        Widget widget = new WidgetImpl("1111L");
         WidgetRating rating1 = new WidgetRatingImpl();
         WidgetRating rating2 = new WidgetRatingImpl();
         rating1.setUserId(userId);
-        rating2.setUserId(5555L);
+        rating2.setUserId("5555L");
         widget_ratings.add(rating1);
         widget_ratings.add(rating2);
         widget.setRatings(widget_ratings);
@@ -402,7 +377,6 @@ public class MongoDbWidgetRepositoryTest
         List<Widget> widgets = Lists.newArrayList();
         Widget widget = new WidgetImpl();
         Tag tag = new TagImpl();
-        tag.setKeyword(tagKeyword);
         expect(template.find(isA(Query.class))).andReturn(widgets);
         replay(template);
     }

Modified: rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepositoryTest.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepositoryTest.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepositoryTest.java (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbWidgetTagRepositoryTest.java Fri Dec 28 17:43:23 2012
@@ -19,29 +19,12 @@
 
 package org.apache.rave.portal.repository.impl;
 
-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.model.impl.WidgetImpl;
-import org.apache.rave.portal.model.impl.WidgetTagImpl;
 import org.apache.rave.portal.repository.MongoWidgetOperations;
 import org.junit.Before;
 import org.junit.Rule;
-import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-
-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.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
+import static org.easymock.EasyMock.createMock;
 
 /**
  * User: DSULLIVAN
@@ -49,7 +32,7 @@ import static org.junit.Assert.assertTha
  * Time: 2:46 PM
  */
 public class MongoDbWidgetTagRepositoryTest {
-    private MongoDbWidgetTagRepository tagRepository;
+    private MongoDbWidgetRepository tagRepository;
     private MongoWidgetOperations template;
 
     @Rule
@@ -57,11 +40,12 @@ public class MongoDbWidgetTagRepositoryT
 
     @Before
     public void setup() {
-        tagRepository = new MongoDbWidgetTagRepository();
+        tagRepository = new MongoDbWidgetRepository();
         template = createMock(MongoWidgetOperations.class);
         tagRepository.setTemplate(template);
     }
 
+/*
     @Test
     public void getByWidgetIdAndTag_Valid() {
         long widgetId = 3874;
@@ -222,5 +206,6 @@ public class MongoDbWidgetTagRepositoryT
         verify(template);
     }
 
+*/
 
 }

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=1426593&r1=1426592&r2=1426593&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 Fri Dec 28 17:43:23 2012
@@ -57,140 +57,140 @@ public class MonogoDbMapReduceStatistics
     @Test
     public void getAllStatistics_valid() {
 
-        Map<Long, Long> userRatings = getRatingsMap();
-        Map<Long, Long> users = getUsersMap();
+        Map<String, Long> userRatings = getRatingsMap();
+        Map<String, Long> users = getUsersMap();
 
         List<WidgetRatingsMapReduceResult> ratings = Arrays.asList(
-                new WidgetRatingsMapReduceResult(24L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
-                new WidgetRatingsMapReduceResult(25L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
-                new WidgetRatingsMapReduceResult(26L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L))
+                new WidgetRatingsMapReduceResult("24L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
+                new WidgetRatingsMapReduceResult("25L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
+                new WidgetRatingsMapReduceResult("26L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L))
         );
 
         List<WidgetUsersMapReduceResult> usersMapReduceResults = Arrays.asList(
-                new WidgetUsersMapReduceResult(24L, users),
-                new WidgetUsersMapReduceResult(25L, users),
-                new WidgetUsersMapReduceResult(26L, users)
+                new WidgetUsersMapReduceResult("24L", users),
+                new WidgetUsersMapReduceResult("25L", users),
+                new WidgetUsersMapReduceResult("26L", users)
         );
 
         expect(mongoOperations.findAll(WidgetRatingsMapReduceResult.class, CollectionNames.WIDGET_RATINGS)).andReturn(ratings);
         expect(mongoOperations.findAll(WidgetUsersMapReduceResult.class, CollectionNames.WIDGET_USERS)).andReturn(usersMapReduceResults);
         replay(mongoOperations);
 
-        Map<Long, WidgetStatistics> stats = aggregator.getAllWidgetStatistics(1L);
+        Map<String, WidgetStatistics> stats = aggregator.getAllWidgetStatistics("1L");
         assertThat(stats.size(), is(equalTo(3)));
-        assertThat(stats.get(24L).getTotalLike(), is(equalTo(2)));
-        assertThat(stats.get(24L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getUserRating(), is(equalTo(10)));
-        assertThat(stats.get(24L).getTotalUserCount(), is(equalTo(users.size())));
-        assertThat(stats.get(26L).getTotalLike(), is(equalTo(2)));
-        assertThat(stats.get(26L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getUserRating(), is(equalTo(10)));
-        assertThat(stats.get(26L).getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("24L").getTotalLike(), is(equalTo(2)));
+        assertThat(stats.get("24L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getUserRating(), is(equalTo(10)));
+        assertThat(stats.get("24L").getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("26L").getTotalLike(), is(equalTo(2)));
+        assertThat(stats.get("26L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getUserRating(), is(equalTo(10)));
+        assertThat(stats.get("26L").getTotalUserCount(), is(equalTo(users.size())));
     }
 
     @Test
     public void getAllStatistics_noUserRating() {
 
-        Map<Long, Long> userRatings = getRatingsMap();
-        Map<Long, Long> users = getUsersMap();
+        Map<String, Long> userRatings = getRatingsMap();
+        Map<String, Long> users = getUsersMap();
 
         List<WidgetRatingsMapReduceResult> ratings = Arrays.asList(
-                new WidgetRatingsMapReduceResult(24L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
-                new WidgetRatingsMapReduceResult(25L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
-                new WidgetRatingsMapReduceResult(26L, new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L))
+                new WidgetRatingsMapReduceResult("24L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
+                new WidgetRatingsMapReduceResult("25L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L)),
+                new WidgetRatingsMapReduceResult("26L", new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userRatings, 2L, 0L))
         );
 
         List<WidgetUsersMapReduceResult> usersMapReduceResults = Arrays.asList(
-                new WidgetUsersMapReduceResult(24L, users),
-                new WidgetUsersMapReduceResult(25L, users),
-                new WidgetUsersMapReduceResult(26L, users)
+                new WidgetUsersMapReduceResult("24L", users),
+                new WidgetUsersMapReduceResult("25L", users),
+                new WidgetUsersMapReduceResult("26L", users)
         );
 
         expect(mongoOperations.findAll(WidgetRatingsMapReduceResult.class, CollectionNames.WIDGET_RATINGS)).andReturn(ratings);
         expect(mongoOperations.findAll(WidgetUsersMapReduceResult.class, CollectionNames.WIDGET_USERS)).andReturn(usersMapReduceResults);
         replay(mongoOperations);
 
-        Map<Long, WidgetStatistics> stats = aggregator.getAllWidgetStatistics(5L);
+        Map<String, WidgetStatistics> stats = aggregator.getAllWidgetStatistics("5L");
         assertThat(stats.size(), is(equalTo(3)));
-        assertThat(stats.get(24L).getTotalLike(), is(equalTo(2)));
-        assertThat(stats.get(24L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(24L).getTotalUserCount(), is(equalTo(users.size())));
-        assertThat(stats.get(26L).getTotalLike(), is(equalTo(2)));
-        assertThat(stats.get(26L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(26L).getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("24L").getTotalLike(), is(equalTo(2)));
+        assertThat(stats.get("24L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("24L").getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("26L").getTotalLike(), is(equalTo(2)));
+        assertThat(stats.get("26L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("26L").getTotalUserCount(), is(equalTo(users.size())));
     }
 
     @Test
     public void getAllStatistics_nullStats() {
 
-        Map<Long, Long> userRatings = getRatingsMap();
-        Map<Long, Long> users = getUsersMap();
+        Map<String, Long> userRatings = getRatingsMap();
+        Map<String, Long> users = getUsersMap();
 
         List<WidgetRatingsMapReduceResult> ratings = Arrays.asList(
-                new WidgetRatingsMapReduceResult(24L, null),
-                new WidgetRatingsMapReduceResult(25L, null),
-                new WidgetRatingsMapReduceResult(26L, null)
+                new WidgetRatingsMapReduceResult("24L", null),
+                new WidgetRatingsMapReduceResult("25L", null),
+                new WidgetRatingsMapReduceResult("26L", null)
         );
 
         List<WidgetUsersMapReduceResult> usersMapReduceResults = Arrays.asList(
-                new WidgetUsersMapReduceResult(24L, users),
-                new WidgetUsersMapReduceResult(25L, users),
-                new WidgetUsersMapReduceResult(26L, users)
+                new WidgetUsersMapReduceResult("24L", users),
+                new WidgetUsersMapReduceResult("25L", users),
+                new WidgetUsersMapReduceResult("26L", users)
         );
 
         expect(mongoOperations.findAll(WidgetRatingsMapReduceResult.class, CollectionNames.WIDGET_RATINGS)).andReturn(ratings);
         expect(mongoOperations.findAll(WidgetUsersMapReduceResult.class, CollectionNames.WIDGET_USERS)).andReturn(usersMapReduceResults);
         replay(mongoOperations);
 
-        Map<Long, WidgetStatistics> stats = aggregator.getAllWidgetStatistics(5L);
+        Map<String, WidgetStatistics> stats = aggregator.getAllWidgetStatistics("5L");
         assertThat(stats.size(), is(equalTo(3)));
-        assertThat(stats.get(24L).getTotalLike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(24L).getTotalUserCount(), is(equalTo(users.size())));
-        assertThat(stats.get(26L).getTotalLike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(26L).getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("24L").getTotalLike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("24L").getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("26L").getTotalLike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("26L").getTotalUserCount(), is(equalTo(users.size())));
     }
 
     @Test
     public void getAllStatistics_noRatings() {
 
-        Map<Long, Long> users = getUsersMap();
+        Map<String, Long> users = getUsersMap();
 
         List<WidgetRatingsMapReduceResult> ratings = Lists.newArrayList();
 
         List<WidgetUsersMapReduceResult> usersMapReduceResults = Arrays.asList(
-                new WidgetUsersMapReduceResult(24L, users),
-                new WidgetUsersMapReduceResult(25L, users),
-                new WidgetUsersMapReduceResult(26L, users)
+                new WidgetUsersMapReduceResult("24L", users),
+                new WidgetUsersMapReduceResult("25L", users),
+                new WidgetUsersMapReduceResult("26L", users)
         );
 
         expect(mongoOperations.findAll(WidgetRatingsMapReduceResult.class, CollectionNames.WIDGET_RATINGS)).andReturn(ratings);
         expect(mongoOperations.findAll(WidgetUsersMapReduceResult.class, CollectionNames.WIDGET_USERS)).andReturn(usersMapReduceResults);
         replay(mongoOperations);
 
-        Map<Long, WidgetStatistics> stats = aggregator.getAllWidgetStatistics(5L);
+        Map<String, WidgetStatistics> stats = aggregator.getAllWidgetStatistics("5L");
         assertThat(stats.size(), is(equalTo(3)));
-        assertThat(stats.get(24L).getTotalLike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(24L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(24L).getTotalUserCount(), is(equalTo(users.size())));
-        assertThat(stats.get(26L).getTotalLike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getTotalDislike(), is(equalTo(0)));
-        assertThat(stats.get(26L).getUserRating(), is(equalTo(-1)));
-        assertThat(stats.get(26L).getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("24L").getTotalLike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("24L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("24L").getTotalUserCount(), is(equalTo(users.size())));
+        assertThat(stats.get("26L").getTotalLike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getTotalDislike(), is(equalTo(0)));
+        assertThat(stats.get("26L").getUserRating(), is(equalTo(-1)));
+        assertThat(stats.get("26L").getTotalUserCount(), is(equalTo(users.size())));
     }
 
     @Test
     public void getWidgetStatistics_valid() {
-        long widget_id = 1L;
-        Map<Long, Long> userMap = Maps.newHashMap();
-        userMap.put(20L, 10L);
-        userMap.put(21L, 10L);
+        String widget_id = "1L";
+        Map<String, Long> userMap = Maps.newHashMap();
+        userMap.put("20L", 10L);
+        userMap.put("21L", 10L);
         WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult stats = new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userMap, 20L, 0L);
         WidgetUsersMapReduceResult usersResult = new WidgetUsersMapReduceResult(widget_id, userMap);
         WidgetRatingsMapReduceResult ratingsResult = new WidgetRatingsMapReduceResult(widget_id, stats);
@@ -199,7 +199,7 @@ public class MonogoDbMapReduceStatistics
         expect(mongoOperations.findById(widget_id, WidgetUsersMapReduceResult.class, WIDGET_USERS)).andReturn(usersResult);
         replay(mongoOperations);
 
-        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, 21L);
+        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, "21L");
 
         assertThat(result.getTotalDislike(), is(equalTo(0)));
         assertThat(result.getTotalLike(), is(equalTo(20)));
@@ -209,10 +209,10 @@ public class MonogoDbMapReduceStatistics
 
     @Test
     public void getWidgetStatistics_noUser() {
-        long widget_id = 1L;
-        Map<Long, Long> userMap = Maps.newHashMap();
-        userMap.put(20L, 10L);
-        userMap.put(21L, 10L);
+        String widget_id = "1L";
+        Map<String, Long> userMap = Maps.newHashMap();
+        userMap.put("20L", 10L);
+        userMap.put("21L", 10L);
         WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult stats = new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userMap, 20L, 0L);
         WidgetUsersMapReduceResult usersResult = new WidgetUsersMapReduceResult(widget_id, userMap);
         WidgetRatingsMapReduceResult ratingsResult = new WidgetRatingsMapReduceResult(widget_id, stats);
@@ -221,7 +221,7 @@ public class MonogoDbMapReduceStatistics
         expect(mongoOperations.findById(widget_id, WidgetUsersMapReduceResult.class, WIDGET_USERS)).andReturn(usersResult);
         replay(mongoOperations);
 
-        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, 23L);
+        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, "23L");
 
         assertThat(result.getTotalDislike(), is(equalTo(0)));
         assertThat(result.getTotalLike(), is(equalTo(20)));
@@ -231,17 +231,17 @@ public class MonogoDbMapReduceStatistics
 
     @Test
     public void getWidgetStatistics_nullRatings() {
-        long widget_id = 1L;
-        Map<Long, Long> userMap = Maps.newHashMap();
-        userMap.put(20L, 10L);
-        userMap.put(21L, 10L);
+        String widget_id = "1L";
+        Map<String, Long> userMap = Maps.newHashMap();
+        userMap.put("20L", 10L);
+        userMap.put("21L", 10L);
         WidgetUsersMapReduceResult usersResult = new WidgetUsersMapReduceResult(widget_id, userMap);
 
         expect(mongoOperations.findById(widget_id, WidgetRatingsMapReduceResult.class, WIDGET_RATINGS)).andReturn(null);
         expect(mongoOperations.findById(widget_id, WidgetUsersMapReduceResult.class, WIDGET_USERS)).andReturn(usersResult);
         replay(mongoOperations);
 
-        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, 21L);
+        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, "21L");
 
         assertThat(result.getTotalDislike(), is(equalTo(0)));
         assertThat(result.getTotalLike(), is(equalTo(0)));
@@ -251,10 +251,10 @@ public class MonogoDbMapReduceStatistics
 
     @Test
     public void getWidgetStatistics_nullUsers() {
-        long widget_id = 1L;
-        Map<Long, Long> userMap = Maps.newHashMap();
-        userMap.put(20L, 10L);
-        userMap.put(21L, 10L);
+        String widget_id = "1L";
+        Map<String, Long> userMap = Maps.newHashMap();
+        userMap.put("20L", 10L);
+        userMap.put("21L", 10L);
         WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult stats = new WidgetRatingsMapReduceResult.WidgetStatisticsMapReduceResult(userMap, 20L, 0L);
         WidgetRatingsMapReduceResult ratingsResult = new WidgetRatingsMapReduceResult(widget_id, stats);
 
@@ -262,7 +262,7 @@ public class MonogoDbMapReduceStatistics
         expect(mongoOperations.findById(widget_id, WidgetUsersMapReduceResult.class, WIDGET_USERS)).andReturn(null);
         replay(mongoOperations);
 
-        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, 21L);
+        WidgetStatistics result = aggregator.getWidgetStatistics(widget_id, "21L");
 
         assertThat(result.getTotalDislike(), is(equalTo(0)));
         assertThat(result.getTotalLike(), is(equalTo(20)));
@@ -321,21 +321,21 @@ public class MonogoDbMapReduceStatistics
         expect(mongoOperations.mapReduce(eq(PAGE_COLLECTION), eq(USERS_MAP), eq(USERS_REDUCE),  anyObject(MapReduceOptions.class), eq(WidgetUsersMapReduceResult.class))).andReturn(null);
     }
 
-    private Map<Long, Long> getRatingsMap() {
-        Map<Long, Long> userRatings = Maps.newHashMap();
-        userRatings.put(1L, 10L);
-        userRatings.put(2L, 10L);
+    private Map<String, Long> getRatingsMap() {
+        Map<String, Long> userRatings = Maps.newHashMap();
+        userRatings.put("1L", 10L);
+        userRatings.put("2L", 10L);
         return userRatings;
     }
 
-    private Map<Long, Long> getUsersMap() {
-        Map<Long, Long> users = Maps.newHashMap();
-        users.put(1L, 1L);
-        users.put(2L, 1L);
-        users.put(3L, 1L);
-        users.put(4L, 1L);
-        users.put(5L, 1L);
-        users.put(6L, 1L);
+    private Map<String, Long> getUsersMap() {
+        Map<String, Long> users = Maps.newHashMap();
+        users.put("1L", 1L);
+        users.put("2L", 1L);
+        users.put("3L", 1L);
+        users.put("4L", 1L);
+        users.put("5L", 1L);
+        users.put("6L", 1L);
         return users;
     }
 }

Modified: rave/branches/mongo/rave-components/rave-web/pom.xml
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/pom.xml?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/pom.xml (original)
+++ rave/branches/mongo/rave-components/rave-web/pom.xml Fri Dec 28 17:43:23 2012
@@ -26,7 +26,7 @@
     <parent>
         <artifactId>rave-components</artifactId>
         <groupId>org.apache.rave</groupId>
-        <version>0.17-MONGO-SNAPSHOT</version>
+        <version>0.19-SNAPSHOT</version>
     </parent>
 
     <artifactId>rave-web</artifactId>

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/PageApi.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/PageApi.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/PageApi.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/PageApi.java Fri Dec 28 17:43:23 2012
@@ -21,6 +21,8 @@ package org.apache.rave.portal.web.api.r
 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.model.util.omdl.OmdlOutputAdapter;
+import org.apache.rave.portal.service.OmdlService;
 import org.apache.rave.portal.service.PageService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -29,6 +31,7 @@ import org.springframework.http.HttpStat
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
@@ -41,24 +44,34 @@ import javax.servlet.http.HttpServletRes
 public class PageApi extends AbstractRestApi {
     private Logger logger = LoggerFactory.getLogger(getClass());
     private PageService pageService;
+    private OmdlService omdlService;
     
     @Autowired
-    public PageApi(PageService pageService) {
+    public PageApi(PageService pageService, OmdlService omdlService) {
         this.pageService = pageService;
+        this.omdlService = omdlService;
     }       
           
-    @RequestMapping(value = "{pageId}", method = RequestMethod.DELETE)    
-    public void deletePage(@PathVariable long pageId, HttpServletResponse response) {
-        logger.debug("DELETE received for /api/rest/page/" + pageId);                              
-        pageService.deletePage(pageId);                               
+    @RequestMapping(value = "{pageId}", method = RequestMethod.DELETE)
+    public void deletePage(@PathVariable String pageId, HttpServletResponse response) {
+        logger.debug("DELETE received for /api/rest/page/" + pageId);
+        pageService.deletePage(pageId);
         
         // send a 204 back for success since there is no content being returned
         response.setStatus(HttpStatus.NO_CONTENT.value());
     }
 
     @ResponseBody
+    @RequestMapping(value = "{pageId}/omdl", method = RequestMethod.GET)
+    public OmdlOutputAdapter getOmdl(@PathVariable String pageId, HttpServletRequest request, HttpServletResponse response) {
+        logger.debug("GET received for /api/rest/page/" + pageId + "/omdl");
+        response.setHeader("Content-Disposition", "attachment; filename=\"rave-omdl-page-" + pageId + ".xml\"");
+        return omdlService.exportOmdl(pageId, request.getRequestURL().toString());
+    }
+
+    @ResponseBody
     @RequestMapping(value = "{pageId}", method = RequestMethod.GET)
-    public Page getPage(@PathVariable long pageId, @RequestParam(required=false) boolean export) {
+    public Page getPage(@PathVariable String pageId, @RequestParam(required=false) boolean export) {
         logger.debug("GET received for /api/rest/page/" + pageId);        
         Page page = pageService.getPage(pageId);
         if(export) {
@@ -68,7 +81,7 @@ public class PageApi extends AbstractRes
     }
 
     private static void modifyForExport(Page page) {
-        page.setOwner(null);
+        page.setOwnerId(null);
         for(Region r : page.getRegions()){
             modifyForExport(r);
         }

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/RegionWidgetApi.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/RegionWidgetApi.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/RegionWidgetApi.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/RegionWidgetApi.java Fri Dec 28 17:43:23 2012
@@ -50,7 +50,7 @@ public class RegionWidgetApi extends Abs
 
     @ResponseBody
     @RequestMapping(value = "/{regionWidgetId}/preferences", method = RequestMethod.PUT)
-    public RegionWidgetPreferenceListWrapper replaceAllRegionWidgetPreferences(@PathVariable long regionWidgetId,
+    public RegionWidgetPreferenceListWrapper replaceAllRegionWidgetPreferences(@PathVariable String regionWidgetId,
                                                                                @RequestBody RegionWidgetPreferenceListWrapper
                                                                                        regionWidgetPreferenceListWrapper) {
         if (logger.isDebugEnabled()) {
@@ -65,7 +65,7 @@ public class RegionWidgetApi extends Abs
 
     @ResponseBody
     @RequestMapping(value = "/{regionWidgetId}/preferences/{regionWidgetPreferenceName}", method = RequestMethod.PUT)
-    public RegionWidgetPreference createOrReplaceRegionWidgetPreference(@PathVariable long regionWidgetId,
+    public RegionWidgetPreference createOrReplaceRegionWidgetPreference(@PathVariable String regionWidgetId,
                                                                         @PathVariable String regionWidgetPreferenceName,
                                                                         @RequestBody RegionWidgetPreference regionWidgetPreference) {
         if (logger.isDebugEnabled()) {
@@ -88,7 +88,7 @@ public class RegionWidgetApi extends Abs
      */
     @ResponseBody
     @RequestMapping(value = "/{regionWidgetId}/collapsed", method = RequestMethod.PUT)
-    public RegionWidget updateRegionWidgetCollapsedStatus(@PathVariable long regionWidgetId,
+    public RegionWidget updateRegionWidgetCollapsedStatus(@PathVariable String regionWidgetId,
                                                           @RequestBody Boolean collapsed) {
         if (logger.isDebugEnabled()) {
             logger.debug("POST received to update regionWidget " +

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rest/WidgetApi.java Fri Dec 28 17:43:23 2012
@@ -33,6 +33,7 @@ import org.springframework.stereotype.Co
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -43,21 +44,17 @@ import java.util.List;
 @RequestMapping("/api/rest/widgets")
 public class WidgetApi extends AbstractRestApi {
     private static Logger logger = LoggerFactory.getLogger(WidgetApi.class);
-    private final WidgetCommentService widgetCommentService;
-    private final WidgetRatingService widgetRatingService;
     private final UserService userService;
     private final TagService tagService;
-    private final WidgetTagService widgetTagService;
+    private final WidgetService widgetService;
 
 
     @Autowired
-    public WidgetApi(WidgetRatingService widgetRatingService, WidgetCommentService widgetCommentService, UserService userService,
-                     TagService tagService, WidgetTagService widgetTagService) {
-        this.widgetCommentService = widgetCommentService;
-        this.widgetRatingService = widgetRatingService;
+    public WidgetApi(UserService userService,
+                     TagService tagService, WidgetService widgetService) {
         this.userService = userService;
         this.tagService = tagService;
-        this.widgetTagService = widgetTagService;
+        this.widgetService = widgetService;
     }
 
     @RequestMapping(method = RequestMethod.GET)
@@ -67,71 +64,72 @@ public class WidgetApi extends AbstractR
     }
 
     @RequestMapping(method = RequestMethod.POST, value = "/{widgetId}/comments")
-    public void createWidgetComment(@PathVariable long widgetId,
+    public void createWidgetComment(@PathVariable String widgetId,
                                     @RequestParam String text,
                                     HttpServletResponse response) {
         WidgetComment widgetComment = new WidgetCommentImpl();
-        widgetComment.setWidgetId(widgetId);
-        widgetComment.setUser(userService.getAuthenticatedUser());
+        widgetComment.setUserId(userService.getAuthenticatedUser().getId());
         widgetComment.setText(text);
         widgetComment.setCreatedDate(new Date());
         widgetComment.setLastModifiedDate(new Date());
 
-        widgetCommentService.saveWidgetComment(widgetComment);
+        widgetService.createWidgetComment(widgetId, widgetComment);
 
         response.setStatus(HttpStatus.NO_CONTENT.value());
     }
 
+    @ResponseBody
     @RequestMapping(method = RequestMethod.GET, value = "/{widgetId}/comments/{widgetCommentId}")
-    public WidgetComment getWidgetComment(@PathVariable long widgetId,
-                                          @PathVariable long widgetCommentId) {
-        return widgetCommentService.getWidgetComment(widgetCommentId);
+    public WidgetComment getWidgetComment(@PathVariable String widgetId,
+                                          @PathVariable String widgetCommentId) {
+        return widgetService.getWidgetComment(widgetId, widgetCommentId);
     }
 
     @RequestMapping(method = RequestMethod.POST, value = "/{widgetId}/comments/{widgetCommentId}")
-    public void updateWidgetComment(@PathVariable long widgetId,
-                                    @PathVariable long widgetCommentId,
+    public void updateWidgetComment(@PathVariable String widgetId,
+                                    @PathVariable String widgetCommentId,
                                     @RequestParam String text,
                                     HttpServletResponse response) {
 
-        WidgetComment widgetComment = widgetCommentService.getWidgetComment(widgetCommentId);
+        WidgetComment widgetComment = widgetService.getWidgetComment(widgetId, widgetCommentId);
         if (widgetComment == null) {
             widgetComment = new WidgetCommentImpl();
-            widgetComment.setWidgetId(widgetId);
-            widgetComment.setUser(userService.getAuthenticatedUser());
+            widgetComment.setUserId(userService.getAuthenticatedUser().getId());
             widgetComment.setCreatedDate(new Date());
             widgetComment.setLastModifiedDate(new Date());
+            widgetComment.setText(text);
+            widgetService.createWidgetComment(widgetId, widgetComment);
+        } else {
+            widgetComment.setText(text);
+            widgetService.updateWidgetComment(widgetId, widgetComment);
         }
-        widgetComment.setText(text);
-
-        widgetCommentService.saveWidgetComment(widgetComment);
 
         response.setStatus(HttpStatus.NO_CONTENT.value());
     }
 
     @RequestMapping(method = RequestMethod.DELETE, value = "/{widgetId}/comments/{widgetCommentId}")
-    public void deleteWidgetComment(@PathVariable long widgetId,
-                                    @PathVariable long widgetCommentId,
+    public void deleteWidgetComment(@PathVariable String widgetId,
+                                    @PathVariable String widgetCommentId,
                                     HttpServletResponse response) {
-        widgetCommentService.removeWidgetComment(widgetCommentId);
+        widgetService.removeWidgetComment(widgetId, widgetCommentId);
 
         response.setStatus(HttpStatus.NO_CONTENT.value());
     }
 
 
     @RequestMapping(value = "/{widgetId}/rating", method = RequestMethod.DELETE)
-    public void deleteWidgetRating(@PathVariable long widgetId,
+    public void deleteWidgetRating(@PathVariable String widgetId,
                                    HttpServletResponse response) {
         logger.debug("DELETE WidgetRating received for /api/rest/widgets/{}", widgetId);
 
-        widgetRatingService.removeWidgetRating(widgetId, userService.getAuthenticatedUser().getId());
+        widgetService.removeWidgetRating(widgetId, userService.getAuthenticatedUser().getId());
 
         // send a 204 back for success since there is no content being returned
         response.setStatus(HttpStatus.NO_CONTENT.value());
     }
 
     @RequestMapping(value = "/{widgetId}/rating", method = RequestMethod.POST)
-    public void setWidgetRating(@PathVariable long widgetId,
+    public void setWidgetRating(@PathVariable String widgetId,
                                 @RequestParam(value = "score") Integer score,
                                 HttpServletResponse response) {
         logger.debug("POST WidgetRating received for /api/rest/widgets/{} score: {}", widgetId, score);
@@ -139,8 +137,7 @@ public class WidgetApi extends AbstractR
         WidgetRating widgetRating = new WidgetRatingImpl();
         widgetRating.setScore(score);
         widgetRating.setUserId(userService.getAuthenticatedUser().getId());
-        widgetRating.setWidgetId(widgetId);
-        widgetRatingService.saveWidgetRating(widgetRating);
+        widgetService.saveWidgetRating(widgetId, widgetRating);
 
         // send a 204 back for success since there is no content being returned
         response.setStatus(HttpStatus.NO_CONTENT.value());
@@ -148,24 +145,20 @@ public class WidgetApi extends AbstractR
 
     @ResponseBody
     @RequestMapping(method = RequestMethod.GET, value = "/{widgetId}/users")
-    public List<Person> getAllUsers(@PathVariable long widgetId) {
+    public List<Person> getAllUsers(@PathVariable String widgetId) {
         return userService.getAllByAddedWidget(widgetId);
     }
 
     @RequestMapping(method = RequestMethod.POST, value = "/{widgetId}/tags")
-    public void createWidgetTag(@PathVariable long widgetId,
+    public void createWidgetTag(@PathVariable String widgetId,
                                 @RequestParam String tagText,
                                 HttpServletResponse response) {
         logger.debug("add tags " + tagText + " to widget " + widgetId);
         if (tagText != null && !tagText.trim().isEmpty()) {
-            WidgetTag existed = widgetTagService.getWidgetTagByWidgetIdAndKeyword(widgetId, tagText);
+            WidgetTag existed = widgetService.getWidgetTagByWidgetIdAndKeyword(widgetId, tagText);
             if (existed == null) {
-                WidgetTag widgetTag = new WidgetTagImpl();
-                widgetTag.setWidgetId(widgetId);
-                widgetTag.setUser(userService.getAuthenticatedUser());
-                widgetTag.setCreatedDate(new Date());
-                widgetTag.setTag(getTag(tagText));
-                widgetTagService.createWidgetTag(widgetTag);
+                WidgetTag widgetTag = new WidgetTagImpl(userService.getAuthenticatedUser(), new Date(), getTag(tagText));
+                widgetService.createWidgetTag(widgetId, widgetTag);
                 logger.debug("widget tag is saved.");
 
             }
@@ -177,8 +170,21 @@ public class WidgetApi extends AbstractR
 
     @ResponseBody
     @RequestMapping(method = RequestMethod.GET, value = "/{widgetId}/tags")
-    public List<Tag> getTags(@PathVariable long widgetId) {
-        return tagService.getAvailableTagsByWidgetId(widgetId);
+    public List<Tag> getTags(@PathVariable String widgetId, HttpServletResponse response) {
+        ArrayList<Tag> tags = new ArrayList<Tag>();
+
+        Widget widget = widgetService.getWidget(widgetId);
+
+        if (widget == null) {
+            response.setStatus(404);
+            return null;
+        }
+
+        for (WidgetTag wt : widget.getTags()) {
+            tags.add(tagService.getTagById(wt.getTagId()));
+        }
+
+        return tags;
     }
 
     @ResponseBody
@@ -190,8 +196,8 @@ public class WidgetApi extends AbstractR
     private Tag getTag(String keyword) {
         Tag tag = tagService.getTagByKeyword(keyword);
         if (tag == null) {
-            tag = new TagImpl();
-            tag.setKeyword(keyword);
+            tag = new TagImpl(keyword);
+            tag = tagService.save(tag);
         }
         return tag;
     }

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/MarketplaceAPI.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/MarketplaceAPI.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/MarketplaceAPI.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/MarketplaceAPI.java Fri Dec 28 17:43:23 2012
@@ -63,7 +63,7 @@ public class MarketplaceAPI {
                  Widget widget = null;
                  // TODO - improve info sent back to marketplace, rather then just writing to the console
                  try {
-                    widget =  marketplaceService.getWidgetMetadata(url, providerType);
+                    widget =  marketplaceService.resolveWidgetMetadata(url, providerType);
                     if(widget == null){
                         return null;
                     }

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java Fri Dec 28 17:43:23 2012
@@ -18,15 +18,27 @@
  */
 package org.apache.rave.portal.web.api.rpc;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 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.service.OmdlService;
 import org.apache.rave.portal.service.PageService;
 import org.apache.rave.portal.web.api.rpc.model.RpcOperation;
 import org.apache.rave.portal.web.api.rpc.model.RpcResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 /**
  * Defines RPC operations for a Page or its components
@@ -35,11 +47,14 @@ import org.springframework.web.bind.anno
 @RequestMapping(value = "/api/rpc/page/*")
 public class PageApi {
 
+    private Logger logger = LoggerFactory.getLogger(getClass());
     private final PageService pageService;
+    private OmdlService omdlService;
 
     @Autowired
-    public PageApi(PageService pageService) {
+    public PageApi(PageService pageService, OmdlService omdlService) {
         this.pageService = pageService;
+        this.omdlService = omdlService;
     }
 
     /**
@@ -58,7 +73,7 @@ public class PageApi {
     @ResponseBody
     @RequestMapping(method = RequestMethod.POST, value = "{pageId}/widget/add")
     public RpcResult<RegionWidget> addWidgetToPage(
-            @PathVariable final long pageId, @RequestParam final long widgetId) {
+            @PathVariable final String pageId, @RequestParam final String widgetId) {
 
         return new RpcOperation<RegionWidget>() {
             @Override
@@ -69,6 +84,36 @@ public class PageApi {
     }
 
     /**
+     * Adds a widget to the given page region
+     *
+     * @param pageId
+     *            the ID of the {@link org.apache.rave.portal.model.Page} to add
+     *            the widget to
+     * @param widgetId
+     *            the ID of the {@link org.apache.rave.portal.model.Widget} to
+     *            add do the page
+     * @param regionId
+     *            the ID of the {@link org.apache.rave.portal.model.Region} to
+     *            add the the widget to
+     * @return a {@link RpcOperation} containing the new widget instance (
+     *         {@link org.apache.rave.portal.model.RegionWidget }) or any errors
+     *         encountered while performing the RPC operation
+     */
+    @ResponseBody
+    @RequestMapping(method = RequestMethod.POST, value = "{pageId}/widget/add/region/{regionId}")
+    public RpcResult<RegionWidget> addWidgetToPageRegion(
+            @PathVariable final String pageId, @RequestParam final String widgetId, @PathVariable final String regionId) {
+
+        return new RpcOperation<RegionWidget>() {
+            @Override
+            public RegionWidget execute() {
+                return pageService.addWidgetToPageRegion(pageId, widgetId, regionId);
+            }
+        }.getResult();
+    }
+    
+
+    /**
      * Moves a widget to a new location
      * <p/>
      * Moves can take place within a region, region to region, or between pages
@@ -92,10 +137,10 @@ public class PageApi {
     @ResponseBody
     @RequestMapping(method = RequestMethod.POST, value = "regionWidget/{regionWidgetId}/move")
     public RpcResult<RegionWidget> moveWidgetOnPage(
-            @PathVariable final long regionWidgetId,
+            @PathVariable final String regionWidgetId,
             @RequestParam final int newPosition,
-            @RequestParam final long toRegion,
-            @RequestParam final long fromRegion) {
+            @RequestParam final String toRegion,
+            @RequestParam final String fromRegion) {
 
         return new RpcOperation<RegionWidget>() {
             @Override
@@ -117,7 +162,7 @@ public class PageApi {
      */
     @ResponseBody
     @RequestMapping(method = RequestMethod.POST, value = "regionWidget/{regionWidgetId}/delete")
-    public RpcResult<Region> removeWidgetFromPage(@PathVariable final long regionWidgetId) {
+    public RpcResult<Region> removeWidgetFromPage(@PathVariable final String regionWidgetId) {
         return new RpcOperation<Region>() {
             @Override
             public Region execute() {
@@ -149,7 +194,7 @@ public class PageApi {
 
     @ResponseBody
     @RequestMapping(method = RequestMethod.GET, value="get")
-    public RpcResult<Page> getPage(@RequestParam final long pageId) {
+    public RpcResult<Page> getPage(@RequestParam final String pageId) {
         return new RpcOperation<Page>() {
             @Override
             public Page execute() {
@@ -160,7 +205,7 @@ public class PageApi {
 
     @ResponseBody
     @RequestMapping(value = "{pageId}/update", method = RequestMethod.POST)
-    public RpcResult<Page> updatePageProperties(@PathVariable final long pageId,
+    public RpcResult<Page> updatePageProperties(@PathVariable final String pageId,
                                         @RequestParam final String name,
                                         @RequestParam final String layout) {
         return new RpcOperation<Page>() {
@@ -181,8 +226,8 @@ public class PageApi {
      */
     @ResponseBody
     @RequestMapping(method = RequestMethod.POST, value = "{pageId}/move")
-    public RpcResult<Page> movePage(@PathVariable final long pageId,
-                                    @RequestParam(required=false) final Long moveAfterPageId) {
+    public RpcResult<Page> movePage(@PathVariable final String pageId,
+                                    @RequestParam(required=false) final String moveAfterPageId) {
         return new RpcOperation<Page>() {
             @Override
             public Page execute() {
@@ -207,8 +252,8 @@ public class PageApi {
      */
     @ResponseBody
     @RequestMapping(method = RequestMethod.POST, value = "{toPageId}/moveWidget")
-    public RpcResult<RegionWidget> moveWidgetToPage(@PathVariable final long toPageId,
-                                                    @RequestParam(required=false) final long regionWidgetId) {
+    public RpcResult<RegionWidget> moveWidgetToPage(@PathVariable final String toPageId,
+                                                    @RequestParam(required=false) final String regionWidgetId) {
         return new RpcOperation<RegionWidget>() {
             @Override
             public RegionWidget execute() {
@@ -218,8 +263,19 @@ public class PageApi {
     }
 
     @ResponseBody
+    @RequestMapping(value = "{pageId}/clone", method = RequestMethod.POST)
+    public RpcResult<Boolean> clonePageForUser(@PathVariable final String pageId, @RequestParam final String userId, @RequestParam final String pageName) {
+        return new RpcOperation<Boolean>() {
+             @Override
+             public Boolean execute() {
+               return pageService.clonePageForUser(pageId, userId, pageName);
+             }
+        }.getResult();
+    }
+
+    @ResponseBody
     @RequestMapping(value = "{pageId}/addmember", method = RequestMethod.POST)
-    public RpcResult<Boolean> addMemberToPage(@PathVariable final long pageId, @RequestParam final long userId) {
+    public RpcResult<Boolean> addMemberToPage(@PathVariable final String pageId, @RequestParam final String userId) {
         return new RpcOperation<Boolean>() {
              @Override
              public Boolean execute() {
@@ -230,7 +286,7 @@ public class PageApi {
 
     @ResponseBody
     @RequestMapping(value = "{pageId}/removemember", method = RequestMethod.POST)
-    public RpcResult<Boolean> removeMemberFromPage(@PathVariable final long pageId, @RequestParam final long userId) {
+    public RpcResult<Boolean> removeMemberFromPage(@PathVariable final String pageId, @RequestParam final String userId) {
         return new RpcOperation<Boolean>() {
              @Override
              public Boolean execute() {
@@ -241,7 +297,7 @@ public class PageApi {
 
     @ResponseBody
     @RequestMapping(value = "{pageId}/sharestatus", method = RequestMethod.POST)
-    public RpcResult<Boolean> updateSharedPageStatus(@PathVariable final long pageId, @RequestParam final String shareStatus) {
+    public RpcResult<Boolean> updateSharedPageStatus(@PathVariable final String pageId, @RequestParam final String shareStatus) {
         return new RpcOperation<Boolean>() {
              @Override
              public Boolean execute() {
@@ -252,7 +308,7 @@ public class PageApi {
 
     @ResponseBody
     @RequestMapping(value = "{pageId}/editstatus", method = RequestMethod.POST)
-    public RpcResult<Boolean> updatePageEditingStatus(@PathVariable final long pageId, @RequestParam final long userId, @RequestParam final boolean isEditor) {
+    public RpcResult<Boolean> updatePageEditingStatus(@PathVariable final String pageId, @RequestParam final String userId, @RequestParam final boolean isEditor) {
         return new RpcOperation<Boolean>() {
              @Override
              public Boolean execute() {
@@ -260,4 +316,18 @@ public class PageApi {
              }
         }.getResult();
     }
+
+    @ResponseBody
+    @RequestMapping(method = RequestMethod.POST, value = "import/omdl")
+    public RpcResult<Page> importPage(HttpServletRequest request, final HttpServletResponse response,
+            @RequestParam final String pageName) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        final MultipartFile multipartFile = multipartRequest.getFile("omdlFile");
+        return new RpcOperation<Page>() {
+             @Override
+             public Page execute() {
+               return omdlService.importOmdl(multipartFile, pageName);
+             }
+        }.getResult();
+    }
 }
\ No newline at end of file

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/WidgetApi.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/WidgetApi.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/WidgetApi.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/WidgetApi.java Fri Dec 28 17:43:23 2012
@@ -95,7 +95,7 @@ public class WidgetApi {
                SearchResult<Widget> results = widgetService.getAllWidgets();
                // strip out the owner and tag info 
                for(Widget widget : results.getResultSet()){
-                   widget.setOwner(null);
+                   widget.setOwnerId(null);
                    widget.setTags(null);
                }
                return results;

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/PageController.java Fri Dec 28 17:43:23 2012
@@ -71,7 +71,7 @@ public class PageController {
         PageUser currentPageUser = null;
         User thisUser = userService.getAuthenticatedUser();
         for(PageUser pageUser : page.getMembers()){
-            if(pageUser.getUser().equals(thisUser)){
+            if(pageUser.getUserId().equals(thisUser.getId())){
                 currentPageUser = pageUser;
             }
         }
@@ -83,14 +83,14 @@ public class PageController {
     }
 
     @RequestMapping(value = "/page/view/{pageId}", method = RequestMethod.GET)
-    public String view(@PathVariable Long pageId, Model model, HttpServletRequest request) {
+    public String view(@PathVariable String pageId, Model model, HttpServletRequest request) {
         try {
             List<Page> pages = getAllPagesForAuthenticatedUser();
             Page page = pageService.getPageFromList(pageId, pages);
             PageUser currentPageUser = null;
             User thisUser = userService.getAuthenticatedUser();
             for(PageUser pageUser : page.getMembers()){
-                if(pageUser.getUser().equals(thisUser)){
+                if(pageUser.getUserId().equals(thisUser.getId())){
                     currentPageUser = pageUser;
                 }
             }
@@ -108,13 +108,13 @@ public class PageController {
 
     private List<Page> getAllPagesForAuthenticatedUser() {
         User user = userService.getAuthenticatedUser();
-        long userId = user.getId();
+        String userId = user.getId();
         List<Page> pages = pageService.getAllUserPages(userId);
         // we add pages to this list which the corresponding pageUser object is not set to "refused"
         List<Page> viewablePages = new ArrayList<Page>();
         for(Page page : pages){
             for(PageUser pageUser : page.getMembers()){
-                if(pageUser != null && pageUser.getUser().equals(user) && !pageUser.getPageStatus().equals(PageInvitationStatus.REFUSED)){
+                if(pageUser != null && pageUser.getUserId().equals(user.getId()) && !pageUser.getPageStatus().equals(PageInvitationStatus.REFUSED)){
                     viewablePages.add(page);
                 }
             }

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java Fri Dec 28 17:43:23 2012
@@ -19,8 +19,6 @@
 
 package org.apache.rave.portal.web.controller;
 
-import java.util.List;
-
 import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.Person;
 import org.apache.rave.portal.model.User;
@@ -35,15 +33,14 @@ import org.apache.rave.portal.web.util.V
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 @Controller
 @RequestMapping(value = {"/person/*", "/person"})
@@ -69,17 +66,14 @@ public class ProfileController {
 	 * @return the view name of the user profile page
 	 */
 	@RequestMapping(value = {"/{username:.*}"}, method = RequestMethod.GET)
-	public String viewProfile(@PathVariable String username, ModelMap model, @RequestParam(required = false) Long referringPageId) {
+	public String viewProfileByUsername(@PathVariable String username, ModelMap model, @RequestParam(required = false) String referringPageId, HttpServletResponse response) {
         User user = null;
         try{
             user = userService.getUserByUsername(username);
             logger.debug("Viewing person profile for: " + user.getUsername());
             return viewProfileCommon(user, model, referringPageId);
         }catch(Exception e){
-            addAttributesToModel(model, user, referringPageId);
-            String view = ViewNames.USER_NOT_FOUND;
-            addNavItemsToModel(view, model, referringPageId, user, null);
-            return view;
+            return profileNotFoundErrorHelper(model, referringPageId, response, user, e);
         }
 	}
 	  /**
@@ -91,23 +85,39 @@ public class ProfileController {
 		 * @return the view name of the user profile page
 		 */
 	@RequestMapping(value = {"/id/{userid:.*}"}, method = RequestMethod.GET)
-	public String viewProfile(@PathVariable Long userid, ModelMap model, @RequestParam(required = false) Long referringPageId) {
+	public String viewProfile(@PathVariable String userid, ModelMap model, @RequestParam(required = false) String referringPageId, HttpServletResponse response) {
         User user = null;
         try{
             user = userService.getUserById(userid);
             logger.debug("Viewing person profile for: " + user.getUsername());
             return viewProfileCommon(user, model, referringPageId);
         }catch (Exception e){
-            addAttributesToModel(model, user, referringPageId);
-            String view = ViewNames.USER_NOT_FOUND;
-            addNavItemsToModel(view, model, referringPageId, user, null);
-            return view;
+            return profileNotFoundErrorHelper(model, referringPageId, response, user, e);
         }
 	}
 
-    private String viewProfileCommon(User user, ModelMap model, Long referringPageId){
+    /**
+     * Helper method to handle error when a person's profile is not found
+     * @param model Model map of values for view
+     * @param referringPageId String
+     * @param response HttpServletResponse object
+     * @param user User of page
+     * @param e Exception that was caught
+     * @return String of the viewname to render
+     */
+    private String profileNotFoundErrorHelper(ModelMap model, String referringPageId, HttpServletResponse response, User user, Exception e) {
+        logger.error("Caught an exception: " + e.getMessage());
+        addAttributesToModel(model, user, referringPageId);
+        response.setStatus(HttpStatus.NOT_FOUND.value());
+        String view = ViewNames.USER_NOT_FOUND;
+        addNavItemsToModel(view, model, referringPageId, user, null);
+        return view;
+    }
+
+    private String viewProfileCommon(User user, ModelMap model, String referringPageId){
         Page personProfilePage = pageService.getPersonProfilePage(user.getId());
         addAttributesToModel(model, user, referringPageId);
+
         model.addAttribute(ModelKeys.PAGE, personProfilePage);
         String view =  ViewNames.getPersonPageView(personProfilePage.getPageLayout().getCode());
         List<Person> friendRequests = userService.getFriendRequestsReceived(user.getUsername());
@@ -125,7 +135,7 @@ public class ProfileController {
 	 */
     @RequestMapping(method = RequestMethod.POST)
     public String updateProfile(ModelMap model,
-                                @RequestParam(required = false) Long referringPageId,
+                                @RequestParam(required = false) String referringPageId,
                                 @ModelAttribute("updatedUser") UserForm updatedUser) {
 
         User user = userService.getAuthenticatedUser();
@@ -151,13 +161,13 @@ public class ProfileController {
 	/*
 	 * Function to add attributes to model map
 	 */
-	private void addAttributesToModel(ModelMap model, User user, Long referringPageId) {
+	private void addAttributesToModel(ModelMap model, User user, String referringPageId) {
     	model.addAttribute(ModelKeys.USER_PROFILE, user);
     	model.addAttribute(ModelKeys.REFERRING_PAGE_ID, referringPageId);
     }
 
-    public static void addNavItemsToModel(String view, ModelMap model, Long referringPageId, User user, List<Person> friendRequests) {
-        long refPageId = referringPageId != null ? referringPageId : 0;
+    public static void addNavItemsToModel(String view, ModelMap model, String referringPageId, User user, List<Person> friendRequests) {
+        String refPageId = referringPageId != null ? referringPageId : "";
         final NavigationMenu topMenu = new NavigationMenu("topnav");
 
         if(friendRequests != null){

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/RegionWidgetController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/RegionWidgetController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/RegionWidgetController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/RegionWidgetController.java Fri Dec 28 17:43:23 2012
@@ -20,6 +20,7 @@ package org.apache.rave.portal.web.contr
 
 import org.apache.rave.portal.model.RegionWidget;
 import org.apache.rave.portal.service.RegionWidgetService;
+import org.apache.rave.portal.service.WidgetService;
 import org.apache.rave.portal.web.util.ModelKeys;
 import org.apache.rave.portal.web.util.ViewNames;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,15 +34,18 @@ import org.springframework.web.bind.anno
 public class RegionWidgetController {
 	
 	private RegionWidgetService regionWidgetService;
+    private WidgetService widgetService;
 	
 	@Autowired
-	public RegionWidgetController(RegionWidgetService regionWidgetService){
+	public RegionWidgetController(RegionWidgetService regionWidgetService, WidgetService widgetService){
 		this.regionWidgetService = regionWidgetService;
+        this.widgetService = widgetService;
 	}
 
     @RequestMapping(value = {"/api/rest/regionwidget/{regionWidgetId}"}, method = RequestMethod.GET)
-    public String  viewRegionWidget(Model model, @PathVariable Long regionWidgetId){
+    public String  viewRegionWidget(Model model, @PathVariable String regionWidgetId){
     	RegionWidget rw = regionWidgetService.getRegionWidget(regionWidgetId);
+        model.addAttribute(ModelKeys.WIDGET, widgetService.getWidget(rw.getWidgetId()));
         model.addAttribute(ModelKeys.REGION_WIDGET, rw);
     	return ViewNames.REGION_WIDGET;
     }

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetMarketplaceController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetMarketplaceController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetMarketplaceController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetMarketplaceController.java Fri Dec 28 17:43:23 2012
@@ -66,7 +66,7 @@ public class WidgetMarketplaceController
 	 */
 	@RequestMapping(value = { "marketplace" }, method = RequestMethod.GET)
 	public String viewSearchResult(Model model,
-			@RequestParam long referringPageId,
+			@RequestParam String referringPageId,
             @RequestParam(required = false, defaultValue = "0") int offset) {
 
 		final String view = ViewNames.ADD_WIDGET_MARKETPLACE;
@@ -96,7 +96,7 @@ public class WidgetMarketplaceController
 	 */
 	@RequestMapping(value = { "marketplace/search" }, method = RequestMethod.GET)
 	public String viewSearchResult(Model model,
-			@RequestParam long referringPageId,
+			@RequestParam String referringPageId,
 			@RequestParam String searchTerm,
 			@RequestParam(required = false, defaultValue = "0") int offset) {
 
@@ -127,7 +127,7 @@ public class WidgetMarketplaceController
 	 */
 	@RequestMapping(value = { "category/{category}" }, method = RequestMethod.GET)
 	public String viewCategory(Model model,
-			@RequestParam long referringPageId,
+			@RequestParam String referringPageId,
 			@PathVariable String category,
 			@RequestParam(required = false, defaultValue = "0") int offset) {
 
@@ -160,7 +160,7 @@ public class WidgetMarketplaceController
 	 */
 	@RequestMapping(value = {"widget/{widget}"}, method=RequestMethod.GET)
 	public String viewWidgetDetail(Model model,
-			@RequestParam long referringPageId,
+			@RequestParam String referringPageId,
 			@RequestParam String externalId,
 			@PathVariable String widget){
 		
@@ -198,7 +198,7 @@ public class WidgetMarketplaceController
 	 * @param user
 	 *            Current authenticated User
 	 */
-	private void widgetStoreModelHelper(Model model, long referringPageId,
+	private void widgetStoreModelHelper(Model model, String referringPageId,
 			User user, String view) {
 		model.addAttribute(ModelKeys.REFERRING_PAGE_ID, referringPageId);
 		ControllerUtils.addNavItemsToModel(view, model, referringPageId, user);

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/WidgetStoreController.java Fri Dec 28 17:43:23 2012
@@ -74,7 +74,7 @@ public class WidgetStoreController {
      * @return the view name of the main store page
      */
     @RequestMapping(method = RequestMethod.GET)
-    public String view(Model model, @RequestParam long referringPageId,
+    public String view(Model model, @RequestParam String referringPageId,
             @RequestParam(required = false, defaultValue = "0") int offset) {
         final String view = ViewNames.STORE;
         User user = userService.getAuthenticatedUser();
@@ -84,7 +84,7 @@ public class WidgetStoreController {
     }
 
     @RequestMapping(method = RequestMethod.GET, value = "mine")
-    public String viewMine(Model model, @RequestParam long referringPageId,
+    public String viewMine(Model model, @RequestParam String referringPageId,
             @RequestParam(required = false, defaultValue = "0") int offset) {
         final String view = ViewNames.STORE;
         User user = userService.getAuthenticatedUser();
@@ -106,7 +106,7 @@ public class WidgetStoreController {
      * @return the view name of the widget detail page
      */
     @RequestMapping(method = RequestMethod.GET, value = "widget/{widgetId}")
-    public String viewWidget(Model model, @PathVariable long widgetId, @RequestParam long referringPageId) {
+    public String viewWidget(Model model, @PathVariable String widgetId, @RequestParam String referringPageId) {
         final String view = ViewNames.WIDGET;
         final User user = userService.getAuthenticatedUser();
         widgetStoreModelHelper(model, referringPageId, user, view);
@@ -130,7 +130,7 @@ public class WidgetStoreController {
      * @return the view name of the main store page
      */
     @RequestMapping(method = RequestMethod.GET, value = "search")
-    public String viewSearchResult(Model model, @RequestParam long referringPageId, @RequestParam String searchTerm,
+    public String viewSearchResult(Model model, @RequestParam String referringPageId, @RequestParam String searchTerm,
             @RequestParam(required = false, defaultValue = "0") int offset) {
         final String view = ViewNames.STORE;
         User user = userService.getAuthenticatedUser();
@@ -156,7 +156,7 @@ public class WidgetStoreController {
      * @return the view name of the main store page
      */
     @RequestMapping(method = RequestMethod.GET, value = "tag")
-    public String viewTagResult(Model model, @RequestParam long referringPageId, @RequestParam String keyword,
+    public String viewTagResult(Model model, @RequestParam String referringPageId, @RequestParam String keyword,
             @RequestParam(required = false, defaultValue = "0") int offset) {
         final String view = ViewNames.STORE;
         User user = userService.getAuthenticatedUser();
@@ -168,13 +168,13 @@ public class WidgetStoreController {
     }
 
     @RequestMapping(method = RequestMethod.GET, value = "category")
-    public String viewCategoryResult(@RequestParam(required = true) long referringPageId,
-            @RequestParam(required = true) long categoryId,
+    public String viewCategoryResult(@RequestParam(required = true) String referringPageId,
+            @RequestParam(required = true) String categoryId,
             @RequestParam(required = false, defaultValue = "0") int offset, Model model) {
         final String view = ViewNames.STORE;
         User authenticatedUser = userService.getAuthenticatedUser();
         widgetStoreModelHelper(model, referringPageId, authenticatedUser, view);
-        if (categoryId > 0) {
+        if (categoryId != null && !categoryId.isEmpty()) {
             model.addAttribute(ModelKeys.WIDGETS, widgetService.getWidgetsByCategory(categoryId, offset, getPageSize()));
         } else {
             model.addAttribute(ModelKeys.WIDGETS, widgetService.getPublishedWidgets(offset, getPageSize()));
@@ -194,7 +194,7 @@ public class WidgetStoreController {
      * @return the view name of the Add new Widget form
      */
     @RequestMapping(method = RequestMethod.GET, value = "widget/add")
-    public String viewAddWidgetForm(Model model, @RequestParam long referringPageId) {
+    public String viewAddWidgetForm(Model model, @RequestParam String referringPageId) {
         final Widget widget = new WidgetImpl();
         final String view = ViewNames.ADD_WIDGET_FORM;
         model.addAttribute(ModelKeys.MARKETPLACE, this.preferenceService.getPreference(PortalPreferenceKeys.EXTERNAL_MARKETPLACE_URL));
@@ -216,7 +216,7 @@ public class WidgetStoreController {
      * @return the view name of the Add new Widget form
      */
     @RequestMapping(method = RequestMethod.GET, value = "widget/add/{type}")
-    public String viewAddWidgetFormByType(Model model, @RequestParam long referringPageId, @PathVariable String type) {
+    public String viewAddWidgetFormByType(Model model, @RequestParam String referringPageId, @PathVariable String type) {
         final Widget widget = new WidgetImpl();
         String view;
         if (type != null && type.equalsIgnoreCase("w3c")){
@@ -248,7 +248,7 @@ public class WidgetStoreController {
      */
     @RequestMapping(method = RequestMethod.POST, value = "widget/add")
     public String viewAddWidgetResult(@ModelAttribute WidgetImpl widget, BindingResult results, Model model,
-            @RequestParam long referringPageId) {
+            @RequestParam String referringPageId) {
         User user = userService.getAuthenticatedUser();
         widgetValidator.validate(widget, results);
         if (results.hasErrors()) {
@@ -276,7 +276,7 @@ public class WidgetStoreController {
      */
     @RequestMapping(method = RequestMethod.POST, value = "widget/add/w3c")
     public String viewAddWidgetResultW3c(@ModelAttribute WidgetImpl widget, BindingResult results, Model model,
-            @RequestParam long referringPageId) {
+            @RequestParam String referringPageId) {
         User user = userService.getAuthenticatedUser();
         widgetValidator.validate(widget, results);
         if (results.hasErrors()) {
@@ -300,7 +300,7 @@ public class WidgetStoreController {
      *            the source page ID
      * @return a redirection string for the store detail page.
      */
-    private String finalizeNewWidget(WidgetImpl widget, User user, long referringPageId){
+    private String finalizeNewWidget(WidgetImpl widget, User user, String referringPageId){
         /*
          * By default, a new widget has a status of "PREVIEW", however this can be overridden in portal preferences,
          * skipping the need for an admin to approve a new widget.
@@ -312,7 +312,7 @@ public class WidgetStoreController {
 	        widget.setWidgetStatus(WidgetStatus.PREVIEW);
 		}
         
-        widget.setOwner(user);
+        widget.setOwnerId(user.getId());
 
         final Widget storedWidget = widgetService.registerNewWidget(widget);
         return "redirect:/app/store/widget/" + storedWidget.getId() + "?referringPageId=" + referringPageId;
@@ -328,7 +328,7 @@ public class WidgetStoreController {
      * @param user
      *            Current authenticated User
      */
-    private void widgetStoreModelHelper(Model model, long referringPageId, User user, String view) {
+    private void widgetStoreModelHelper(Model model, String referringPageId, User user, String view) {
         model.addAttribute(ModelKeys.REFERRING_PAGE_ID, referringPageId);
         model.addAttribute(ModelKeys.WIDGETS_STATISTICS, widgetService.getAllWidgetStatistics(user.getId()));
         model.addAttribute(ModelKeys.TAGS, tagService.getAllTags());

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/CategoryController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/CategoryController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/CategoryController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/CategoryController.java Fri Dec 28 17:43:23 2012
@@ -128,7 +128,7 @@ public class CategoryController {
     }
 
     @RequestMapping(value = "/admin/category/edit", method = RequestMethod.GET)
-    public String editCategory(@RequestParam(required = true) long id, Model model) {
+    public String editCategory(@RequestParam(required = true) String id, Model model) {
         addNavigationMenusToModel(SELECTED_ITEM, model);
 
         model.addAttribute(ModelKeys.TOKENCHECK, AdminControllerUtil.generateSessionToken());

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java Fri Dec 28 17:43:23 2012
@@ -119,7 +119,7 @@ public class UserController {
     }
 
     @RequestMapping(value = "/admin/userdetail/{userid}", method = RequestMethod.GET)
-    public String viewUserDetail(@PathVariable("userid") Long userid, Model model) {
+    public String viewUserDetail(@PathVariable("userid") String userid, Model model) {
         addNavigationMenusToModel(SELECTED_ITEM, model);
         model.addAttribute(ModelKeys.USER, userService.getUserById(userid));
         model.addAttribute(ModelKeys.TOKENCHECK, AdminControllerUtil.generateSessionToken());

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/WidgetController.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/WidgetController.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/WidgetController.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/WidgetController.java Fri Dec 28 17:43:23 2012
@@ -106,7 +106,7 @@ public class WidgetController {
     }
 
     @RequestMapping(value = "/admin/widgetdetail/{widgetid}", method = RequestMethod.GET)
-    public String viewWidgetDetail(@PathVariable("widgetid") Long widgetid, Model model) {
+    public String viewWidgetDetail(@PathVariable("widgetid") String widgetid, Model model) {
         addNavigationMenusToModel(SELECTED_ITEM, model);
         model.addAttribute(ModelKeys.WIDGET, widgetService.getWidget(widgetid));
         model.addAttribute(ModelKeys.TOKENCHECK, AdminControllerUtil.generateSessionToken());

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/CategoryEditor.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/CategoryEditor.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/CategoryEditor.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/CategoryEditor.java Fri Dec 28 17:43:23 2012
@@ -38,7 +38,7 @@ public class CategoryEditor extends Prop
 
     @Override
     public void setAsText(String text) throws IllegalArgumentException {
-        setValue(categoryService.get(Long.parseLong(text)));
+        setValue(categoryService.get(text));
     }
 
     @Override

Modified: rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java
URL: http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java?rev=1426593&r1=1426592&r2=1426593&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java (original)
+++ rave/branches/mongo/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/util/ControllerUtils.java Fri Dec 28 17:43:23 2012
@@ -19,8 +19,6 @@
 
 package org.apache.rave.portal.web.controller.util;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.web.model.NavigationItem;
 import org.apache.rave.portal.web.model.NavigationMenu;
@@ -30,6 +28,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.mobile.device.DeviceUtils;
 import org.springframework.ui.Model;
 
+import javax.servlet.http.HttpServletRequest;
+
 public class ControllerUtils {
     private static final Logger log = LoggerFactory.getLogger(ControllerUtils.class);
 
@@ -59,17 +59,17 @@ public class ControllerUtils {
         return viewName;
     }
 
-    public static void addNavItemsToModel(String view, Model model, long referringPageId, User user) {
+    public static void addNavItemsToModel(String view, Model model, String referringPageId, User user) {
         final NavigationMenu topMenu = getTopMenu(view, referringPageId, user, true);
         model.addAttribute(topMenu.getName(), topMenu);
     }
 
-    public static void addNavItemsToModel(String view, Model model, long referringPageId, User user, boolean addStore) {
+    public static void addNavItemsToModel(String view, Model model, String referringPageId, User user, boolean addStore) {
         final NavigationMenu topMenu = getTopMenu(view, referringPageId, user, addStore);
         model.addAttribute(topMenu.getName(), topMenu);
     }
     
-    public static NavigationMenu getTopMenu(String view, long referringPageId, User user, boolean addStoreLink) {
+    public static NavigationMenu getTopMenu(String view, String referringPageId, User user, boolean addStoreLink) {
         NavigationMenu menu = new NavigationMenu("topnav");
         if(view.startsWith(ViewNames.PAGE) || view.startsWith(ViewNames.MOBILE_HOME)) {
             NavigationItem profile = new NavigationItem("page.profile.title", getDisplayName(user), "/app/person/id/" + user.getId() + "?referringPageId=" + referringPageId);
@@ -132,10 +132,10 @@ public class ControllerUtils {
         return (displayName == null || "".equals(displayName)) ? user.getUsername() : displayName;
     }
 
-    private static NavigationItem getBackItem(long referringPageId) {
+    private static NavigationItem getBackItem(String referringPageId) {
         NavigationItem back = new NavigationItem();
         back.setName("page.general.back");
-        if (referringPageId > 0) {
+        if (referringPageId != null && !referringPageId.isEmpty()) {
             back.setUrl("/app/page/view/" + referringPageId);
         } else {
             back.setUrl("/");