add mongodb migration to java model
authorymh <ymh.work@gmail.com>
Mon, 01 Jun 2015 11:53:03 +0200
changeset 457 b38cf3d4cf1f
parent 444 19f0b7803aed
child 458 423bdf56d103
add mongodb migration to java model
client/js/models.js
server/java/renkan-core/src/main/java/org/iri_research/renkan/Constants.java
server/java/renkan-web/build.gradle
server/java/renkan-web/pom.xml
server/java/renkan-web/src/main/resources/META-INF/renkan.properties
server/java/renkan-web/src/main/resources/log4j.xml
server/java/renkan-web/src/main/resources/org/iri_research/renkan/migrations/001-set_schema_version-000-001.js
server/java/renkan-web/src/main/resources/org/iri_research/renkan/migrations/mongeez.xml
server/java/renkan-web/src/main/webapp/WEB-INF/mongo-config.xml
server/java/renkan-web/src/main/webapp/WEB-INF/renkan.properties
--- a/client/js/models.js	Fri May 29 14:57:37 2015 +0200
+++ b/client/js/models.js	Mon Jun 01 11:53:03 2015 +0200
@@ -296,6 +296,7 @@
         },
         toJSON : function() {
             var json = _.clone(this.attributes);
+            delete json.schemaVersion;
             json.schema_version = this.schemaVersion;
             for ( var attr in json) {
                 if ((json[attr] instanceof Backbone.Model) ||
--- a/server/java/renkan-core/src/main/java/org/iri_research/renkan/Constants.java	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-core/src/main/java/org/iri_research/renkan/Constants.java	Mon Jun 01 11:53:03 2015 +0200
@@ -18,7 +18,7 @@
     public final static String ANONYMOUS_USER_BASE_NAME = "Anonymous";
 
     public final static String UNKNOWN_SCHEMA_VERSION = "1";
-    public final static String SCHEMA_VERSION = "2";
+    public final static String SCHEMA_VERSION = "1";
 
     private final static EthernetAddress ETHERNET_ADRESS = EthernetAddress
             .fromInterface();
--- a/server/java/renkan-web/build.gradle	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-web/build.gradle	Mon Jun 01 11:53:03 2015 +0200
@@ -42,6 +42,7 @@
     hibernate_validator_version = '5.0.1.Final'
     jstl_version = '1.2'
     json_path_assert_version = '0.9.1'
+    mongeez_version = '0.9.4'
 }
 
 
@@ -107,6 +108,7 @@
     compile group: 'com.google.guava', name: 'guava', version:guava_version
     runtime group: 'javax.servlet', name: 'jstl', version:jstl_version
     runtime group: 'org.eclipse.jetty.aggregate', name: 'jetty-all', version:jetty_version
+    runtime group: 'org.mongeez', name: 'mongeez', version:mongeez_version
     testCompile group: 'org.glassfish.jersey.test-framework.providers', name: 'jersey-test-framework-provider-grizzly2', version:jersey_version
     testCompile group: 'org.springframework', name: 'spring-test', version:spring_version
     testCompile group: 'com.jayway.jsonpath', name: 'json-path-assert', version:json_path_assert_version
@@ -160,4 +162,3 @@
         into "static/data"
     }
 }
-
--- a/server/java/renkan-web/pom.xml	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-web/pom.xml	Mon Jun 01 11:53:03 2015 +0200
@@ -45,6 +45,7 @@
         <guava-version>17.0</guava-version>
         <json-path-version>0.9.1</json-path-version>
         <commons-io-version>2.4</commons-io-version>
+        <mongeez-version>0.9.4</mongeez-version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
@@ -631,6 +632,11 @@
             <version>${guava-version}</version>
         </dependency>
         <dependency>
+          <groupId>org.mongeez</groupId>
+          <artifactId>mongeez</artifactId>
+          <version>${mongeez-version}</version>
+        </dependency>
+        <dependency>
             <groupId>com.jayway.jsonpath</groupId>
             <artifactId>json-path-assert</artifactId>
             <version>${json-path-version}</version>
--- a/server/java/renkan-web/src/main/resources/META-INF/renkan.properties	Fri May 29 14:57:37 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-mongodb.host.name = localhost
-mongodb.host.port = 27017
-mongodb.db.name = renkan
-
-user.admin.name = admin
-#user.admin.password = admin
-user.admin.password = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
-
-renkan.pagination.size = 2
-renkan.coweb.debug = false
-renkan.coweb.websocket = true
\ No newline at end of file
--- a/server/java/renkan-web/src/main/resources/log4j.xml	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-web/src/main/resources/log4j.xml	Mon Jun 01 11:53:03 2015 +0200
@@ -2,11 +2,11 @@
 <!DOCTYPE log4j:configuration>
 
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
-    <param name="Target" value="System.out"/> 
-    <layout class="org.apache.log4j.PatternLayout"> 
-      <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n"/> 
-    </layout> 
+  <appender name="console" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out"/>
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n"/>
+    </layout>
   </appender>
   <logger name="org.iri_research.renkan">
     <level value="DEBUG" />
@@ -17,16 +17,18 @@
   <logger name="org.springframework.beans.factory">
       <level value="INFO" />
   </logger>
