Author: mfranklin
Date: Mon Oct 15 17:55:19 2012
New Revision: 1398423

URL: http://svn.apache.org/viewvc?rev=1398423&view=rev
Log:
Completed save & retrieval of page 'vertical'

Added:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPageLayout.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidget.java
Modified:
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageLayoutRepository.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/MongoDbUserRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbWidgetRepository.java
    
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPageLayout.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPageLayout.java?rev=1398423&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPageLayout.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPageLayout.java
 Mon Oct 15 17:55:19 2012
@@ -0,0 +1,11 @@
+package org.apache.rave.portal.model;
+
+import org.apache.rave.portal.model.impl.PageLayoutImpl;
+
+public class MongoDbPageLayout extends PageLayoutImpl {
+    public MongoDbPageLayout() {    }
+
+    public MongoDbPageLayout(String layout) {
+        super(layout);
+    }
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java?rev=1398423&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java
 Mon Oct 15 17:55:19 2012
@@ -0,0 +1,11 @@
+package org.apache.rave.portal.model;
+
+import org.apache.rave.portal.model.impl.UserImpl;
+
+/**
+ */
+public class MongoDbUser extends UserImpl {
+    public MongoDbUser(long id) {
+        super(id);
+    }
+}

Added: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidget.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidget.java?rev=1398423&view=auto
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidget.java
 (added)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbWidget.java
 Mon Oct 15 17:55:19 2012
@@ -0,0 +1,14 @@
+package org.apache.rave.portal.model;
+
+import org.apache.rave.portal.model.impl.WidgetImpl;
+
+/**
+ */
+public class MongoDbWidget extends WidgetImpl {
+
+    public MongoDbWidget() {   }
+
+    public MongoDbWidget(long id) {
+        super(id);
+    }
+}

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageLayoutRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageLayoutRepository.java?rev=1398423&r1=1398422&r2=1398423&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageLayoutRepository.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageLayoutRepository.java
 Mon Oct 15 17:55:19 2012
@@ -1,16 +1,25 @@
 package org.apache.rave.portal.repository.impl;
 
+import org.apache.rave.portal.model.MongoDbPageLayout;
 import org.apache.rave.portal.model.PageLayout;
 import org.apache.rave.portal.repository.PageLayoutRepository;
+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;
 
+import static org.springframework.data.mongodb.core.query.Criteria.where;
+
 @Repository
 public class MongoDbPageLayoutRepository implements PageLayoutRepository {
+    @Autowired
+    private MongoOperations template;
+
     @Override
     public PageLayout getByPageLayoutCode(String codename) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return template.findOne(new Query(where("code").is(codename)), 
MongoDbPageLayout.class);
     }
 
     @Override
@@ -35,7 +44,8 @@ public class MongoDbPageLayoutRepository
 
     @Override
     public PageLayout save(PageLayout item) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        template.save(item);
+        return item;
     }
 
     @Override

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=1398423&r1=1398422&r2=1398423&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
 Mon Oct 15 17:55:19 2012
