You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by lu...@apache.org on 2015/10/12 20:41:36 UTC

svn commit: r1708198 - in /directory/apacheds/trunk/server-integ/src/test: java/org/apache/directory/server/operations/modifydn/ resources/

Author: lucastheisen
Date: Mon Oct 12 18:41:35 2015
New Revision: 1708198

URL: http://svn.apache.org/viewvc?rev=1708198&view=rev
Log:
moved integration test showing rename issue into separate class DIRSERVER_1974_IT.java

Added:
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java   (with props)
    directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif   (with props)
Modified:
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/ModifyRdnIT.java
    directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties

Added: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java?rev=1708198&view=auto
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java (added)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java Mon Oct 12 18:41:35 2015
@@ -0,0 +1,338 @@
+/*
+ *  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.
+ * 
+ */
+package org.apache.directory.server.operations.modifydn;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+
+import org.apache.directory.api.ldap.model.entry.DefaultEntry;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.message.AddRequest;
+import org.apache.directory.api.ldap.model.message.AddResponse;
+import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
+import org.apache.directory.api.ldap.model.message.SearchScope;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.name.Rdn;
+import org.apache.directory.ldap.client.api.LdapConnection;
+import org.apache.directory.ldap.client.api.search.FilterBuilder;
+import org.apache.directory.ldap.client.template.ConnectionCallback;
+import org.apache.directory.ldap.client.template.EntryMapper;
+import org.apache.directory.ldap.client.template.LdapConnectionTemplate;
+import org.apache.directory.ldap.client.template.RequestBuilder;
+import org.apache.directory.server.annotations.CreateLdapConnectionPool;
+import org.apache.directory.server.annotations.CreateLdapServer;
+import org.apache.directory.server.annotations.CreateTransport;
+import org.apache.directory.server.core.annotations.ApplyLdifFiles;
+import org.apache.directory.server.core.annotations.ContextEntry;
+import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.annotations.CreateIndex;
+import org.apache.directory.server.core.annotations.CreatePartition;
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.CreateLdapConnectionPoolRule;
+import org.apache.directory.server.integ.ServerIntegrationUtils;
+import org.junit.ClassRule;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * This Test case demonstrates an issue with the rename operation as 
+ * describe in 
+ * <a href='https://issues.apache.org/jira/browse/DIRSERVER-1974'>DIRSERVER-1974</a>.
+ * 
+ * To run this test, remove the <code>@Ignore</code> annotation and run the test.
+ * Be patient, this test will take a while, but there should be some log messages 
+ * to show progress.  It may succeed, but most likely will fail at some point.  To
+ * speed the test up, you could load an external instance with the data and run
+ * against it instead.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+@CreateLdapServer(
+        transports = {
+                @CreateTransport( protocol = "LDAP" )
+        } )
+@CreateDS( name = "classDS",
+        partitions = {
+                @CreatePartition(
+                        name = "example",
+                        suffix = "dc=example,dc=com",
+                        contextEntry = @ContextEntry(
+                                entryLdif =
+                                "dn: dc=example,dc=com\n" +
+                                        "objectClass: domain\n" +
+                                        "objectClass: top\n" +
+                                        "dc: example\n\n"
+                        ),
+                        indexes = {
+                                @CreateIndex( attribute = "objectClass" ),
+                                @CreateIndex( attribute = "dc" ),
+                                @CreateIndex( attribute = "ou" ),
+                                @CreateIndex( attribute = "uid" )
+                        }
+                )
+        } )
+@CreateLdapConnectionPool(
+        maxActive = 4,
+        maxIdle = 2,
+        minIdle = 1 )
+@ApplyLdifFiles( {
+    "dirserver_1974_it.ldif"
+} )
+public class DIRSERVER_1974_IT extends AbstractLdapTestUnit
+{
+    private static final Logger logger = LoggerFactory.getLogger( DIRSERVER_1974_IT.class );
+    private static final String BASE = "dc=example,dc=com";
+
+    private static final EntryMapper<Entry> DEFAULT_ENTRY_MAPPER = new EntryMapper<Entry>() {
+        @Override
+        public Entry map( Entry entry ) throws LdapException {
+            return entry;
+        }
+    };
+
+    @ClassRule
+    public static CreateLdapConnectionPoolRule classCreateDsRule =
+            new CreateLdapConnectionPoolRule();
+
+
+    @Test
+    @Ignore
+    public void testRenameWithALotOfDummiesAndSomeCustomAttributes() {
+        LdapConnectionTemplate template = classCreateDsRule.getLdapConnectionTemplate();
+        AddResponse response = null;
+
+        final String peopleOu = "people";
+        final String peopleRdn = "ou=" + peopleOu;
+        final String peopleDnString = peopleRdn + "," + BASE;
+        final Dn peopleDn = template.newDn( peopleDnString );
+        
+        template.execute( 
+                new ConnectionCallback<Void>() {
+                    @Override
+                    public Void doWithConnection( LdapConnection connection ) throws LdapException {
+                        logger.debug( "Add {}", peopleDnString );
+                        connection.add( new DefaultEntry( peopleDn,
+                                "objectClass", "top",
+                                "objectClass", "organizationalUnit",
+                                "ou", peopleOu ) );
+
+                        int dummyCount = 1000;
+                        logger.debug( "Add {} dummy people", dummyCount );
+                        for ( int i = 1; i < dummyCount; i++ ) 
+                        {
+                            String uid = "uid-" + i;
+                            String dn = "uid=" + uid + "," + peopleDn;
+                            connection.add( new DefaultEntry( dn,
+                                    "objectClass: top",
+                                    "objectClass: person",
+                                    "objectClass: organizationalPerson",
+                                    "objectClass: inetOrgPerson",
+                                    "uid", uid,
+                                    "cn", "cn-" + i,
+                                    "sn", "sn-" + i,
+                                    "description", i + " is a person." ) );
+                            if ( i % 50 == 0 ) 
+                            {
+                                logger.debug( "Added person {}", i );
+                            }
+                        }
+                        return null;
+                    }
+            
+                } );
+
+        for ( int i = 0; i < 100; i++ ) {
+            logger.info( "round {}", i );
+            final String oldUid = "myra-ellen-amos";
+            final String oldCn = "Myra Ellen Amos";
+            final String oldRdn = "uid=" + oldUid;
+            final String oldDnString = oldRdn + ", " + peopleDnString;
+            final Dn oldDn = template.newDn( oldDnString );
+
+            final String newUid = "tory-amos";
+            final String newRdn = "uid=" + newUid;
+            final String newDnString = newRdn + "," + peopleDnString;
+            final Dn newDn = template.newDn( newDnString );
+
+            response = template.add( oldDn,
+                    new RequestBuilder<AddRequest>() {
+                        @Override
+                        public void buildRequest( AddRequest request ) throws LdapException {
+                            request.getEntry()
+                                    .add( "objectClass", "top", "person", "organizationalPerson", "inetOrgPerson", "portalPerson" )
+                                    .add( "uid", oldUid )
+                                    .add( "cn", oldCn )
+                                    .add( "sn", "Amos" )
+                                    .add( "active", Boolean.TRUE.toString() )
+                                    .add( "affiliation", "Unknown" )
+                                    .add( "timeZone", "America/New_York" )
+                                    .add( "description", oldCn + " is a person." );
+                        }
+                    } );
+            assertEquals( response.getLdapResult().getDiagnosticMessage(), ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+
+            assertNotNull( template.lookup( oldDn, DEFAULT_ENTRY_MAPPER ) );
+
+            Entry found = template.searchFirst( peopleDn, FilterBuilder.equal( "sn", "amos" ),
+                    SearchScope.ONELEVEL, DEFAULT_ENTRY_MAPPER );
+            assertNotNull( found );
+            Rdn foundRdn = found.getDn().getRdn();
+            assertEquals( "uid", foundRdn.getType() );
+            assertEquals( oldUid, foundRdn.getValue().getString() );
+
+            template.execute(
+                    new ConnectionCallback<Void>() {
+                        @Override
+                        public Void doWithConnection( LdapConnection connection ) throws LdapException {
+                            connection.rename( oldDnString, newRdn );
+                            return null;
+                        }
+                    } );
+
+            assertNull( template.lookup( oldDn, DEFAULT_ENTRY_MAPPER ) );
+            assertNotNull( template.lookup( newDn, DEFAULT_ENTRY_MAPPER ) );
+
+            found = template.searchFirst( peopleDn, FilterBuilder.equal( "sn", "amos" ),
+                    SearchScope.ONELEVEL, DEFAULT_ENTRY_MAPPER );
+            foundRdn = found.getDn().getRdn();
+            assertNotNull( found );
+            foundRdn = found.getDn().getRdn();
+            assertEquals( "uid", foundRdn.getType() );
+            assertEquals( newUid, foundRdn.getValue().getString() );
+
+            template.delete( newDn );
+        }
+    }
+
+
+    /**
+     * Modify Rdn of an entry, delete its old rdn value and search before and
+     * after rename.
+     */
+    @Ignore
+    @Test
+    public void testModifyRdnWithLotsOfDummies() throws Exception
+    {
+        String base = "dc=example,dc=com";
+        String people = "people";
+        String ouPeople = "ou=" + people;
+        String dnPeople = ouPeople + "," + base;
+
+        try (LdapConnection connection = ServerIntegrationUtils.getAdminConnection( getLdapServer() );) 
+        {
+            connection.loadSchema();
+            
+            logger.debug( "Add {}", dnPeople );
+            connection.add( new DefaultEntry( dnPeople,
+                    "objectClass", "top",
+                    "objectClass", "organizationalUnit",
+                    "ou", people ) );
+
+            int dummyCount = 1000;
+            logger.debug( "Add {} dummy people", dummyCount );
+            for ( int i = 1; i < dummyCount; i++ ) 
+            {
+                String uid = "uid-" + i;
+                String dn = "uid=" + uid + "," + dnPeople;
+                connection.add( new DefaultEntry( dn,
+                        "objectClass: top",
+                        "objectClass: person",
+                        "objectClass: organizationalPerson",
+                        "objectClass: inetOrgPerson",
+                        "uid", uid,
+                        "cn", "cn-" + i,
+                        "sn", "sn-" + i,
+                        "description", i + " is a person." ) );
+                if ( i % 50 == 0 ) 
+                {
+                    logger.debug( "Added person {}", i );
+                }
+            }
+    
+            // Create a person, cn value is rdn
+            String oldUid = "mary-ellen-amos";
+            String oldCn = "Myra Ellen Amos";
+            String oldRdn = "uid=" + oldUid;
+
+            // Renamed...
+            String newUid = "tory-amos";
+            String newRdn = "uid=" + newUid;
+            String newDn = newRdn + "," + base;
+        
+            String oldDn = oldRdn + ", " + base;
+            for ( int i = 1; i < 100; i++ ) 
+            {
+                connection.add( new DefaultEntry( oldDn,
+                        "objectClass: top",
+                        "objectClass: person",
+                        "objectClass: organizationalPerson",
+                        "objectClass: inetOrgPerson",
+                        "uid", oldUid,
+                        "cn", oldCn,
+                        "sn: Amos",
+                        "description", oldCn + " is a person." ) );
+                Entry tori = connection.lookup( oldDn );
+                assertNotNull( tori );
+                assertTrue( tori.contains( "uid", "mary-ellen-amos" ) );
+        
+                connection.rename( oldDn, newRdn, true );
+                assertNull( connection.lookup( oldDn ) );
+                tori = connection.lookup( newDn );
+                assertNotNull( tori );
+        
+                // Check values of uid
+                assertTrue( tori.contains( "uid", newUid ) );
+                assertFalse( tori.contains( "uid", oldUid ) ); // old value is gone
+                assertEquals( 1, tori.get( "uid" ).size() );
+        
+                // now try a search
+                Entry found = null;
+                for ( Entry result : connection.search( base, "(sn=amos)", SearchScope.ONELEVEL ) )
+                {
+                    if ( found == null )
+                    {
+                        found = result;
+                    }
+                    else
+                    {
+                        fail( "Found too many results" );
+                    }
+                }
+                assertNotNull( found );
+                Rdn foundRdn = found.getDn().getRdn();
+                assertEquals( "uid", foundRdn.getType() );
+                assertEquals( newUid, foundRdn.getValue().getString() );
+        
+                // Remove entry (use new rdn)
+                connection.delete( newDn );
+            }
+        }
+    }
+}

Propchange: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/DIRSERVER_1974_IT.java
------------------------------------------------------------------------------
    svn:executable = *

Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/ModifyRdnIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/ModifyRdnIT.java?rev=1708198&r1=1708197&r2=1708198&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/ModifyRdnIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/modifydn/ModifyRdnIT.java Mon Oct 12 18:41:35 2015
@@ -43,8 +43,6 @@ import javax.naming.directory.SearchResu
 import org.apache.directory.api.ldap.model.entry.DefaultEntry;
 import org.apache.directory.api.ldap.model.entry.Entry;
 import org.apache.directory.api.ldap.model.ldif.LdifUtils;
-import org.apache.directory.api.ldap.model.message.SearchScope;
-import org.apache.directory.api.ldap.model.name.Rdn;
 import org.apache.directory.ldap.client.api.LdapConnection;
 import org.apache.directory.server.annotations.CreateLdapServer;
 import org.apache.directory.server.annotations.CreateTransport;
@@ -176,103 +174,6 @@ public class ModifyRdnIT extends Abstrac
 
         // Remove entry (use new rdn)
         connection.delete( newDn );
-    }
-
-
-    /**
-     * Modify Rdn of an entry, delete its old rdn value and search before and
-     * after rename.
-     */
-    //@Ignore
-    @Test
-    public void testModifyRdnAndDeleteOldWithSearchInBetween() throws Exception
-    {
-        String base = "dc=example,dc=com";
-
-        LdapConnection connection = ServerIntegrationUtils.getAdminConnection( getLdapServer() );
-        // connection.setTimeOut( 0L );
-        connection.loadSchema();
-
-        // Create a person, cn value is rdn
-        String oldUid = "mary-ellen-amos";
-        String oldCn = "Myra Ellen Amos";
-        String oldRdn = "uid=" + oldUid;
-        String oldDn = oldRdn + ", " + base;
-
-        Entry entry = new DefaultEntry( oldDn,
-                "objectClass: top",
-                "objectClass: person",
-                "objectClass: organizationalPerson",
-                "objectClass: inetOrgPerson",
-                "uid", oldUid,
-                "cn", oldCn,
-                "sn: Amos",
-                "description", oldCn + " is a person." );
-
-        connection.add( entry );
-
-        Entry tori = connection.lookup( oldDn );
-
-        assertNotNull( tori );
-        assertTrue( tori.contains( "uid", "mary-ellen-amos" ) );
-
-        // now try a search
-        Entry found = null;
-        for ( Entry result : connection.search( base, "(sn=amos)", SearchScope.ONELEVEL ) )
-        {
-            if ( found == null )
-            {
-                found = result;
-            }
-            else
-            {
-                fail( "Found too many results" );
-            }
-        }
-        assertNotNull( found );
-        Rdn foundRdn = found.getDn().getRdn();
-        assertEquals( "uid", foundRdn.getType() );
-        assertEquals( oldUid, foundRdn.getValue().getString() );
-
-        // modify Rdn
-        String newUid = "tory-amos";
-        String newRdn = "uid=" + newUid;
-        String newDn = newRdn + "," + base;
-
-        connection.rename( oldDn, newRdn, true );
-
-        // Check, whether old Entry does not exists
-        assertNull( connection.lookup( oldDn ) );
-
-        // Check, whether new Entry exists
-        tori = connection.lookup( newDn );
-        assertNotNull( tori );
-
-        // Check values of cn
-        assertTrue( tori.contains( "uid", newUid ) );
-        assertFalse( tori.contains( "uid", oldUid ) ); // old value is gone
-        assertEquals( 1, tori.get( "uid" ).size() );
-
-        // now try a search
-        found = null;
-        for ( Entry result : connection.search( base, "(sn=amos)", SearchScope.ONELEVEL ) )
-        {
-            if ( found == null )
-            {
-                found = result;
-            }
-            else
-            {
-                fail( "Found too many results" );
-            }
-        }
-        assertNotNull( found );
-        foundRdn = found.getDn().getRdn();
-        assertEquals( "uid", foundRdn.getType() );
-        assertEquals( newUid, foundRdn.getValue().getString() );
-
-        // Remove entry (use new rdn)
-        connection.delete( newDn );
     }
 
 

