You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2008/08/16 17:23:02 UTC
svn commit: r686511 - in /directory:
apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/
apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/
apacheds/branches/bigbang/core/src/test/java/or...
Author: elecharny
Date: Sat Aug 16 08:23:02 2008
New Revision: 686511
URL: http://svn.apache.org/viewvc?rev=686511&view=rev
Log:
o Prepared the ChangeLog mechanism to accept more than one revert LdifEntry
Modified:
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLog.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogEvent.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogStore.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/DefaultChangeLog.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/MemoryChangeLogStore.java
directory/apacheds/branches/bigbang/core/src/test/java/org/apache/directory/server/core/changelog/MemoryChangeLogStoreTest.java
directory/shared/branches/bigbang/ldap/src/main/java/org/apache/directory/shared/ldap/ldif/LdifUtils.java
directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/ldif/LdifUtilsTest.java
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java Sat Aug 16 08:23:02 2008
@@ -744,40 +744,43 @@
while ( cursor.previous() ) // apply ldifs in reverse order
{
ChangeLogEvent event = cursor.get();
- LdifEntry reverse = event.getReverseLdif();
+ List<LdifEntry> reverses = event.getReverseLdifs();
- switch( reverse.getChangeType().getChangeType() )
+ for ( LdifEntry reverse:reverses )
{
- case( ChangeType.ADD_ORDINAL ):
- adminSession.add(
- new DefaultServerEntry( registries, reverse.getEntry() ) );
- break;
-
- case( ChangeType.DELETE_ORDINAL ):
- adminSession.delete( reverse.getDn() );
- break;
-
- case( ChangeType.MODIFY_ORDINAL ):
- List<Modification> mods = reverse.getModificationItems();
-
- adminSession.modify( reverse.getDn(), mods );
- break;
-
- case( ChangeType.MODDN_ORDINAL ):
- // NO BREAK - both ModDN and ModRDN handling is the same
-
- case( ChangeType.MODRDN_ORDINAL ):
- LdapDN forwardDn = event.getForwardLdif().getDn();
- LdapDN reverseDn = event.getReverseLdif().getDn();
-
- moddn( reverseDn, forwardDn, reverse.isDeleteOldRdn() );
-
- break;
+ switch( reverse.getChangeType().getChangeType() )
+ {
+ case( ChangeType.ADD_ORDINAL ):
+ adminSession.add(
+ new DefaultServerEntry( registries, reverse.getEntry() ) );
+ break;
+
+ case( ChangeType.DELETE_ORDINAL ):
+ adminSession.delete( reverse.getDn() );
+ break;
+
+ case( ChangeType.MODIFY_ORDINAL ):
+ List<Modification> mods = reverse.getModificationItems();
+
+ adminSession.modify( reverse.getDn(), mods );
+ break;
+
+ case( ChangeType.MODDN_ORDINAL ):
+ // NO BREAK - both ModDN and ModRDN handling is the same
- default:
- LOG.error( "ChangeType unknown" );
- throw new NotImplementedException( "Reverts of change type " + reverse.getChangeType()
- + " has not yet been implemented!");
+ case( ChangeType.MODRDN_ORDINAL ):
+ LdapDN forwardDn = event.getForwardLdif().getDn();
+ LdapDN reverseDn = reverse.getDn();
+
+ moddn( reverseDn, forwardDn, reverse.isDeleteOldRdn() );
+
+ break;
+
+ default:
+ LOG.error( "ChangeType unknown" );
+ throw new NotImplementedException( "Reverts of change type " + reverse.getChangeType()
+ + " has not yet been implemented!");
+ }
}
}
}
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLog.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLog.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLog.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLog.java Sat Aug 16 08:23:02 2008
@@ -20,6 +20,8 @@
package org.apache.directory.server.core.changelog;
+import java.util.List;
+
import org.apache.directory.server.core.DirectoryService;
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.shared.ldap.ldif.LdifEntry;
@@ -75,6 +77,19 @@
/**
+ * Records a change as a forward LDIF, some reverse changes to revert the change and
+ * the authorized principal triggering the revertable change event.
+ *
+ * @param principal the authorized LDAP principal triggering the change
+ * @param forward LDIF of the change going to the next state
+ * @param reverses LDIF (anti-operation): the changes required to revert this change
+ * @return the new revision reached after having applied the forward LDIF
+ * @throws Exception if there are problems logging the change
+ */
+ ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, List<LdifEntry> reverses ) throws Exception;
+
+
+ /**
* Returns whether or not this ChangeLogService supports searching for changes.
*
* @return true if log searching is supported, false otherwise
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogEvent.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogEvent.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogEvent.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogEvent.java Sat Aug 16 08:23:02 2008
@@ -24,6 +24,8 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
@@ -42,7 +44,9 @@
private String zuluTime;
private long revision;
private LdifEntry forwardLdif;
- private LdifEntry reverseLdif;
+
+ /** The revert changes. Can contain more than one single change */
+ private List<LdifEntry> reverseLdifs;
private LdapPrincipal committer;
@@ -67,7 +71,28 @@
this.zuluTime = zuluTime;
this.revision = revision;
this.forwardLdif = forwardLdif;
- this.reverseLdif = reverseLdif;
+ this.reverseLdifs = new ArrayList<LdifEntry>(1);
+ reverseLdifs.add( reverseLdif );
+ this.committer = committer;
+ }
+
+
+ /**
+ * Creates a new instance of ChangeLogEvent.
+ *
+ * @param revision the revision number for the change
+ * @param zuluTime the timestamp for when the change occurred in generalizedTime format
+ * @param committer the user who did the modification
+ * @param forwardLdif the original operation
+ * @param reverseLdifs the reverted operations
+ */
+ public ChangeLogEvent( long revision, String zuluTime, LdapPrincipal committer, LdifEntry forwardLdif,
+ List<LdifEntry> reverseLdifs )
+ {
+ this.zuluTime = zuluTime;
+ this.revision = revision;
+ this.forwardLdif = forwardLdif;
+ this.reverseLdifs = reverseLdifs;
this.committer = committer;
}
@@ -84,9 +109,9 @@
/**
* @return the reverseLdif
*/
- public LdifEntry getReverseLdif()
+ public List<LdifEntry> getReverseLdifs()
{
- return reverseLdif;
+ return reverseLdifs;
}
@@ -158,12 +183,18 @@
forwardLdif = (LdifEntry)in.readObject();
}
- // Read the reverse LDIF
- boolean hasReverseLdif = in.readBoolean();
+ // Read the reverse LDIF number
+ int nbReverseLdif = in.readInt();
- if ( hasReverseLdif )
+ if ( nbReverseLdif > 0 )
{
- reverseLdif = (LdifEntry)in.readObject();
+ // Read each reverse ldif
+ reverseLdifs = new ArrayList<LdifEntry>(nbReverseLdif);
+
+ for ( int i = 0; i < nbReverseLdif; i++ )
+ {
+ reverseLdifs.add( (LdifEntry)in.readObject() );
+ }
}
}
@@ -207,10 +238,15 @@
}
// write the reverse LDIF
- if ( reverseLdif != null )
+ if ( reverseLdifs != null )
{
- out.writeBoolean( true );
- out.writeObject( reverseLdif );
+ out.writeInt( reverseLdifs.size() );
+
+ // write each reverse
+ for ( LdifEntry reverseLdif:reverseLdifs )
+ {
+ out.writeObject( reverseLdif );
+ }
}
else
{
@@ -244,8 +280,17 @@
.append( getForwardLdif() )
.append( ", " );
- sb.append( "\nreverseLdif=" )
- .append( getReverseLdif() );
+ if ( reverseLdifs != null )
+ {
+ sb.append( "\nreverseLdif number=" ).append( reverseLdifs.size() );
+ int i = 0;
+
+ for ( LdifEntry reverseLdif:reverseLdifs )
+ {
+ sb.append( "\nReverse[" ).append( i++ ).append( "] :\n" );
+ sb.append( reverseLdif );
+ }
+ }
sb.append( " }" );
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java Sat Aug 16 08:23:02 2008
@@ -299,10 +299,10 @@
forward.setNewRdn( renameContext.getNewRdn().getUpName() );
forward.setDeleteOldRdn( renameContext.getDelOldDn() );
- LdifEntry reverse = LdifUtils.reverseModifyRdn( ServerEntryUtils.toAttributesImpl( serverEntry ),
+ List<LdifEntry> reverses = LdifUtils.reverseModifyRdn( ServerEntryUtils.toAttributesImpl( serverEntry ),
null, renameContext.getDn(), new Rdn( renameContext.getNewRdn() ) );
- renameContext.setChangeLogEvent( changeLog.log( getPrincipal(), forward, reverse ) );
+ renameContext.setChangeLogEvent( changeLog.log( getPrincipal(), forward, reverses ) );
}
@@ -331,9 +331,9 @@
forward.setNewRdn( opCtx.getNewRdn().getUpName() );
forward.setNewSuperior( opCtx.getParent().getUpName() );
- LdifEntry reverse = LdifUtils.reverseModifyRdn( ServerEntryUtils.toAttributesImpl( serverEntry ),
+ List<LdifEntry> reverses = LdifUtils.reverseModifyRdn( ServerEntryUtils.toAttributesImpl( serverEntry ),
opCtx.getParent(), opCtx.getDn(), new Rdn( opCtx.getNewRdn() ) );
- opCtx.setChangeLogEvent( changeLog.log( getPrincipal(), forward, reverse ) );
+ opCtx.setChangeLogEvent( changeLog.log( getPrincipal(), forward, reverses ) );
}
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogStore.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogStore.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogStore.java Sat Aug 16 08:23:02 2008
@@ -20,6 +20,8 @@
package org.apache.directory.server.core.changelog;
+import java.util.List;
+
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.server.core.cursor.Cursor;
import org.apache.directory.server.core.DirectoryService;
@@ -67,6 +69,19 @@
/**
+ * Records a change as a forward LDIF, some reverse changes to revert the change and
+ * the authorized principal triggering the revertable change event.
+ *
+ * @param principal the authorized LDAP principal triggering the change
+ * @param forward LDIF of the change going to the next state
+ * @param reverses LDIF (anti-operation): the changes required to revert this change
+ * @return the new revision reached after having applied the forward LDIF
+ * @throws Exception if there are problems logging the change
+ */
+ ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, List<LdifEntry> reverses ) throws Exception;
+
+
+ /**
* Looks up the ChangeLogEvent for a revision.
*
* @param revision to get a ChangeLogEvent for
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/DefaultChangeLog.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/DefaultChangeLog.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/DefaultChangeLog.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/DefaultChangeLog.java Sat Aug 16 08:23:02 2008
@@ -19,6 +19,8 @@
package org.apache.directory.server.core.changelog;
+import java.util.List;
+
import org.apache.directory.server.core.DirectoryService;
import org.apache.directory.server.core.authn.LdapPrincipal;
import org.apache.directory.server.core.partition.Partition;
@@ -65,6 +67,9 @@
}
+ /**
+ * {@inheritDoc}
+ */
public ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, LdifEntry reverse ) throws Exception
{
if ( !enabled )
@@ -76,6 +81,20 @@
}
+ /**
+ * {@inheritDoc}
+ */
+ public ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, List<LdifEntry> reverses ) throws Exception
+ {
+ if ( !enabled )
+ {
+ throw new IllegalStateException( "The ChangeLog has not been enabled." );
+ }
+
+ return store.log( principal, forward, reverses );
+ }
+
+
public boolean isLogSearchSupported()
{
return store instanceof SearchableChangeLogStore;
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/MemoryChangeLogStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/MemoryChangeLogStore.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/MemoryChangeLogStore.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/changelog/MemoryChangeLogStore.java Sat Aug 16 08:23:02 2008
@@ -412,6 +412,9 @@
}
+ /**
+ * {@inheritDoc}
+ */
public ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, LdifEntry reverse ) throws Exception
{
currentRevision++;
@@ -422,6 +425,19 @@
}
+ /**
+ * {@inheritDoc}
+ */
+ public ChangeLogEvent log( LdapPrincipal principal, LdifEntry forward, List<LdifEntry> reverses ) throws Exception
+ {
+ currentRevision++;
+ ChangeLogEvent event = new ChangeLogEvent( currentRevision, DateUtils.getGeneralizedTime(),
+ principal, forward, reverses );
+ events.add( event );
+ return event;
+ }
+
+
public ChangeLogEvent lookup( long revision ) throws Exception
{
if ( revision < 0 )
Modified: directory/apacheds/branches/bigbang/core/src/test/java/org/apache/directory/server/core/changelog/MemoryChangeLogStoreTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/test/java/org/apache/directory/server/core/changelog/MemoryChangeLogStoreTest.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/test/java/org/apache/directory/server/core/changelog/MemoryChangeLogStoreTest.java (original)
+++ directory/apacheds/branches/bigbang/core/src/test/java/org/apache/directory/server/core/changelog/MemoryChangeLogStoreTest.java Sat Aug 16 08:23:02 2008
@@ -151,6 +151,6 @@
assertEquals( zuluTime, read.getZuluTime() );
assertEquals( revision, read.getRevision() );
assertEquals( forward, read.getForwardLdif() );
- assertEquals( reverse, read.getReverseLdif() );
+ assertEquals( reverse, read.getReverseLdifs().get( 0 ) );
}
}
Modified: directory/shared/branches/bigbang/ldap/src/main/java/org/apache/directory/shared/ldap/ldif/LdifUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/bigbang/ldap/src/main/java/org/apache/directory/shared/ldap/ldif/LdifUtils.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/shared/branches/bigbang/ldap/src/main/java/org/apache/directory/shared/ldap/ldif/LdifUtils.java (original)
+++ directory/shared/branches/bigbang/ldap/src/main/java/org/apache/directory/shared/ldap/ldif/LdifUtils.java Sat Aug 16 08:23:02 2008
@@ -624,7 +624,7 @@
* @return A new LDIF entry with a reverted DN
* @throws NamingException If the name reverting failed
*/
- public static LdifEntry reverseRename( Attributes t0, LdapDN t0_dn, Rdn t1_rdn ) throws NamingException
+ public static List<LdifEntry> reverseRename( Attributes t0, LdapDN t0_dn, Rdn t1_rdn ) throws NamingException
{
LdifEntry entry = new LdifEntry();
LdapDN parent = null;
@@ -651,11 +651,15 @@
newDn = ( LdapDN ) parent.clone();
newDn.add( t1_rdn );
+ List<LdifEntry> entries = new ArrayList<LdifEntry>(1);
+
entry.setChangeType( ChangeType.ModRdn );
entry.setDeleteOldRdn( reverseDoDeleteOldRdn( t0, t1_rdn ) );
entry.setDn( newDn );
entry.setNewRdn( t0_dn.getRdn().getUpName() );
- return entry;
+
+ entries.add( entry );
+ return entries;
}
@@ -668,10 +672,10 @@
* @param t1_parentDn the new superior dn if this is a move, otherwise null
* @param t0_dn the dn of the entry being modified
* @param t1_rdn the new rdn to use
- * @return A reverse LDIF
+ * @return A reverse LDIF, with potentially more than one reverse operation
* @throws NamingException If something went wrong
*/
- public static LdifEntry reverseModifyRdn( Attributes t0, LdapDN t1_parentDn, LdapDN t0_dn, Rdn t1_rdn )
+ public static List<LdifEntry> reverseModifyRdn( Attributes t0, LdapDN t1_parentDn, LdapDN t0_dn, Rdn t1_rdn )
throws NamingException
{
if ( t0_dn == null )
@@ -686,6 +690,8 @@
// if there is no new superior in the picture then this is a rename
// operation where the parent is retained and only the rdn is changed
+ // We still have to take care that the entry attributes are correctly
+ // restored if the new RDN has more than one AVAs
if ( t1_parentDn == null )
{
return reverseRename( t0, t0_dn, t1_rdn );
@@ -695,7 +701,11 @@
// a name change, we can delegate this to a simpler method
if ( t1_rdn == null )
{
- return reverseModifyDn( t1_parentDn, t0_dn );
+ List<LdifEntry> entries = new ArrayList<LdifEntry>(1);
+ LdifEntry entry = reverseModifyDn( t1_parentDn, t0_dn );
+ entries.add( entry );
+
+ return entries;
}
// -------------------------------------------------------------------
@@ -728,7 +738,9 @@
reverse.setChangeType( ChangeType.ModRdn );
reverse.setDeleteOldRdn( reverseDoDeleteOldRdn( t0, t1_rdn ) );
- return reverse;
+ List<LdifEntry> entries = new ArrayList<LdifEntry>(1);
+ entries.add( reverse );
+ return entries;
}
Modified: directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/ldif/LdifUtilsTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/ldif/LdifUtilsTest.java?rev=686511&r1=686510&r2=686511&view=diff
==============================================================================
--- directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/ldif/LdifUtilsTest.java (original)
+++ directory/shared/branches/bigbang/ldap/src/test/java/org/apache/directory/shared/ldap/ldif/LdifUtilsTest.java Sat Aug 16 08:23:02 2008
@@ -481,9 +481,12 @@
attrs.put( "sn", "doe" );
attrs.put( "uid", "jdoe" );
- LdifEntry reversed = LdifUtils.reverseModifyRdn( attrs, null, dn, new Rdn( "cn=jack doe" ) );
+ List<LdifEntry> reverseds = LdifUtils.reverseModifyRdn( attrs, null, dn, new Rdn( "cn=jack doe" ) );
- assertNotNull( reversed );
+ assertNotNull( reverseds );
+ assertEquals( 1, reverseds.size() );
+
+ LdifEntry reversed = reverseds.get( 0 );
assertEquals( "cn=jack doe, dc=example, dc=com", reversed.getDn().getUpName() );
assertEquals( ChangeType.ModRdn, reversed.getChangeType() );
assertTrue( reversed.isDeleteOldRdn() );
@@ -512,9 +515,12 @@
attrs.put( "sn", "doe" );
attrs.put( "uid", "jdoe" );
- LdifEntry reversed = LdifUtils.reverseModifyRdn( attrs, null, dn, new Rdn( "cn=jack doe" ) );
+ List<LdifEntry> reverseds = LdifUtils.reverseModifyRdn( attrs, null, dn, new Rdn( "cn=jack doe" ) );
- assertNotNull( reversed );
+ assertNotNull( reverseds );
+ assertEquals( 1, reverseds.size() );
+
+ LdifEntry reversed = reverseds.get( 0 );
assertEquals( "cn=jack doe, dc=example, dc=com", reversed.getDn().getUpName() );
assertEquals( ChangeType.ModRdn, reversed.getChangeType() );
assertFalse( reversed.isDeleteOldRdn() );
@@ -550,9 +556,12 @@
attrs.put( "sn", "doe" );
attrs.put( "uid", "jdoe" );
- LdifEntry reversed = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, new Rdn( "cn=jack doe" ) );
+ List<LdifEntry> reverseds = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, new Rdn( "cn=jack doe" ) );
- assertNotNull( reversed );
+ assertNotNull( reverseds );
+ assertEquals( 1, reverseds.size() );
+
+ LdifEntry reversed = reverseds.get( 0 );
assertEquals( "cn=jack doe,ou=system", reversed.getDn().getUpName() );
assertEquals( ChangeType.ModRdn, reversed.getChangeType() );
assertFalse( reversed.isDeleteOldRdn() );
@@ -580,9 +589,12 @@
attrs.put( "sn", "doe" );
attrs.put( "uid", "jdoe" );
- LdifEntry reversed = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, null );
+ List<LdifEntry> reverseds = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, null );
- assertNotNull( reversed );
+ assertNotNull( reverseds );
+ assertEquals( 1, reverseds.size() );
+
+ LdifEntry reversed = reverseds.get( 0 );
assertEquals( "cn=john doe,ou=system", reversed.getDn().getUpName() );
assertEquals( ChangeType.ModDn, reversed.getChangeType() );
assertFalse( reversed.isDeleteOldRdn() );
@@ -609,9 +621,12 @@
attrs.put( "sn", "doe" );
attrs.put( "uid", "jdoe" );
- LdifEntry reversed = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, new Rdn( "cn=jack doe" ) );
+ List<LdifEntry> reverseds = LdifUtils.reverseModifyRdn( attrs, newSuperior, dn, new Rdn( "cn=jack doe" ) );
- assertNotNull( reversed );
+ assertNotNull( reverseds );
+ assertEquals( 1, reverseds.size() );
+
+ LdifEntry reversed = reverseds.get( 0 );
assertEquals( "cn=jack doe,ou=system", reversed.getDn().getUpName() );
assertEquals( ChangeType.ModRdn, reversed.getChangeType() );
assertTrue( reversed.isDeleteOldRdn() );