@@ -74,7 +74,7 @@ public class MongoDbPageRepository imple
 
     @Override
     public Page get(long id) {
-        MongoDbPage fromDb = mongoTemplate.findOne(new 
Query(where("_id").is(id)), MongoDbPage.class);
+        MongoDbPage fromDb = mongoTemplate.findById(id, MongoDbPage.class);
         if(fromDb == null) {
             throw new IllegalStateException("Could not find requested page: " 
+ id);
         }

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=1398423&r1=1398422&r2=1398423&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
 Mon Oct 15 17:55:19 2012
@@ -1,7 +1,10 @@
 package org.apache.rave.portal.repository.impl;
 
+import org.apache.rave.portal.model.MongoDbUser;
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.repository.UserRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -10,6 +13,10 @@ import java.util.List;
  */
 @Repository
 public class MongoDbUserRepository implements UserRepository {
+
+    @Autowired
+    private MongoOperations template;
+
     @Override
     public User getByUsername(String username) {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
@@ -62,12 +69,13 @@ public class MongoDbUserRepository imple
 
     @Override
     public User get(long id) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return template.findById(id, MongoDbUser.class);
     }
 
     @Override
     public User save(User item) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        template.save(item);
+        return item;
     }
 
     @Override

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=1398423&r1=1398422&r2=1398423&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
 Mon Oct 15 17:55:19 2012
@@ -1,11 +1,10 @@
 package org.apache.rave.portal.repository.impl;
 
-import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.model.Widget;
-import org.apache.rave.portal.model.WidgetRating;
-import org.apache.rave.portal.model.WidgetStatus;
+import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.util.WidgetStatistics;
 import org.apache.rave.portal.repository.WidgetRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -15,34 +14,39 @@ import java.util.Map;
  */
 @Repository
 public class MongoDbWidgetRepository implements WidgetRepository {
+
+    @Autowired
+    private MongoOperations template;
+
     @Override
     public List<Widget> getAll() {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
     @Override
     public List<Widget> getLimitedList(int offset, int pageSize) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
     @Override
     public int getCountAll() {
-        return 0;  //To change body of implemented methods use File | Settings 
| File Templates.
+        //TODO replace with native query
+        return template.findAll(MongoDbWidget.class).size();
     }
 
     @Override
     public List<Widget> getByFreeTextSearch(String searchTerm, int offset, int 
pageSize) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
     @Override
     public int getCountFreeTextSearch(String searchTerm) {
-        return 0;  //To change body of implemented methods use File | Settings 
| File Templates.
+        return 0;
     }
 
     @Override
     public List<Widget> getByStatus(WidgetStatus widgetStatus, int offset, int 
pageSize) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
     @Override
@@ -107,17 +111,18 @@ public class MongoDbWidgetRepository imp
 
     @Override
     public Class<? extends Widget> getType() {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return Widget.class;
     }
 
     @Override
     public Widget get(long id) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return template.findById(id, MongoDbWidget.class);
     }
 
     @Override
     public Widget save(Widget item) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        template.save(item);
+        return item;
     }
 
     @Override

Modified: 
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java?rev=1398423&r1=1398422&r2=1398423&view=diff
==============================================================================
--- 
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
 (original)
+++ 
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
 Mon Oct 15 17:55:19 2012
@@ -3,7 +3,10 @@ package org.apache.rave.portal.repositor
 import com.google.common.collect.Lists;
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.impl.*;
+import org.apache.rave.portal.repository.PageLayoutRepository;
 import org.apache.rave.portal.repository.PageRepository;
+import org.apache.rave.portal.repository.UserRepository;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,14 +29,32 @@ public class MongoDbPageRepositoryTest {
     @Autowired
     PageRepository repository;
 
+    @Autowired
+    WidgetRepository widgetRepository;
+
+    @Autowired
+    PageLayoutRepository pageLayoutRepository;
+
+    @Autowired
+    UserRepository userRepository;
+
     @Test
     public void MongoTest() {
         Page page = new PageImpl();
-        PageUser p = new PageUserImpl(new UserImpl(12345L), page);
+
+        User user1 = new MongoDbUser(12345L);
+        user1.setDisplayName("GEORGE DOE");
+        userRepository.save(user1);
+
+        User user2 = new MongoDbUser(12345L);
+        user2.setDisplayName("JANE DOE");
+        userRepository.save(user2);
+
+        PageUser p = new PageUserImpl(user1, page);
         page.setName("PAGE NAME");
         page.setMembers(Lists.<PageUser>newLinkedList());
         page.getMembers().add(p);
-        page.setOwner(new UserImpl(123456L));
+        page.setOwner(user2);
         page.setRegions(Lists.<Region>newLinkedList());
 
         Region region = new RegionImpl();
@@ -51,19 +72,29 @@ public class MongoDbPageRepositoryTest {
         preference.setValue("PREF_VALUE");
         regionWidget.getPreferences().add(preference);
 
-        Widget widget = new WidgetImpl(13223L);
+        Widget widget = new MongoDbWidget(13223L);
+        widget.setAuthor("FOO");
+        widget.setDescription("BAR");
+        widgetRepository.save(widget);
+
         regionWidget.setWidget(widget);
 
         page.setPageType(PageType.USER);
-        page.setPageLayout(new PageLayoutImpl("LAYOUT"));
+        PageLayout layout = new MongoDbPageLayout("LAYOUT");
+        page.setPageLayout(layout);
+        layout.setNumberOfRegions(24L);
+        pageLayoutRepository.save(layout);
 
         Page saved = repository.save(page);
         assertThat(saved, instanceOf(MongoDbPage.class));
 
         Page fromDb = repository.get(saved.getId());
-        assertThat(fromDb.getMembers().get(0), 
is(equalTo(saved.getMembers().get(0))));
+        assertThat(fromDb.getMembers().get(0).getUser(), 
is(equalTo(saved.getMembers().get(0).getUser())));
+        assertThat(fromDb, 
is(sameInstance(fromDb.getMembers().get(0).getPage())));
+        assertThat(fromDb.getPageLayout(), is(equalTo(saved.getPageLayout())));
         assertThat(fromDb.getRegions().get(0), 
is(equalTo(saved.getRegions().get(0))));
         assertThat(fromDb.getRegions().get(0).getRegionWidgets().get(0), 
is(equalTo(saved.getRegions().get(0).getRegionWidgets().get(0))));
+        
assertThat(fromDb.getRegions().get(0).getRegionWidgets().get(0).getWidget(), 
is(equalTo(saved.getRegions().get(0).getRegionWidgets().get(0).getWidget())));
         
assertThat(fromDb.getRegions().get(0).getRegionWidgets().get(0).getPreferences().get(0),
 
is(equalTo(saved.getRegions().get(0).getRegionWidgets().get(0).getPreferences().get(0))));
     }
 }


Reply via email to