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

Jean-Noel Rouvignac
13.15.2013 b10a33c6e4b6e583b9bd2b31de7f04b5fe32d6c8
OPENDJ-1116 Introduce abstraction for the changelog DB

Moved all JE changelog related classes to the new package org.opends.server.replication.server.changelog.je



DbHandler.java, DraftCNData.java, DraftCNDB.java, DraftCNDbHandler.java, DraftCNDbIterator.java, JEReplicationIterator.java, package-info.java, ReplicationData.java, ReplicationDB.java, ReplicationDbEnv.java, ReplicationDraftCNKey.java, DbHandlerTest.java, DraftCNDbHandlerTest.java:
Moved to package org.opends.server.replication.server.changelog.je

ReplicationServer.java:
Updated the imports.
Made getTrimAge() public.
Removed use of "this" from method invocation.
Moved handleUnexpectedChangelogException() to ReplicationDbEnv.

DraftCNDB.java, ReplicationDB.java:
Moved handleUnexpectedDatabaseException() to ReplicationDbEnv.

ReplicationDbEnv.java:
Moved handleUnexpectedChangelogException() here from ReplicationServer, and renamed it to shutdownOnException().
Moved handleUnexpectedDatabaseException() here from DraftCNDB and ReplicationDB, and renamed it to shutdownOnException().

ECLServerHandler.java, ReplicationServerDomain.java, ExternalChangeLogTest.java:
Updated the imports.
1 files added
12 files renamed
4 files modified
211 ■■■■■ changed files
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 2 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ReplicationServer.java 38 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java 1 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java 6 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java 21 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java 6 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java 4 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java 4 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java 24 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 42 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java 2 ●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java 34 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java 2 ●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java 12 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java 9 ●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -42,6 +42,8 @@
import org.opends.server.replication.common.ServerStatus;
import org.opends.server.replication.protocol.*;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.je.DraftCNDbHandler;
import org.opends.server.replication.server.changelog.je.DraftCNDbIterator;
import org.opends.server.types.*;
import org.opends.server.util.ServerConstants;
opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -53,6 +53,9 @@
import org.opends.server.replication.plugin.MultimasterReplication;
import org.opends.server.replication.protocol.*;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.je.DbHandler;
import org.opends.server.replication.server.changelog.je.DraftCNDbHandler;
import org.opends.server.replication.server.changelog.je.ReplicationDbEnv;
import org.opends.server.types.*;
import org.opends.server.util.LDIFReader;
import org.opends.server.util.ServerConstants;
@@ -484,8 +487,8 @@
    boolean sslEncryption =replSessionSecurity.isSslEncryption(remoteServerURL);
    if (debugEnabled())
      TRACER.debugInfo("RS " + this.getMonitorInstanceName() +
               " connects to " + remoteServerURL);
      TRACER.debugInfo("RS " + getMonitorInstanceName() + " connects to "
          + remoteServerURL);
    Socket socket = new Socket();
    Session session = null;
@@ -937,7 +940,7 @@
   * @return  The time after which changes must be deleted from the
   *          persistent storage (in milliseconds).
   */
  long getTrimAge()
  public long getTrimAge()
  {
    return purgeDelay * 1000;
  }
