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();
}
}
}