Added: directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif?rev=1708198&view=auto
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif (added)
+++ directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif Mon Oct 12 18:41:35 2015
@@ -0,0 +1,116 @@
+dn: cn=portalPerson, ou=schema
+objectclass: metaSchema
+objectclass: top
+cn: portalPerson
+m-dependencies: system
+m-dependencies: core
+
+dn: ou=attributeTypes, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: attributetypes
+
+dn: ou=comparators, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: comparators
+
+dn: ou=ditContentRules, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: ditcontentrules
+
+dn: ou=ditStructureRules, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: ditstructurerules
+
+dn: ou=matchingRules, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: matchingrules
+
+dn: ou=matchingRuleUse, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: matchingruleuse
+
+dn: ou=nameForms, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: nameforms
+
+dn: ou=normalizers, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: normalizers
+
+dn: ou=objectClasses, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: objectClasses
+
+dn: ou=syntaxCheckers, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: syntaxcheckers
+
+dn: ou=syntaxes, cn=portalPerson, ou=schema
+objectclass: organizationalUnit
+objectclass: top
+ou: syntaxes
+
+## active attribute
+dn: m-oid=1.3.6.1.4.1.115.1.2.20.1.2.1, ou=attributeTypes, cn=portalPerson, ou=schema
+objectclass: metaAttributeType
+objectclass: metaTop
+objectclass: top
+m-oid: 1.3.6.1.4.1.115.1.2.20.1.2.1
+m-name: active
+m-description: This indicates an entry is active
+m-equality: booleanMatch
+m-ordering: booleanMatch
+m-substr: booleanMatch
+m-syntax: 1.3.6.1.4.1.1466.115.121.1.7
+m-singleValue: TRUE
+
+## affiliation attribute
+dn: m-oid=1.3.6.1.4.1.115.1.2.20.1.2.5, ou=attributeTypes, cn=portalPerson, ou=schema
+objectclass: metaAttributeType
+objectclass: metaTop
+objectclass: top
+m-oid: 1.3.6.1.4.1.115.1.2.20.1.2.5
+m-name: affiliation
+m-equality: caseExactMatch
+m-ordering: caseExactOrderingMatch
+m-substr: caseExactSubstringsMatch
+m-syntax: 1.3.6.1.4.1.1466.115.121.1.15
+m-singleValue: TRUE
+
+## timeZone attribute
+dn: m-oid=1.3.6.1.4.1.115.1.2.20.1.2.11,ou=attributeTypes,cn=portalPerson,ou=schema
+objectClass: metaTop
+objectClass: metaAttributeType
+objectClass: top
+m-oid: 1.3.6.1.4.1.115.1.2.20.1.2.11
+m-description: A persons time zone
+m-equality: caseExactMatch
+m-name: timeZone
+m-ordering: caseExactOrderingMatch
+m-singlevalue: TRUE
+m-substr: caseExactSubstringsMatch
+m-syntax: 1.3.6.1.4.1.1466.115.121.1.15
+
+## portalPerson object
+dn: m-oid=1.3.6.1.4.1.115.1.2.20.1.1.2, ou=objectClasses, cn=portalPerson, ou=schema
+objectclass: metaObjectClass
+objectclass: metaTop
+objectclass: top
+m-oid: 1.3.6.1.4.1.115.1.2.20.1.1.2
+m-name: portalPerson
+m-description: A person associated with a portal
+m-typeObjectClass: AUXILIARY
+m-may: active
+m-may: affiliation
+m-may: timeZone
+

Propchange: directory/apacheds/trunk/server-integ/src/test/resources/dirserver_1974_it.ldif
------------------------------------------------------------------------------
    svn:executable = *

Modified: directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties?rev=1708198&r1=1708197&r2=1708198&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties (original)
+++ directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties Mon Oct 12 18:41:35 2015
@@ -45,3 +45,5 @@ log4j.logger.org.apache.directory.mavibo
 log4j.logger.org.apache.directory.api.ldap.model.schema=FATAL
 log4j.logger.org.apache.directory.mavibot=FATAL
 log4j.logger.org.apache.directory.server.replication=FATAL
+
+log4j.logger.org.apache.directory.server.operations.modifydn.DIRSERVER_1974_IT=DEBUG