@@ -1190,8 +1193,7 @@
   */
  public long getGenerationId(String baseDN)
  {
    ReplicationServerDomain rsd =
            this.getReplicationServerDomain(baseDN, false);
    ReplicationServerDomain rsd = getReplicationServerDomain(baseDN, false);
    if (rsd!=null)
      return rsd.getGenerationId();
    return -1;
@@ -1682,8 +1684,7 @@
   * @throws DirectoryException
   *           when needed.
   */
  public DraftCNDbHandler getDraftCNDbHandler()
      throws DirectoryException
  public DraftCNDbHandler getDraftCNDbHandler() throws DirectoryException
  {
    synchronized (draftCNLock)
    {
@@ -1786,7 +1787,7 @@
    int lastDraftCN;
    Boolean dbEmpty = false;
    Long newestDate = 0L;
    DraftCNDbHandler draftCNDbH = this.getDraftCNDbHandler();
    DraftCNDbHandler draftCNDbH = getDraftCNDbHandler();
    // Get the first DraftCN from the DraftCNdb
    int firstDraftCN = draftCNDbH.getFirstKey();
@@ -1923,27 +1924,6 @@
    }
  }
  /**
   * Shuts down replication when an unexpected database exception occurs. Note
   * that we do not expect lock timeouts or txn timeouts because the replication
   * databases are deadlock free, thus all operations should complete
   * eventually.
   *
   * @param e
   *          The unexpected database exception.
   */
  void handleUnexpectedChangelogException(ChangelogException e)
  {
    MessageBuilder mb = new MessageBuilder();
    mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
    mb.append(".   ");
    mb.append(stackTraceToSingleLineString(e));
    logError(mb.toMessage());
    shutdown();
  }
  /**
   * Get the replication server DB directory.
   * This is useful for tests to be able to do some cleanup. Might even be
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -48,6 +48,7 @@
import org.opends.server.replication.protocol.*;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.api.ReplicationIterator;
import org.opends.server.replication.server.changelog.je.DbHandler;
import org.opends.server.types.*;
import org.opends.server.util.TimeThread;
opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
File was renamed from opends/src/server/org/opends/server/replication/server/DbHandler.java
@@ -25,7 +25,7 @@
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.util.ArrayList;
import java.util.Date;
@@ -40,9 +40,11 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.ReplicationDB.ReplServerDBCursor;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.api.ReplicationIterator;
import org.opends.server.replication.server.changelog.je.ReplicationDB.ReplServerDBCursor;
import org.opends.server.types.Attribute;
import org.opends.server.types.Attributes;
import org.opends.server.types.InitializationException;
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDB.java
@@ -25,7 +25,7 @@
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.Closeable;
import java.util.concurrent.locks.ReadWriteLock;
@@ -35,6 +35,7 @@
import org.opends.messages.MessageBuilder;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.types.DebugLogLevel;
@@ -127,11 +128,11 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
    }
    catch (ChangelogException e)
    {
      replicationServer.handleUnexpectedChangelogException(e);
      dbenv.shutdownOnException(e);
    }
  }
@@ -255,7 +256,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
      return 0;
    }
  }
@@ -323,17 +324,11 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
      return 0;
    }
  }
  private void handleUnexpectedDatabaseException(DatabaseException e)
  {
    ChangelogException ex = new ChangelogException(e);
    replicationServer.handleUnexpectedChangelogException(ex);
  }
  /**
   * {@inheritDoc}
   */
@@ -514,7 +509,7 @@
        }
        catch (DatabaseException e)
        {
          handleUnexpectedDatabaseException(e);
          dbenv.shutdownOnException(e);
        }
      }
    }
@@ -547,7 +542,7 @@
        }
        catch (DatabaseException e)
        {
          handleUnexpectedDatabaseException(e);
          dbenv.shutdownOnException(e);
        }
      }
    }
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNData.java
@@ -25,7 +25,7 @@
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Portions Copyright 2010-2013 ForgeRock AS.
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.UnsupportedEncodingException;
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java
@@ -25,7 +25,7 @@
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.util.ArrayList;
import java.util.List;
@@ -42,8 +42,10 @@
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.common.MultiDomainServerState;
import org.opends.server.replication.common.ServerState;
import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor;
import org.opends.server.types.Attribute;
import org.opends.server.types.Attributes;
import org.opends.server.types.InitializationException;
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
File was renamed from opends/src/server/org/opends/server/replication/server/DraftCNDbIterator.java
@@ -25,13 +25,13 @@
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import org.opends.messages.Message;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor;
import org.opends.server.types.DebugLogLevel;
import static org.opends.server.loggers.debug.DebugLogger.*;
opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java
File was renamed from opends/src/server/org/opends/server/replication/server/JEReplicationIterator.java
@@ -25,14 +25,14 @@
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import org.opends.messages.Message;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.ReplicationDB.ReplServerDBCursor;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.api.ReplicationIterator;
import org.opends.server.replication.server.changelog.je.ReplicationDB.ReplServerDBCursor;
/**
 * Berkeley DB JE implementation of IReplicationIterator.
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDB.java
@@ -25,7 +25,7 @@
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.Closeable;
import java.io.UnsupportedEncodingException;
@@ -37,6 +37,8 @@
import org.opends.messages.MessageBuilder;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.util.StaticUtils;
@@ -212,7 +214,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
    }
    finally
    {
@@ -220,12 +222,6 @@
    }
  }
  private void handleUnexpectedDatabaseException(DatabaseException e)
  {
    ChangelogException ex = new ChangelogException(e);
    replicationServer.handleUnexpectedChangelogException(ex);
  }
  private void insertCounterRecordIfNeeded(ChangeNumber changeNumber)
      throws DatabaseException
  {
@@ -373,7 +369,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
      return null;
    }
    finally
@@ -432,7 +428,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
      return null;
    }
    finally
@@ -493,7 +489,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
    }
    finally
    {
@@ -717,7 +713,7 @@
        }
        catch (DatabaseException e)
        {
          handleUnexpectedDatabaseException(e);
          dbenv.shutdownOnException(e);
        }
      }
    }
@@ -750,7 +746,7 @@
        }
        catch (DatabaseException e)
        {
          handleUnexpectedDatabaseException(e);
          dbenv.shutdownOnException(e);
        }
      }
    }
@@ -956,7 +952,7 @@
    }
    catch (DatabaseException e)
    {
      handleUnexpectedDatabaseException(e);
      dbenv.shutdownOnException(e);
    }
    finally
    {
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationData.java
@@ -25,7 +25,7 @@
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 *      Portions Copyright 2010-2011 ForgeRock AS.
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.UnsupportedEncodingException;
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
@@ -25,7 +25,7 @@
 *      Copyright 2006-2009 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.File;
import java.io.UnsupportedEncodingException;
@@ -34,6 +34,7 @@
import org.opends.messages.Message;
import org.opends.messages.MessageBuilder;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import com.sleepycat.je.*;
@@ -567,4 +568,43 @@
        throw new ChangelogException(e);
      }
    }
  /**
   * Shuts down replication when an unexpected database exception occurs. Note
   * that we do not expect lock timeouts or txn timeouts because the replication
   * databases are deadlock free, thus all operations should complete
   * eventually.
   *
   * @param e
   *          The unexpected database exception.
   */
  void shutdownOnException(DatabaseException e)
  {
    innerShutdownOnException(e);
  }
  /**
   * Shuts down replication when an unexpected changelog exception occurs. Note
   * that we do not expect lock timeouts or txn timeouts because the replication
   * databases are deadlock free, thus all operations should complete
   * eventually.
   *
   * @param e
   *          The unexpected changelog exception.
   */
  void shutdownOnException(ChangelogException e)
  {
    innerShutdownOnException(e);
  }
  private void innerShutdownOnException(Exception e)
  {
    MessageBuilder mb = new MessageBuilder();
    mb.append(ERR_CHANGELOG_SHUTDOWN_DATABASE_ERROR.get());
    mb.append(".   ");
    mb.append(stackTraceToSingleLineString(e));
    logError(mb.toMessage());
    replicationServer.shutdown();
  }
}
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java
File was renamed from opends/src/server/org/opends/server/replication/server/ReplicationDraftCNKey.java
@@ -25,7 +25,7 @@
 *      Copyright 2009 Sun Microsystems, Inc.
 *      Portions Copyright 2010-2013 ForgeRock AS.
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import java.io.UnsupportedEncodingException;
opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java
New file
@@ -0,0 +1,34 @@
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Portions Copyright 2013 ForgeRock AS
 */
