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