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 an...@apache.org on 2013/10/10 18:31:40 UTC

svn commit: r1531044 - in /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark: BenchmarkRunner.java ConcurrentReadAccessControlledTreeTest2.java

Author: angela
Date: Thu Oct 10 16:31:39 2013
New Revision: 1531044

URL: http://svn.apache.org/r1531044
Log:
OAK-527: more benchmark tests

Added:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest2.java
      - copied, changed from r1530184, jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java
Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1531044&r1=1531043&r2=1531044&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java Thu Oct 10 16:31:39 2013
@@ -115,12 +115,17 @@ public class BenchmarkRunner {
                     runAsAdmin.value(options),
                     itemsToRead.value(options),
                     report.value(options)),
+            new ConcurrentReadDeepTreeTest(
+                    runAsAdmin.value(options),
+                    itemsToRead.value(options),
+                    bgReaders.value(options),
+                    report.value(options)),
             new ConcurrentReadAccessControlledTreeTest(
                     runAsAdmin.value(options),
                     itemsToRead.value(options),
                     bgReaders.value(options),
                     report.value(options)),
-            new ConcurrentReadDeepTreeTest(
+            new ConcurrentReadAccessControlledTreeTest2(
                     runAsAdmin.value(options),
                     itemsToRead.value(options),
                     bgReaders.value(options),

Copied: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest2.java (from r1530184, jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest2.java?p2=jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest2.java&p1=jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java&r1=1530184&r2=1531044&rev=1531044&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest2.java Thu Oct 10 16:31:39 2013
@@ -16,6 +16,9 @@
  */
 package org.apache.jackrabbit.oak.benchmark;
 
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.List;
 import javax.jcr.ItemVisitor;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
@@ -26,18 +29,22 @@ import javax.jcr.security.AccessControlP
 import javax.jcr.security.Privilege;
 import javax.jcr.util.TraversingItemVisitor;
 
-import org.apache.jackrabbit.core.security.principal.EveryonePrincipal;
+import org.apache.jackrabbit.api.JackrabbitSession;
+import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
 import org.apache.jackrabbit.util.Text;
 
 /**
- * Concurrently reads random items from the deep tree where every 10th node is
- * access controlled.
+ * Concurrently reads random items from the deep tree where every 100th node
+ * is access controlled and each policy node contains 100 ACEs for different
+ * principals.
  */
-public class ConcurrentReadAccessControlledTreeTest
-        extends ConcurrentReadDeepTreeTest {
+public class ConcurrentReadAccessControlledTreeTest2 extends ConcurrentReadDeepTreeTest {
 
-    public ConcurrentReadAccessControlledTreeTest(
+    List<Principal> principals = new ArrayList();
+
+    public ConcurrentReadAccessControlledTreeTest2(
             boolean runAsAdmin, int itemsToRead, int bgReaders, boolean doReport) {
         super(runAsAdmin, itemsToRead, bgReaders, doReport);
     }
@@ -46,11 +53,20 @@ public class ConcurrentReadAccessControl
     protected void beforeSuite() throws Exception {
         super.beforeSuite();
 
+        UserManager uMgr = ((JackrabbitSession) adminSession).getUserManager();
+        for (int i = 0; i < 100; i++) {
+            Authorizable a = uMgr.getAuthorizable("group" + i);
+            if (a == null) {
+                a = uMgr.createGroup("group" + i);
+                principals.add(a.getPrincipal());
+            }
+        }
+
         ItemVisitor visitor = new TraversingItemVisitor.Default() {
             int counter = 0;
             @Override
             protected void entering(Node node, int level) throws RepositoryException {
-                if (++counter == 10) {
+                if (++counter == 100) {
                     addPolicy(node);
                     counter = 0;
                 }
@@ -80,10 +96,11 @@ public class ConcurrentReadAccessControl
                                 acMgr.privilegeFromName(Privilege.JCR_READ),
                                 acMgr.privilegeFromName(Privilege.JCR_READ_ACCESS_CONTROL)
                         };
-                        if (acl.addAccessControlEntry(EveryonePrincipal.getInstance(), privileges)) {
-                            acMgr.setPolicy(path, acl);
-                            node.getSession().save();
+                        for (Principal principal : principals) {
+                            acl.addAccessControlEntry(principal, privileges);
                         }
+                        acMgr.setPolicy(path, acl);
+                        adminSession.save();
                     }
                 }
             }