mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
06.45.2011 073380a9f77e33bc51ce4bc49d9948c06aa73110
OPENDJ-370: Implement an example Sun DSEE -> OpenDJ change log based synchronization daemon.

Minor fix to DN renaming transform for modify DN operations.

1 files modified
26 ■■■■■ changed files
opendj3/opendj-ldap-sync/src/main/java/org/forgerock/opendj/sync/filters/Transforms.java 26 ●●●●● patch | view | raw | blame | history
opendj3/opendj-ldap-sync/src/main/java/org/forgerock/opendj/sync/filters/Transforms.java
@@ -498,6 +498,32 @@
        final ModifyDNRequest change)
    {
      change.setName(change.getName().rename(from, to));
      // Rename the new superior or the new RDN if needed.
      final DN newSuperior = change.getNewSuperior();
      if (newSuperior != null && newSuperior.isSubordinateOrEqualTo(from))
      {
        // The new superior is in scope so rename.
        change.setNewSuperior(newSuperior.rename(from, to));
      }
      else
      {
        // The new superior is not in scope, but perhaps the new DN matches
        // "from".
        final DN newDN;
        if (newSuperior != null)
        {
          newDN = newSuperior.child(change.getNewRDN());
        }
        else
        {
          newDN = change.getName().parent().child(change.getNewRDN());
        }
        if (newDN.equals(from))
        {
          change.setNewRDN(to.rdn());
        }
      }
      return FilterResult.next();
    }