/**
 * This package contains the Berkeley DB JE implementation for the changelog
 * database API.
 */
@org.opends.server.types.PublicAPI(
    stability = org.opends.server.types.StabilityLevel.PRIVATE)
package org.opends.server.replication.server.changelog.je;
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -53,10 +53,10 @@
import org.opends.server.replication.plugin.LDAPReplicationDomain;
import org.opends.server.replication.plugin.MultimasterReplication;
import org.opends.server.replication.protocol.*;
import org.opends.server.replication.server.DraftCNDbHandler;
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.je.DraftCNDbHandler;
import org.opends.server.replication.service.ReplicationBroker;
import org.opends.server.tools.LDAPSearch;
import org.opends.server.tools.LDAPWriter;
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
File was renamed from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
@@ -25,11 +25,7 @@
 *      Copyright 2006-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
import static org.opends.server.TestCaseUtils.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
import static org.testng.Assert.*;
package org.opends.server.replication.server.changelog.je;
import java.io.File;
import java.io.IOException;
@@ -42,9 +38,15 @@
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.common.ChangeNumberGenerator;
import org.opends.server.replication.protocol.DeleteMsg;
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.api.ReplicationIterator;
import org.testng.annotations.Test;
import static org.opends.server.TestCaseUtils.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
import static org.testng.Assert.*;
/**
 * Test the dbHandler class
 */
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
File was renamed from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DraftCNDbHandlerTest.java
@@ -25,7 +25,7 @@
 *      Copyright 2009-2010 Sun Microsystems, Inc.
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.replication.server;
package org.opends.server.replication.server.changelog.je;
import static org.testng.Assert.*;
@@ -35,7 +35,12 @@
import org.opends.server.replication.ReplicationTestCase;
import org.opends.server.replication.common.ChangeNumber;
import org.opends.server.replication.common.ChangeNumberGenerator;
import org.opends.server.replication.server.DraftCNDB.DraftCNDBCursor;
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.je.DraftCNDbHandler;
import org.opends.server.replication.server.changelog.je.DraftCNDbIterator;
import org.opends.server.replication.server.changelog.je.ReplicationDbEnv;
import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor;
import org.testng.annotations.Test;
/**