You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2013/10/15 21:14:33 UTC

svn commit: r1532495 - in /jackrabbit/oak/trunk/oak-run: pom.xml src/main/java/org/apache/jackrabbit/oak/run/Main.java

Author: jukka
Date: Tue Oct 15 19:14:33 2013
New Revision: 1532495

URL: http://svn.apache.org/r1532495
Log:
OAK-806: Content migration from Jackrabbit to Oak

Add an upgrade mode to oak-run. For now it only does Jackrabbit 2.x to TarMK upgrades.

Modified:
    jackrabbit/oak/trunk/oak-run/pom.xml
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java

Modified: jackrabbit/oak/trunk/oak-run/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/pom.xml?rev=1532495&r1=1532494&r2=1532495&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-run/pom.xml Tue Oct 15 19:14:33 2013
@@ -129,6 +129,11 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>oak-upgrade</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <version>1.3.158</version>

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1532495&r1=1532494&r2=1532495&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Tue Oct 15 19:14:33 2013
@@ -16,11 +16,14 @@
  */
 package org.apache.jackrabbit.oak.run;
 
+import java.io.File;
 import java.io.InputStream;
 import java.util.Properties;
 
 import javax.jcr.Repository;
 
+import org.apache.jackrabbit.core.RepositoryContext;
+import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.mk.api.MicroKernel;
 import org.apache.jackrabbit.mk.core.MicroKernelImpl;
 import org.apache.jackrabbit.oak.Oak;
@@ -29,7 +32,10 @@ import org.apache.jackrabbit.oak.benchma
 import org.apache.jackrabbit.oak.http.OakServlet;
 import org.apache.jackrabbit.oak.jcr.Jcr;
 import org.apache.jackrabbit.oak.kernel.KernelNodeStore;
+import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.upgrade.RepositoryUpgrade;
 import org.apache.jackrabbit.webdav.jcr.JCRWebdavServerServlet;
 import org.apache.jackrabbit.webdav.server.AbstractWebdavServlet;
 import org.apache.jackrabbit.webdav.simple.SimpleWebdavServlet;
@@ -61,12 +67,28 @@ public class Main {
             BenchmarkRunner.main(args);
         } else if ("server".equals(command)){
             new HttpServer(URI, args);
+        } else if ("upgrade".equals(command)) {
+            if (args.length == 2) {
+                upgrade(args[0], args[1]);
+            } else {
+                System.err.println("usage: upgrade <olddir> <newdir>");
+                System.exit(1);
+            }
         } else {
             System.err.println("Unknown command: " + command);
             System.exit(1);
         }
     }
 
+    private static void upgrade(String olddir, String newdir) throws Exception {
+        RepositoryContext source = RepositoryContext.create(
+                RepositoryConfig.create(new File(olddir)));
+        NodeStore target = new SegmentNodeStore(new FileStore(
+                new File(newdir), 256 * 1024 * 1024, false));
+        new RepositoryUpgrade(source, target).copy();
+        source.getRepository().shutdown();
+    }
+
     private static void printProductInfo() {
         String version = null;