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 me...@apache.org on 2013/02/07 16:57:04 UTC

svn commit: r1443579 - in /jackrabbit/oak/trunk/oak-mongomk-perf: pom.xml src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java

Author: meteatamel
Date: Thu Feb  7 15:57:03 2013
New Revision: 1443579

URL: http://svn.apache.org/viewvc?rev=1443579&view=rev
Log:
Made oak-mongomk-perf work with the latest oak-mongomk code

Modified:
    jackrabbit/oak/trunk/oak-mongomk-perf/pom.xml
    jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java
    jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java

Modified: jackrabbit/oak/trunk/oak-mongomk-perf/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-perf/pom.xml?rev=1443579&r1=1443578&r2=1443579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-perf/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-mongomk-perf/pom.xml Thu Feb  7 15:57:03 2013
@@ -1,14 +1,14 @@
 <?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 
+<!-- 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. -->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.jackrabbit</groupId>
 		<artifactId>oak-parent</artifactId>
-		<version>0.6-SNAPSHOT</version>
+		<version>0.7-SNAPSHOT</version>
 		<relativePath>../oak-parent/pom.xml</relativePath>
 	</parent>
 
@@ -104,7 +104,7 @@
 		<dependency>
 			<groupId>org.apache.jackrabbit</groupId>
 			<artifactId>oak-mk-perf</artifactId>
-			<version>0.6-SNAPSHOT</version>
+			<version>0.7-SNAPSHOT</version>
 		</dependency>
 	</dependencies>
 

