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 mr...@apache.org on 2016/04/12 15:30:42 UTC

svn commit: r1738802 - in /jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap: AbstractServer.java InternalLdapServer.java LargeLdapProviderTest.java

Author: mreutegg
Date: Tue Apr 12 13:30:42 2016
New Revision: 1738802

URL: http://svn.apache.org/viewvc?rev=1738802&view=rev
Log:
OAK-4191: Speed up LargeLdapProviderTest

Replace LdifPartition with in-memory AvlPartition and use a single call to add multiple group members.

Modified:
    jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/AbstractServer.java
    jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
    jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LargeLdapProviderTest.java

Modified: jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/AbstractServer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/AbstractServer.java?rev=1738802&r1=1738801&r2=1738802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/AbstractServer.java (original)
+++ jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/AbstractServer.java Tue Apr 12 13:30:42 2016
@@ -55,7 +55,7 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.api.InstanceLayout;
 import org.apache.directory.server.core.api.schema.SchemaPartition;
 import org.apache.directory.server.core.jndi.CoreContextFactory;
-import org.apache.directory.server.core.partition.ldif.LdifPartition;
+import org.apache.directory.server.core.partition.impl.avl.AvlPartition;
 import org.apache.directory.server.core.shared.DefaultDnFactory;
 import org.apache.directory.server.ldap.LdapServer;
 import org.apache.directory.server.ldap.handlers.extended.StartTlsHandler;
@@ -199,24 +199,21 @@ public abstract class AbstractServer {
         directoryService.setSchemaManager(schemaManager);
         directoryService.setDnFactory(new DefaultDnFactory(directoryService.getSchemaManager(), cache.getCache("dnCache")));
 
-        LdifPartition schLdifPart = new LdifPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
+        AvlPartition schLdifPart = new AvlPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
         schLdifPart.setId("schema");
-        schLdifPart.setPartitionPath(new File(directoryService.getInstanceLayout().getPartitionsDirectory(), "schema").toURI());
         schLdifPart.setSuffixDn(directoryService.getDnFactory().create(ServerDNConstants.CN_SCHEMA_DN));
         SchemaPartition schPart = new SchemaPartition(directoryService.getSchemaManager());
         schPart.setWrappedPartition(schLdifPart);
         directoryService.setSchemaPartition(schPart);
 
 
-        LdifPartition sysPart = new LdifPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
+        AvlPartition sysPart = new AvlPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
         sysPart.setId(SystemSchemaConstants.SCHEMA_NAME);
-        sysPart.setPartitionPath(new File(directoryService.getInstanceLayout().getPartitionsDirectory(), SystemSchemaConstants.SCHEMA_NAME).toURI());
         sysPart.setSuffixDn(directoryService.getDnFactory().create(ServerDNConstants.SYSTEM_DN));
         directoryService.setSystemPartition(sysPart);
 
-        LdifPartition examplePart = new LdifPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
+        AvlPartition examplePart = new AvlPartition(directoryService.getSchemaManager(), directoryService.getDnFactory());
         examplePart.setId("example");
-        examplePart.setPartitionPath(new File(directoryService.getInstanceLayout().getPartitionsDirectory(), "example").toURI());
         examplePart.setSuffixDn(directoryService.getDnFactory().create(EXAMPLE_DN));
         examplePart.setCacheService(cache);
         directoryService.addPartition(examplePart);

Modified: jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java?rev=1738802&r1=1738801&r2=1738802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java (original)
+++ jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java Tue Apr 12 13:30:42 2016
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.oak.security.authentication.ldap;
 
+import javax.naming.directory.Attribute;
+import javax.naming.directory.BasicAttribute;
 import javax.naming.directory.BasicAttributes;
 import javax.naming.directory.DirContext;
 import javax.naming.ldap.LdapContext;
@@ -76,6 +78,17 @@ class InternalLdapServer extends Abstrac
         ctxt.modifyAttributes(groupDN, DirContext.ADD_ATTRIBUTE, attrs);
     }
 
+    public void addMembers(String groupDN, Iterable<String> memberDNs) throws Exception {
+        LdapContext ctxt = getWiredContext();
+        Attribute attr = new BasicAttribute("member");
+        for (String dn : memberDNs) {
+            attr.add(dn);
+        }
+        BasicAttributes attrs = new BasicAttributes();
+        attrs.put(attr);
+        ctxt.modifyAttributes(groupDN, DirContext.ADD_ATTRIBUTE, attrs);
+    }
+
     public void removeMember(String groupDN, String memberDN) throws Exception {
         LdapContext ctxt = getWiredContext();
         BasicAttributes attrs = new BasicAttributes();

Modified: jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LargeLdapProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LargeLdapProviderTest.java?rev=1738802&r1=1738801&r2=1738802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LargeLdapProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LargeLdapProviderTest.java Tue Apr 12 13:30:42 2016
@@ -135,12 +135,14 @@ public class LargeLdapProviderTest {
         GROUP_DN = server.addGroup(GROUP_NAME, USER_DN);
         members.add(USER_DN);
 
+        List<String> userDNs = new ArrayList<String>();
         for (int i = 0; i < NUM_USERS; i++) {
             final String userId = "user-" + i;
             String userDN = server.addUser(userId, "test", userId, "test");
-            LDAP_SERVER.addMember(GROUP_DN, userDN);
+            userDNs.add(userDN);
             members.add(userDN);
         }
+        LDAP_SERVER.addMembers(GROUP_DN, userDNs);
         TEST_MEMBERS = members.toArray(new String[members.size()]);
     }