Author: mfranklin
Date: Mon Oct 15 13:00:39 2012
New Revision: 1398274
URL: http://svn.apache.org/viewvc?rev=1398274&view=rev
Log:
Added basic MongoDB Test for page
Added:
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/persistence-applicationContext.xml
(props changed)
- copied unchanged from r1397668,
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/jpa-applicationContext.xml
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPage.java
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/
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/resources/org/
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/
rave/branches/mongo/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/portal.properties
- copied, changed from r1397668,
rave/branches/mongo/rave-portal/src/test/resources/portal.properties
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/test-applicationContext.xml
- copied, changed from r1397668,
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
Removed:
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/jpa-applicationContext.xml
Modified:
rave/branches/mongo/pom.xml
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
rave/branches/mongo/rave-components/rave-mongodb/pom.xml
rave/branches/mongo/rave-portal-dependencies/pom.xml
rave/branches/mongo/rave-portal-resources/src/main/resources/portal.properties
rave/branches/mongo/rave-portal/pom.xml
rave/branches/mongo/rave-portal/src/test/resources/portal.properties
rave/branches/mongo/rave-portal/src/test/resources/test-applicationContext.xml
Modified: rave/branches/mongo/pom.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/pom.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
--- rave/branches/mongo/pom.xml (original)
+++ rave/branches/mongo/pom.xml Mon Oct 15 13:00:39 2012
@@ -17,7 +17,8 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -47,6 +48,7 @@
<org.springframework.version>3.1.2.RELEASE</org.springframework.version>
<org.springframework.security.version>3.1.1.RELEASE</org.springframework.security.version>
<org.springframework.mobile.version>1.0.0.RELEASE</org.springframework.mobile.version>
+
<org.springframework.data.mongodb.version>1.0.3.RELEASE</org.springframework.data.mongodb.version>
<jstl.version>1.2</jstl.version>
<javax.servlet.version>2.5</javax.servlet.version>
<jsp-api.version>2.1</jsp-api.version>
@@ -74,6 +76,7 @@
<javax.mail.version>1.4.4</javax.mail.version>
<javax.activation.version>1.1</javax.activation.version>
<freemarker.version>2.3.18</freemarker.version>
+ <org.mongodb.driver.version>2.9.1</org.mongodb.driver.version>
<!-- The location of Rave's H2 file DB. No trailing / -->
<rave.database.location>/tmp/rave_db</rave.database.location>
@@ -81,12 +84,11 @@
$mvn filesync:generate -Dmaven.filesync.override=true -->
<maven.filesync.override>false</maven.filesync.override>
<jackson.version>1.8.1</jackson.version>
- <mongo-driver.version>2.9.1</mongo-driver.version>
<!-- default empty javaagent
if needed you can specify it on the command line with
-Djavaagent="..." -->
- <javaagent />
+ <javaagent/>
</properties>
<repositories>
@@ -160,7 +162,7 @@
<version>${project.version}</version>
<type>pom</type>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.rave</groupId>
<artifactId>rave-demo-gadgets</artifactId>
<version>${project.version}</version>
@@ -214,9 +216,9 @@
<version>${org.springframework.version}</version>
</dependency>
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${org.springframework.version}</version>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ <version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
@@ -290,9 +292,9 @@
</dependency>
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-oxm</artifactId>
- <version>${org.springframework.version}</version>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-oxm</artifactId>
+ <version>${org.springframework.version}</version>
</dependency>
<dependency>
@@ -301,14 +303,20 @@
<version>${org.springframework.version}</version>
</dependency>
<dependency>
- <groupId>org.springframework.mobile</groupId>
- <artifactId>spring-mobile-device</artifactId>
- <version>${org.springframework.mobile.version}</version>
<exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </exclusion>
- </exclusions>
+ <groupId>org.springframework.mobile</groupId>
+ <artifactId>spring-mobile-device</artifactId>
+ <version>${org.springframework.mobile.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.data</groupId>
+ <artifactId>spring-data-mongodb</artifactId>
+ <version>${org.springframework.data.mongodb.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
@@ -338,7 +346,7 @@
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
- <version>${mongo-driver.version}</version>
+ <version>${org.mongodb.driver.version}</version>
</dependency>
<dependency>
@@ -381,10 +389,10 @@
<version>${org.openid4java.version}</version>
<type>pom</type>
<exclusions>
- <exclusion>
- <groupId>com.google.code.guice</groupId>
- <artifactId>guice</artifactId>
- </exclusion>
+ <exclusion>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -469,23 +477,23 @@
<version>${recaptcha4j.version}</version>
</dependency>
<!-- Mail-->
- <dependency>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- <version>${javax.mail.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- <version>${javax.activation.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>${freemarker.version}</version>
- </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>${javax.mail.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>${javax.activation.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>${freemarker.version}</version>
+ </dependency>
<!-- ApacheDS (LDAP) -->
<dependency>
@@ -501,7 +509,7 @@
</dependency>
- <!-- Test -->
+ <!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -597,7 +605,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
- <version>${cobertura.version}</version>
+ <version>${cobertura.version}</version>
<configuration>
<formats>
<format>html</format>
@@ -623,7 +631,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute />
+ <execute/>
</action>
</pluginExecution>
<pluginExecution>
@@ -636,7 +644,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute />
+ <execute/>
</action>
</pluginExecution>
<pluginExecution>
@@ -649,7 +657,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute />
+ <execute/>
</action>
</pluginExecution>
<pluginExecution>
@@ -663,7 +671,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <execute />
+ <execute/>
</action>
</pluginExecution>
</pluginExecutions>
@@ -705,6 +713,15 @@
</modules>
<profiles>
<profile>
+ <id>jpa</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ </profile>
+ <profile>
+ <id>mongodb</id>
+ </profile>
+ <profile>
<id>apache-release</id>
<build>
<plugins>
Propchange:
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/persistence-applicationContext.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/persistence-applicationContext.xml
------------------------------------------------------------------------------
svn:keywords = Id
Propchange:
rave/branches/mongo/rave-components/rave-jpa/src/main/resources/org/apache/rave/persistence-applicationContext.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
(original)
+++
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
Mon Oct 15 13:00:39 2012
@@ -22,6 +22,6 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <import resource="classpath:org/apache/rave/jpa-applicationContext.xml"/>
+ <import
resource="classpath:org/apache/rave/persistence-applicationContext.xml"/>
</beans>
\ No newline at end of file
Modified: rave/branches/mongo/rave-components/rave-mongodb/pom.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/pom.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
--- rave/branches/mongo/rave-components/rave-mongodb/pom.xml (original)
+++ rave/branches/mongo/rave-components/rave-mongodb/pom.xml Mon Oct 15
13:00:39 2012
@@ -35,8 +35,43 @@
<dependencies>
<dependency>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-core</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.mongodb</groupId>
- <artifactId>mongodb-java-driver</artifactId>
+ <artifactId>mongo-java-driver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.data</groupId>
+ <artifactId>spring-data-mongodb</artifactId>
+ </dependency>
+
+ <!-- Test -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
</dependency>
</dependencies>
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPage.java
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPage.java?rev=1398274&view=auto
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPage.java
(added)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbPage.java
Mon Oct 15 13:00:39 2012
@@ -0,0 +1,15 @@
+package org.apache.rave.portal.model;
+
+import org.apache.rave.portal.model.impl.PageImpl;
+
+public class MongoDbPage extends PageImpl {
+ private String _ownerId;
+
+ public String get_ownerId() {
+ return _ownerId;
+ }
+
+ public void set_ownerId(String _ownerId) {
+ this._ownerId = _ownerId;
+ }
+}
Added:
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=1398274&view=auto
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
(added)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/repository/impl/MongoDbPageRepository.java
Mon Oct 15 13:00:39 2012
@@ -0,0 +1,92 @@
+package org.apache.rave.portal.repository.impl;
+
+import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.repository.PageRepository;
+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 java.util.List;
+import java.util.Random;
+
+import static org.springframework.data.mongodb.core.query.Criteria.where;
+
+/**
+ */
+@Repository
+public class MongoDbPageRepository implements PageRepository {
+
+ @Autowired
+ private MongoOperations mongoTemplate;
+
+ @Override
+ public List<Page> getAllPages(Long userId, PageType pageType) {
+ List<MongoDbPage> pages = mongoTemplate.find(new
Query(where("pageType").is(pageType).andOperator(where("owner.id").is(userId))),
MongoDbPage.class);
+ return CollectionUtils.<Page>toBaseTypedList(pages);
+ }
+
+ @Override
+ public int deletePages(Long userId, PageType pageType) {
+ int count = getAllPages(userId, pageType).size();
+ mongoTemplate.remove(new
Query(where("pageType").is(pageType).andOperator(where("owner.id").is(userId))),
MongoDbPage.class);
+ return count;
+ }
+
+ @Override
+ public Page createPageForUser(User user, PageTemplate pt) {
+ return null;
+ }
+
+ @Override
+ public boolean hasPersonPage(long userId) {
+ return getAllPages(userId, PageType.PERSON_PROFILE).size() > 0;
+ }
+
+ @Override
+ public List<PageUser> getPagesForUser(Long userId, PageType pageType) {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ @Override
+ public PageUser getSingleRecord(Long userId, Long pageId) {
+ return null;
+ }
+
+ @Override
+ public Class<? extends Page> getType() {
+ return MongoDbPage.class;
+ }
+
+ @Override
+ public Page get(long id) {
+ return mongoTemplate.findOne(new Query(where("id").is(id)),
MongoDbPage.class);
+ }
+
+ @Override
+ public Page save(Page item) {
+ MongoDbPage page;
+ if(item.getId() == null) {
+ page = new MongoDbPage();
+ page.setId(new Random().nextLong());
+ } else {
+ page = (MongoDbPage) get(item.getId());
+ page.setId(item.getId());
+ }
+ page.setMembers(item.getMembers());
+ page.setName(item.getName());
+ page.setOwner(item.getOwner());
+ page.setPageLayout(item.getPageLayout());
+ page.setParentPage(item.getParentPage());
+ page.setRegions(item.getRegions());
+ page.setSubPages(item.getSubPages());
+ mongoTemplate.save(page);
+ return page;
+ }
+
+ @Override
+ public void delete(Page item) {
+ mongoTemplate.remove(new Query(where("id").is(item.getId())),
MongoDbPage.class);
+ }
+}
Added:
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml?rev=1398274&view=auto
==============================================================================
---
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
(added)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/main/resources/org/apache/rave/persistence-applicationContext.xml
Mon Oct 15 13:00:39 2012
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xmlns:p="http://www.springframework.org/schema/p"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:mongo="http://www.springframework.org/schema/data/mongo"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+
http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
+
+ <!-- make the the portal.properties props available to autowire injectors,
location of the properties can
+ be overridden by setting a system property "portal.override.properties"
-->
+ <bean id="portalPropertyPlaceholder"
class="org.apache.rave.util.OverridablePropertyPlaceholderConfigurer">
+ <property name="systemPropertiesModeName"
value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
+ <property name="systemPropertyName"
value="portal.override.properties"/>
+ <property name="location" value="classpath:portal.properties"/>
+ </bean>
+
+ <!-- bean post-processor for JPA annotations -->
+ <context:annotation-config/>
+
+ <!-- enable the use of the @AspectJ style of Spring AOP -->
+ <aop:aspectj-autoproxy/>
+
+ <mongo:mongo id="mongo" host="${portal.mongo.host}"
port="${portal.mongo.port}"/>
+ <bean id="mongoTemplate"
class="org.springframework.data.mongodb.core.MongoTemplate">
+ <constructor-arg ref="mongo"/>
+ <constructor-arg name="databaseName" value="rave"/>
+ </bean>
+
+ <!-- rave-common component base-package scan (maybe move to a separate
common-applicationContext.xml?) -->
+ <context:component-scan base-package="org.apache.rave.service"/>
+ <context:component-scan base-package="org.apache.rave.synchronization"/>
+
+ <!-- rave-core component base-package scan -->
+ <context:component-scan base-package="org.apache.rave.portal.model"/>
+ <context:component-scan base-package="org.apache.rave.portal.repository"/>
+
+ <!-- Password encoding -->
+ <bean
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"
id="passwordEncoder">
+ <!--<constructor-arg index="0" value="10"/>-->
+ </bean>
+
+ <!-- email settings -->
+ <bean id="emailServiceMailMessage"
class="org.springframework.mail.SimpleMailMessage">
+ <property name="from" value="${portal.mail.sender}"/>
+ <property name="replyTo" value="${portal.mail.replyto}"/>
+ </bean>
+
+ <bean id="freemarkerMailConfiguration"
class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
+ <property name="templateLoaderPath" value="/WEB-INF/mailtemplates"/>
+ </bean>
+ <bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
+ <property name="host" value="${portal.mail.host}"/>
+ <property name="password" value="${portal.mail.password}"/>
+ <property name="username" value="${portal.mail.username}"/>
+ <property name="port" value="${portal.mail.port}"/>
+ <property name="protocol" value="${portal.mail.protocol}"/>
+ <!-- NOTE: if using Gmail, you'll need following properties-->
+ <!--<property name="javaMailProperties">
+ <props>
+ <prop key="mail.smtp.auth">true</prop>
+ <prop key="mail.smtp.starttls.enable">true</prop>
+ <prop key="mail.smtp.timeout">8500</prop>
+ </props>
+ </property>-->
+ </bean>
+ <!--
+ NOTE: to use mail session you'll need to configure following within
catalina_home/conf/context.xml
+ <Resource name="mail/Session" auth="Container" type="javax.mail.Session"
mail.smtp.host="my.mail.host"/>
+
+ Further, activation & mail jars needs to be placed within
catalina_home/lib folder
+ -->
+ <!--
+ <bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
+ <property name="session" ref="mailSession"/>
+ </bean>
+ <bean id="mailSession"
class="org.springframework.jndi.JndiObjectFactoryBean">
+ <property name="jndiName" value="java:comp/env/mail/Session"/>
+ </bean>
+ -->
+
+ <bean id="restTemplate"
class="org.springframework.web.client.RestTemplate" />
+
+ <bean id="staticContentCache"
class="org.apache.rave.service.impl.DefaultStaticContentFetcherService">
+ <constructor-arg ref="restTemplate"/>
+ <constructor-arg>
+ <list>
+ <!-- example of a Static Content source that doesn't have any
string token placeholders in its content body
+ <bean class="org.apache.rave.model.StaticContent">
+ <constructor-arg index="0" value="standardCompanyHeader"/>
+ <constructor-arg index="1"
value="${company.header.host}/content/standard_header.html"/>
+ <constructor-arg index="2">
+ <null/>
+ </constructor-arg>
+ </bean>
+ -->
+ <!-- example of a Static Content source that has string token
placeholders
+ <bean class="org.apache.rave.model.StaticContent">
+ <constructor-arg index="0"
value="environmentSpecificContent"/>
+ <constructor-arg index="1"
value="${company.header.host}/content/footer.html"/>
+ <constructor-arg index="2">
+ <map>
+ <entry key="\{supportEmail\}"
value="${raveproperty.supportemail}"/>
+ <entry key="\{productVersion\}"
value="${raveproperty.version}"/>
+ </map>
+ </constructor-arg>
+ </bean>
+ -->
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <!-- example on how to setup a Spring Timer to refresh the Static Content
cache at a fixed interval
+ <bean id="refreshStaticContentCacheScheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
+ <property name="delay" value="5000"/>
+ <property name="period" value="300000"/>
+ <property name="timerTask">
+ <bean
class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean"
+ p:targetObject-ref="staticContentCache"
p:targetMethod="refreshAll"/>
+ </property>
+ </bean>
+ <bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
+ <property name="daemon" value="true"/>
+ <property name="scheduledTimerTasks">
+ <list>
+ <ref local="refreshStaticContentCacheScheduledTask"/>
+ </list>
+ </property>
+ </bean>
+ -->
+</beans>
\ No newline at end of file
Added:
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=1398274&view=auto
==============================================================================
---
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/test/java/org/apache/rave/portal/repository/impl/MongoDbPageRepositoryTest.java
Mon Oct 15 13:00:39 2012
@@ -0,0 +1,73 @@
+package org.apache.rave.portal.repository.impl;
+
+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.PageRepository;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: mfranklin
+ * Date: 10/14/12
+ * Time: 8:14 PM
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-applicationContext.xml"})
+public class MongoDbPageRepositoryTest {
+
+ @Autowired
+ PageRepository repository;
+
+ @Test
+ @Ignore
+ public void MongoTest() {
+ Page page = new PageImpl();
+ //PageUser p = new PageUserImpl(new UserImpl(12345L), page);
+ page.setName("PAGE NAME");
+ page.setMembers(Lists.<PageUser>newLinkedList());
+ //page.getMembers().add(p);
+ page.setOwner(new UserImpl(123456L));
+ page.setRegions(Lists.<Region>newLinkedList());
+
+ Region region = new RegionImpl();
+ //region.setPage(page);
+ region.setRegionWidgets(Lists.<RegionWidget>newLinkedList());
+ page.getRegions().add(region);
+
+ RegionWidget regionWidget = new RegionWidgetImpl();
+ //regionWidget.setRegion(region);
+
regionWidget.setPreferences(Lists.<RegionWidgetPreference>newLinkedList());
+ region.getRegionWidgets().add(regionWidget);
+
+ RegionWidgetPreference preference = new RegionWidgetPreferenceImpl();
+ preference.setName("PREF NAME");
+ preference.setValue("PREF_VALUE");
+ regionWidget.getPreferences().add(preference);
+
+ Widget widget = new WidgetImpl(13223L);
+ regionWidget.setWidget(widget);
+
+ page.setPageType(PageType.USER);
+ page.setPageLayout(new PageLayoutImpl("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.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).getPreferences().get(0),
is(equalTo(saved.getRegions().get(0).getRegionWidgets().get(0).getPreferences().get(0))));
+ }
+}
Copied:
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/portal.properties
(from r1397668,
rave/branches/mongo/rave-portal/src/test/resources/portal.properties)
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/portal.properties?p2=rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/portal.properties&p1=rave/branches/mongo/rave-portal/src/test/resources/portal.properties&r1=1397668&r2=1398274&rev=1398274&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal/src/test/resources/portal.properties
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/portal.properties
Mon Oct 15 13:00:39 2012
@@ -50,6 +50,12 @@ portal.openjpa.RuntimeUnenhancedClasses=
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict,
JoinForeignKeyDeleteAction=restrict
+###################################################################
+# Properties related to the Rave MongoDB implementation #
+###################################################################
+portal.mongo.host=localhost
+portal.mongo.port=27017
+
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
# captcha settings
Copied:
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/test-applicationContext.xml
(from r1397668,
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml)
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/test-applicationContext.xml?p2=rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/test-applicationContext.xml&p1=rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml&r1=1397668&r2=1398274&rev=1398274&view=diff
==============================================================================
---
rave/branches/mongo/rave-components/rave-jpa/src/test/resources/test-applicationContext.xml
(original)
+++
rave/branches/mongo/rave-components/rave-mongodb/src/test/resources/test-applicationContext.xml
Mon Oct 15 13:00:39 2012
@@ -22,6 +22,6 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <import resource="classpath:org/apache/rave/jpa-applicationContext.xml"/>
+ <import
resource="classpath:org/apache/rave/persistence-applicationContext.xml"/>
</beans>
\ No newline at end of file
Modified: rave/branches/mongo/rave-portal-dependencies/pom.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-dependencies/pom.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal-dependencies/pom.xml (original)
+++ rave/branches/mongo/rave-portal-dependencies/pom.xml Mon Oct 15 13:00:39
2012
@@ -46,6 +46,10 @@
</dependency>
<dependency>
<groupId>org.apache.rave</groupId>
+ <artifactId>rave-jpa</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.rave</groupId>
<artifactId>rave-web</artifactId>
</dependency>
<dependency>
@@ -64,6 +68,16 @@
</dependency>
<dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
@@ -130,37 +144,4 @@
</dependencies>
- <profiles>
- <profile>
- <id>jpa</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.apache.rave</groupId>
- <artifactId>rave-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- </dependency>
-
- </dependencies>
- </profile>
- <profile>
- <id>mongodb</id>
- <dependencies>
- <dependency>
- <groupId>org.apache.rave</groupId>
- <artifactId>rave-mongodb</artifactId>
- </dependency>
- </dependencies>
- </profile>
- </profiles>
-
</project>
Modified:
rave/branches/mongo/rave-portal-resources/src/main/resources/portal.properties
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal-resources/src/main/resources/portal.properties?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
---
rave/branches/mongo/rave-portal-resources/src/main/resources/portal.properties
(original)
+++
rave/branches/mongo/rave-portal-resources/src/main/resources/portal.properties
Mon Oct 15 13:00:39 2012
@@ -35,7 +35,11 @@ portal.opensocial_security.domain=defaul
# the default page name to create for new users
portal.page.default_name=Main
-#Default Rave Portal database settings with in memory H2 database
+###################################################################
+# Properties related to the Rave JPA implementation #
+###################################################################
+
+# Default Rave Portal database settings with in memory H2 database
# rave.database.location is replaced during the build
portal.dataSource.url=jdbc:h2:${rave.database.location};AUTO_SERVER=TRUE
portal.dataSource.driver=org.h2.Driver
@@ -53,6 +57,14 @@ portal.openjpa.RuntimeUnenhancedClasses=
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict,
JoinForeignKeyDeleteAction=restrict
+
+###################################################################
+# Properties related to the Rave MongoDB implementation #
+###################################################################
+portal.mongo.host=localhost
+portal.mongo.port=27017
+
+
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
provider.wookie.adminUsername=
Modified: rave/branches/mongo/rave-portal/pom.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal/pom.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal/pom.xml (original)
+++ rave/branches/mongo/rave-portal/pom.xml Mon Oct 15 13:00:39 2012
@@ -59,6 +59,7 @@
<artifactId>rave-portal-dependencies</artifactId>
<type>pom</type>
</dependency>
+
<dependency>
<groupId>org.apache.rave</groupId>
<artifactId>rave-portal-resources</artifactId>
@@ -204,7 +205,7 @@
<!-- un-comment following property for: Loading
the SizeOfAgent will probably fail,
as you are running on Apple OS X and have a value
set for java.io.tmpdir -->
<!--
<net.sf.ehcache.pool.sizeof.AgentSizeOf.bypass>true</net.sf.ehcache.pool.sizeof.AgentSizeOf.bypass>
-->
-
+
<!-- Documentation:
http://rave.apache.org/documentation/host-configuration.html -->
<!--
<portal.override.properties>/path/to/custom.portal.properties</portal.override.properties>
@@ -287,6 +288,25 @@
</plugins>
</build>
</profile>
+ <profile>
+ <id>mongodb</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-portal-dependencies</artifactId>
+ <type>pom</type>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-jpa</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.rave</groupId>
+ <artifactId>rave-mongodb</artifactId>
+ </dependency>
+ </dependencies>
+ </profile>
</profiles>
-
</project>
Modified: rave/branches/mongo/rave-portal/src/test/resources/portal.properties
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal/src/test/resources/portal.properties?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
--- rave/branches/mongo/rave-portal/src/test/resources/portal.properties
(original)
+++ rave/branches/mongo/rave-portal/src/test/resources/portal.properties Mon
Oct 15 13:00:39 2012
@@ -50,6 +50,12 @@ portal.openjpa.RuntimeUnenhancedClasses=
portal.openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
portal.openjpa.jdbc.MappingDefaults=ForeignKeyDeleteAction=restrict,
JoinForeignKeyDeleteAction=restrict
+###################################################################
+# Properties related to the Rave MongoDB implementation #
+###################################################################
+portal.mongo.host=localhost
+portal.mongo.port=27017
+
provider.wookie.wookieServerUrl=http://localhost:8080/wookie
provider.wookie.wookieApiKey=TEST
# captcha settings
Modified:
rave/branches/mongo/rave-portal/src/test/resources/test-applicationContext.xml
URL:
http://svn.apache.org/viewvc/rave/branches/mongo/rave-portal/src/test/resources/test-applicationContext.xml?rev=1398274&r1=1398273&r2=1398274&view=diff
==============================================================================
---
rave/branches/mongo/rave-portal/src/test/resources/test-applicationContext.xml
(original)
+++
rave/branches/mongo/rave-portal/src/test/resources/test-applicationContext.xml
Mon Oct 15 13:00:39 2012
@@ -23,7 +23,7 @@
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:org/apache/rave/core-applicationContext.xml"/>
- <import resource="classpath:org/apache/rave/jpa-applicationContext.xml"/>
+ <import
resource="classpath:org/apache/rave/persistence-applicationContext.xml"/>
<import resource="classpath:org/apache/rave/web-applicationContext.xml"/>
<import
resource="classpath:org/apache/rave/opensocial-provider-applicationContext.xml"/>