Modified: jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java?rev=1443579&r1=1443578&r2=1443579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/BlobStoreFS.java Thu Feb  7 15:57:03 2013
@@ -23,15 +23,11 @@ import org.apache.jackrabbit.mk.blobs.Bl
 
 public class BlobStoreFS implements  BlobStore{
 
-    private final File rootDir;
-
     public BlobStoreFS(String rootPath) {
         File rootDir = new File(rootPath);
         if (!rootDir.isDirectory()) {
             rootDir.mkdirs();
         }
-
-        this.rootDir = rootDir;
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java?rev=1443579&r1=1443578&r2=1443579&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk-perf/src/main/java/org/apache/jackrabbit/mongomk/perf/RandomJsopGenerator.java Thu Feb  7 15:57:03 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.mongomk.perf;
 
+import java.util.Iterator;
 import java.util.Random;
 import java.util.UUID;
 
@@ -26,48 +27,11 @@ import org.apache.jackrabbit.oak.commons
 
 public class RandomJsopGenerator {
 
-    public static class RandomJsop {
-        private final String jsop;
-        private final String message;
-        private final String path;
-
-        public RandomJsop(String path, String jsop, String message) {
-            this.path = path;
-            this.jsop = jsop;
-            this.message = message;
-        }
-
-        public String getJsop() {
-            return this.jsop;
-        }
-
-        public String getMessage() {
-            return this.message;
-        }
-
-        public String getPath() {
-            return this.path;
-        }
-    }
-
     private static final int OP_ADD_NODE = 0;
-
-    private static final int OP_ADD_PROP = 1;
-
-    public static void main(String[] args) throws Exception {
-        RandomJsopGenerator gen = new RandomJsopGenerator();
-        for (int i = 0; i < 10; ++i) {
-            RandomJsop rand = gen.nextRandom();
-            System.out.println(rand.path);
-            System.out.println(rand.jsop);
-            System.out.println();
-        }
-    }
+    private static final int OP_SET_PROP = 1;
 
     private Node[] descendants;
-
     private String path;
-
     private Random random;
 
     public RandomJsopGenerator() throws Exception {
@@ -77,7 +41,7 @@ public class RandomJsopGenerator {
     public RandomJsop nextRandom() {
         JsopBuilder jsopBuilder = new JsopBuilder();
 
-        int numOps = this.random.nextInt(10) + 1;
+        int numOps = random.nextInt(10) + 1;
         for (int i = 0; i < numOps; ++i) {
             if (this.createRandomOp(jsopBuilder)) {
                 jsopBuilder.newline();
@@ -86,26 +50,29 @@ public class RandomJsopGenerator {
             }
         }
 
-        return new RandomJsop(this.path, jsopBuilder.toString(), UUID.randomUUID().toString());
+        return new RandomJsop(path, jsopBuilder.toString(), UUID.randomUUID().toString());
     }
 
     public void setSeed(String path, String json) throws Exception {
         this.path = path;
         String all = String.format("{ \"%s\" : %s }", PathUtils.getName(path), json);
         Node node = NodeBuilder.build(all, path);
-        // FIXME - This needs to change to node.getChildNodeEntries(0, -1).
-        //this.descendants = node.getDescendants(false).toArray(new Node[0]);
-        this.random = new Random();
+        descendants = new Node[node.getChildNodeCount()];
+        int i = 0;
+        for (Iterator<Node> it = node.getChildNodeEntries(0, -1); it.hasNext(); ) {
+            descendants[i++] = it.next();
+        }
+        random = new Random();
     }
 
     private boolean createRandomAddNodeOp(JsopBuilder jsopBuilder) {
-        Node random = this.selectRandom();
+        Node random = selectRandom();
 
-        String childName = this.createRandomString();
+        String childName = createRandomString();
         String newPath = PathUtils.concat(random.getPath(), childName);
         String addPath = newPath;
-        if (!"".equals(this.path)) {
-            addPath = PathUtils.relativize(this.path, newPath);
+        if (!"".equals(path)) {
+            addPath = PathUtils.relativize(path, newPath);
         }
 
         jsopBuilder.tag('+');
@@ -116,56 +83,52 @@ public class RandomJsopGenerator {
         return true;
     }
 
-    private boolean createRandomAddPropOp(JsopBuilder jsopBuilder) {
-        int next = this.random.nextInt(this.descendants.length);
-        Node random = this.descendants[next];
-        String addPath = PathUtils.relativize(this.path, random.getPath());
+    private boolean createRandomSetPropOp(JsopBuilder jsopBuilder) {
+        int next = random.nextInt(this.descendants.length);
+        Node node = descendants[next];
+
+        String addPath = PathUtils.relativize(path, node.getPath());
         if ("".equals(addPath)) {
             addPath = "/";
         }
 
-        jsopBuilder.tag('+');
-        jsopBuilder.key(addPath);
-        jsopBuilder.object();
-
-        int numProps = this.random.nextInt(10) + 1;
+        int numProps = random.nextInt(10) + 1;
         for (int i = 0; i < numProps; ++i) {
-            String propName = this.createRandomString();
-            String propValue = this.createRandomString();
+            String propName = createRandomString();
+            String propValue = createRandomString();
 
-            jsopBuilder.key(propName);
+            jsopBuilder.tag('^');
+            jsopBuilder.key(PathUtils.concat(addPath, propName));
             jsopBuilder.value(propValue);
         }
 
-        jsopBuilder.endObject();
-
         return true;
     }
 
     private boolean createRandomOp(JsopBuilder jsopBuilder) {
         boolean performed = false;
 
-        int op = this.random.nextInt(2);
+        int op = random.nextInt(2);
 
         switch (op) {
-        case OP_ADD_NODE: {
-            performed = this.createRandomAddNodeOp(jsopBuilder);
-            break;
-        }
-        case OP_ADD_PROP: {
-            performed = this.createRandomAddPropOp(jsopBuilder);
-            break;
-        }
+            case OP_ADD_NODE: {
+                performed = createRandomAddNodeOp(jsopBuilder);
+                break;
+            }
+            case OP_SET_PROP: {
+                performed = createRandomSetPropOp(jsopBuilder);
+                break;
+            }
         }
 
         return performed;
     }
 
     private String createRandomString() {
-        int length = this.random.nextInt(6) + 5;
+        int length = random.nextInt(6) + 5;
         char[] chars = new char[length];
         for (int i = 0; i < length; ++i) {
-            char rand = (char) (this.random.nextInt(65) + 59);
+            char rand = (char) (random.nextInt(65) + 59);
             if (Character.isLetterOrDigit(rand)) {
                 chars[i] = rand;
             } else {
@@ -177,11 +140,43 @@ public class RandomJsopGenerator {
     }
 
     private Node selectRandom() {
-        Node randomNode = null;
+        int next = random.nextInt(this.descendants.length);
+        Node randomNode = descendants[next];
+        return randomNode;
+    }
 
-        int next = this.random.nextInt(this.descendants.length);
-        randomNode = this.descendants[next];
+    public static void main(String[] args) throws Exception {
+        RandomJsopGenerator gen = new RandomJsopGenerator();
+        for (int i = 0; i < 10; ++i) {
+            RandomJsop rand = gen.nextRandom();
+            System.out.println(rand.path);
+            System.out.println(rand.jsop);
+            System.out.println();
+        }
+    }
 
-        return randomNode;
+    public static class RandomJsop {
+
+        private final String jsop;
+        private final String message;
+        private final String path;
+
+        public RandomJsop(String path, String jsop, String message) {
+            this.path = path;
+            this.jsop = jsop;
+            this.message = message;
+        }
+
+        public String getJsop() {
+            return jsop;
+        }
+
+        public String getMessage() {
+            return message;
+        }
+
+        public String getPath() {
+            return path;
+        }
     }
-}
+}
\ No newline at end of file