+  <logger name="org.mongeez">
+      <level value="INFO" />
+  </logger>
   <!--logger name="org.cometd">
       <level value="DEBUG" />
   </logger-->
   <!--logger name="org.coweb">
       <level value="DEBUG" />
   </logger-->
-  <root> 
-    <priority value ="WARN" /> 
-    <appender-ref ref="console" /> 
+  <root>
+    <priority value ="WARN" />
+    <appender-ref ref="console" />
   </root>
-   
+
 </log4j:configuration>
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/java/renkan-web/src/main/resources/org/iri_research/renkan/migrations/001-set_schema_version-000-001.js	Mon Jun 01 11:53:03 2015 +0200
@@ -0,0 +1,12 @@
+//mongeez formatted javascript
+//changeset ymh:001-set_schema_version-000-001
+
+db.projects.update(
+    {},
+    { $set: {
+        schema_version: "2"
+        }
+    },
+    false,
+    true
+);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/java/renkan-web/src/main/resources/org/iri_research/renkan/migrations/mongeez.xml	Mon Jun 01 11:53:03 2015 +0200
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<changeFiles>
+    <file path="001-set_schema_version-000-001.js"/>
+</changeFiles>
--- a/server/java/renkan-web/src/main/webapp/WEB-INF/mongo-config.xml	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-web/src/main/webapp/WEB-INF/mongo-config.xml	Mon Jun 01 11:53:03 2015 +0200
@@ -1,32 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xmlns:p="http://www.springframework.org/schema/p" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:p="http://www.springframework.org/schema/p"
     xmlns:mongo="http://www.springframework.org/schema/data/mongo"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:jpa="http://www.springframework.org/schema/data/jpa"
-	xsi:schemaLocation="
-	        http://www.springframework.org/schema/context
-            http://www.springframework.org/schema/context/spring-context.xsd
-	        http://www.springframework.org/schema/beans
-	   		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
-   			http://www.springframework.org/schema/data/mongo
-    		http://www.springframework.org/schema/data/mongo/spring-mongo-1.2.xsd
-            http://www.springframework.org/schema/data/jpa
-            http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">	
-	
-	<context:property-placeholder order="1000" ignore-unresolvable="true" ignore-resource-not-found="false" location="WEB-INF/renkan.properties"/>
-	<context:property-placeholder  order="1" ignore-unresolvable="true" ignore-resource-not-found="true" location="classpath:renkan_run.properties"/>
-	<!-- Default bean name is 'mongo' -->
-	<mongo:mongo host="${mongodb.host.name}" port="${mongodb.host.port}" />
-		
-	<!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->
-  	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
-  	    <constructor-arg ref="mongo"/>
-  		<constructor-arg value="${mongodb.db.name}"/>
-  		<property name="writeResultChecking" value="EXCEPTION"/>
-  	</bean>
-  	
-  	<mongo:repositories base-package="org.iri_research.renkan" factory-class="org.iri_research.renkan.repositories.RenkanRepositoryFactoryBean" />
+  xsi:schemaLocation="
+          http://www.springframework.org/schema/context
+          http://www.springframework.org/schema/context/spring-context.xsd
+          http://www.springframework.org/schema/beans
+          http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+          http://www.springframework.org/schema/data/mongo
+          http://www.springframework.org/schema/data/mongo/spring-mongo-1.2.xsd
+          http://www.springframework.org/schema/data/jpa
+          http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">
+
+  <context:property-placeholder order="1000" ignore-unresolvable="true" ignore-resource-not-found="false" location="WEB-INF/renkan.properties"/>
+  <context:property-placeholder  order="1" ignore-unresolvable="true" ignore-resource-not-found="true" location="classpath:renkan_run.properties"/>
+  <!-- Default bean name is 'mongo' -->
+  <mongo:mongo host="${mongodb.host.name}" port="${mongodb.host.port}" />
+
+  <!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->
+  <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
+      <constructor-arg ref="mongo"/>
+    <constructor-arg value="${mongodb.db.name}"/>
+    <property name="writeResultChecking" value="EXCEPTION"/>
+  </bean>
+
+  <mongo:repositories base-package="org.iri_research.renkan" factory-class="org.iri_research.renkan.repositories.RenkanRepositoryFactoryBean" />
+
+  <bean id="mongeez" class="org.mongeez.MongeezRunner">
+    <property name="mongo" ref="mongo"/>
+    <property name="executeEnabled" value="true"/>
+    <property name="dbName" value="${mongodb.db.name}"/>
+    <property name="file" value="classpath:org/iri_research/renkan/migrations/mongeez.xml"/>
+  </bean>
 
 </beans>
--- a/server/java/renkan-web/src/main/webapp/WEB-INF/renkan.properties	Fri May 29 14:57:37 2015 +0200
+++ b/server/java/renkan-web/src/main/webapp/WEB-INF/renkan.properties	Mon Jun 01 11:53:03 2015 +0200
@@ -1,6 +1,6 @@
 mongodb.host.name = localhost
 mongodb.host.port = 27017
-mongodb.db.name = renkan_05_20
+mongodb.db.name = renkan
 
 user.admin.name = admin
 #user.admin.password = admin