Updated repository to use Operations model (RAVE-1062) git-svn-id: https://svn.apache.org/repos/asf/rave/trunk@1529722 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/f13f14be Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/f13f14be Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/f13f14be Branch: refs/heads/angular Commit: f13f14bead70a3f534e9512988b88645bd29831c Parents: 3f4f52a Author: Matthew B. Franklin <[email protected]> Authored: Mon Oct 7 00:06:49 2013 +0000 Committer: Matthew B. Franklin <[email protected]> Committed: Mon Oct 7 00:06:49 2013 +0000 ---------------------------------------------------------------------- .../repository/MongoPageTemplateOperations.java | 5 +++ .../impl/MongoDbPageTemplateRepository.java | 44 ++++++-------------- .../impl/MongoPageTemplateTemplate.java | 17 ++++++++ .../impl/MongoDbPageTemplateRepositoryTest.java | 31 +++++--------- 4 files changed, 44 insertions(+), 53 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/f13f14be/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageTemplateOperations.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageTemplateOperations.java b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageTemplateOperations.java new file mode 100644 index 0000000..f351f2d --- /dev/null +++ b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/MongoPageTemplateOperations.java @@ -0,0 +1,5 @@ +package org.apache.rave.portal.repository; + +import org.apache.rave.model.PageTemplate; + +public interface MongoPageTemplateOperations extends MongoModelOperations<PageTemplate> {} http://git-wip-us.apache.org/repos/asf/rave/blob/f13f14be/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java index 2ef1aa8..2678f3b 100644 --- a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java +++ b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepository.java @@ -19,21 +19,18 @@ package org.apache.rave.portal.repository.impl; -import org.apache.rave.portal.model.MongoDbPageTemplate; import org.apache.rave.model.PageTemplate; -import org.apache.rave.portal.model.conversion.HydratingConverterFactory; +import org.apache.rave.portal.repository.MongoPageTemplateOperations; import org.apache.rave.portal.repository.PageTemplateRepository; -import org.apache.rave.util.CollectionUtils; 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 sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.List; -import static org.apache.rave.portal.repository.util.CollectionNames.PAGE_TEMPLATE_COLLECTION; import static org.springframework.data.mongodb.core.query.Criteria.where; +import static org.springframework.data.mongodb.core.query.Query.query; /** */ @@ -41,41 +38,31 @@ import static org.springframework.data.mongodb.core.query.Criteria.where; public class MongoDbPageTemplateRepository implements PageTemplateRepository { @Autowired - private HydratingConverterFactory converter; - - @Autowired - private MongoOperations template; + private MongoPageTemplateOperations template; @Override public List<PageTemplate> getAll() { - List<MongoDbPageTemplate> templates = template.findAll(MongoDbPageTemplate.class, PAGE_TEMPLATE_COLLECTION); - for(MongoDbPageTemplate temp : templates) { - converter.hydrate(temp, PageTemplate.class); - } - return CollectionUtils.<PageTemplate>toBaseTypedList(templates); + return template.find(new Query()); } @Override public List<PageTemplate> getLimitedList(int offset, int limit) { - return null; //To change body of implemented methods use File | Settings | File Templates. + return template.find(new Query().limit(limit).skip(offset)); } @Override public int getCountAll() { - return 0; + return (int)template.count(new Query()); } @Override public List<PageTemplate> getAllForType(String pageType) { - - return null; + return template.find(query(where("pageType").is(pageType.toUpperCase()))); } @Override public PageTemplate getDefaultPage(String pageType) { - PageTemplate temp = template.findOne(new Query(where("pageType").is(pageType.toUpperCase()).andOperator(where("defaultTemplate").is(true))), MongoDbPageTemplate.class, PAGE_TEMPLATE_COLLECTION); - converter.hydrate(temp, PageTemplate.class); - return temp; + return template.findOne(new Query(where("pageType").is(pageType.toUpperCase()).andOperator(where("defaultTemplate").is(true)))); } @Override @@ -85,27 +72,20 @@ public class MongoDbPageTemplateRepository implements PageTemplateRepository { @Override public PageTemplate get(String id) { - return null; //To change body of implemented methods use File | Settings | File Templates. + return template.get(id); } @Override public PageTemplate save(PageTemplate pageTemplate) { - MongoDbPageTemplate converted = converter.convert(pageTemplate, PageTemplate.class); - template.save(converted, PAGE_TEMPLATE_COLLECTION); - converter.hydrate(converted, PageTemplate.class); - return converted; + return template.save(pageTemplate); } @Override public void delete(PageTemplate item) { - throw new NotImplementedException(); - } - - public void setConverter(HydratingConverterFactory converter) { - this.converter = converter; + template.remove(query(where("_id").is(item.getId()))); } - public void setTemplate(MongoOperations template) { + public void setTemplate(MongoPageTemplateOperations template) { this.template = template; } } http://git-wip-us.apache.org/repos/asf/rave/blob/f13f14be/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplateTemplate.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplateTemplate.java b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplateTemplate.java new file mode 100644 index 0000000..0919143 --- /dev/null +++ b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoPageTemplateTemplate.java @@ -0,0 +1,17 @@ +package org.apache.rave.portal.repository.impl; + +import org.apache.rave.model.PageTemplate; +import org.apache.rave.portal.model.MongoDbPageTemplate; +import org.apache.rave.portal.repository.MongoPageTemplateOperations; + +import static org.apache.rave.portal.repository.util.CollectionNames.PAGE_TEMPLATE_COLLECTION; + +/** + * MongoModelTemplate for the PageTemplate class + */ +public class MongoPageTemplateTemplate extends MongoModelTemplate<PageTemplate, MongoDbPageTemplate> implements MongoPageTemplateOperations { + + public MongoPageTemplateTemplate() { + super(PageTemplate.class, MongoDbPageTemplate.class, PAGE_TEMPLATE_COLLECTION); + } +} http://git-wip-us.apache.org/repos/asf/rave/blob/f13f14be/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepositoryTest.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepositoryTest.java b/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepositoryTest.java index 55b59d0..e4233a7 100644 --- a/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepositoryTest.java +++ b/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageTemplateRepositoryTest.java @@ -24,6 +24,7 @@ import org.apache.rave.model.PageTemplate; import org.apache.rave.model.PageType; import org.apache.rave.portal.model.conversion.HydratingConverterFactory; import org.apache.rave.portal.model.impl.PageTemplateImpl; +import org.apache.rave.portal.repository.MongoPageTemplateOperations; import org.apache.rave.portal.repository.util.CollectionNames; import org.apache.rave.util.CollectionUtils; import org.junit.Before; @@ -48,30 +49,24 @@ import static org.springframework.data.mongodb.core.query.Criteria.where; public class MongoDbPageTemplateRepositoryTest { private MongoDbPageTemplateRepository templateRepository; - private HydratingConverterFactory converter; - private MongoOperations template; + private MongoPageTemplateOperations template; @Before public void setup(){ templateRepository = new MongoDbPageTemplateRepository(); - converter = createMock(HydratingConverterFactory.class); - template = createMock(MongoOperations.class); + template = createMock(MongoPageTemplateOperations.class); templateRepository.setTemplate(template); - templateRepository.setConverter(converter); } @Test public void getAll_Valid() { - List<MongoDbPageTemplate> templates = new ArrayList<MongoDbPageTemplate>(); + List<PageTemplate> templates = new ArrayList<PageTemplate>(); PageTemplate temp = new MongoDbPageTemplate(); templates.add((MongoDbPageTemplate)temp); - expect(template.findAll(MongoDbPageTemplate.class, CollectionNames.PAGE_TEMPLATE_COLLECTION)).andReturn(templates); - converter.hydrate(temp, PageTemplate.class); - expectLastCall(); - replay(template, converter); + expect(template.find(new Query())).andReturn(templates); + replay(template); List<PageTemplate> returned = templateRepository.getAll(); - verify(converter); assertThat(returned, is(sameInstance(CollectionUtils.<PageTemplate>toBaseTypedList(templates)))); } @@ -79,10 +74,8 @@ public class MongoDbPageTemplateRepositoryTest { public void getDefaultPage_Valid(){ PageType pageType = PageType.get("user"); MongoDbPageTemplate found = new MongoDbPageTemplate(); - expect(template.findOne(new Query(where("pageType").is(pageType.getPageType().toUpperCase()).andOperator(where("defaultTemplate").is(true))), MongoDbPageTemplate.class, CollectionNames.PAGE_TEMPLATE_COLLECTION)).andReturn(found); - converter.hydrate(found, PageTemplate.class); - expectLastCall(); - replay(converter, template); + expect(template.findOne(new Query(where("pageType").is(pageType.getPageType().toUpperCase()).andOperator(where("defaultTemplate").is(true))))).andReturn(found); + replay(template); PageTemplate returned = templateRepository.getDefaultPage(pageType.toString()); @@ -94,12 +87,8 @@ public class MongoDbPageTemplateRepositoryTest { PageTemplate pageTemplate = new PageTemplateImpl(); MongoDbPageTemplate converted = new MongoDbPageTemplate(); - expect(converter.convert(pageTemplate, PageTemplate.class)).andReturn(converted); - template.save(converted, CollectionNames.PAGE_TEMPLATE_COLLECTION); - expectLastCall(); - converter.hydrate(converted, PageTemplate.class); - expectLastCall(); - replay(converter, template); + expect(template.save(eq(converted))).andReturn(converted); + replay(template); PageTemplate saved = templateRepository.save(pageTemplate); assertThat(converted, is(sameInstance(saved)));
