From b10a33c6e4b6e583b9bd2b31de7f04b5fe32d6c8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 13 Aug 2013 15:15:13 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java                             |   42 ++++++++++
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java                        |    2 
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java                                  |    2 
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java        |   12 +-
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java                            |    4 
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java                                |   24 ++---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java |    9 +
 opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java                                    |    6 +
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java                                         |   38 ++-------
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java                    |    2 
 opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java                                 |   34 ++++++++
 opends/src/server/org/opends/server/replication/server/ECLServerHandler.java                                          |    2 
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java                                    |   21 ++---
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java                             |    6 +
 opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java                        |    4 
 opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java                                   |    1 
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java                              |    2 
 17 files changed, 135 insertions(+), 76 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 704aec6..eb5ed4e 100644
--- a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/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;
 
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index 379dfe4..d02fe4a 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/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
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 13c3b20..e335175 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/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;
 
diff --git a/opends/src/server/org/opends/server/replication/server/DbHandler.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
similarity index 98%
rename from opends/src/server/org/opends/server/replication/server/DbHandler.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
index b5bae4e..aa42e8a 100644
--- a/opends/src/server/org/opends/server/replication/server/DbHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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;
diff --git a/opends/src/server/org/opends/server/replication/server/DraftCNDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
similarity index 96%
rename from opends/src/server/org/opends/server/replication/server/DraftCNDB.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
index 5d7db0d..07161e0 100644
--- a/opends/src/server/org/opends/server/replication/server/DraftCNDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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);
         }
       }
     }
diff --git a/opends/src/server/org/opends/server/replication/server/DraftCNData.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
similarity index 98%
rename from opends/src/server/org/opends/server/replication/server/DraftCNData.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
index 0ec95c2..2d69b54 100644
--- a/opends/src/server/org/opends/server/replication/server/DraftCNData.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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;
 
diff --git a/opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
similarity index 98%
rename from opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
index 2f33a83..94c915e 100644
--- a/opends/src/server/org/opends/server/replication/server/DraftCNDbHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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;
diff --git a/opends/src/server/org/opends/server/replication/server/DraftCNDbIterator.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
similarity index 96%
rename from opends/src/server/org/opends/server/replication/server/DraftCNDbIterator.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
index 2cb2036..2d06d44 100644
--- a/opends/src/server/org/opends/server/replication/server/DraftCNDbIterator.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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.*;
diff --git a/opends/src/server/org/opends/server/replication/server/JEReplicationIterator.java b/opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java
similarity index 96%
rename from opends/src/server/org/opends/server/replication/server/JEReplicationIterator.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicationIterator.java
index 16e6243..d737a26 100644
--- a/opends/src/server/org/opends/server/replication/server/JEReplicationIterator.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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.
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
similarity index 98%
rename from opends/src/server/org/opends/server/replication/server/ReplicationDB.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
index b3d89ba..287b243 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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
     {
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationData.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java
similarity index 97%
rename from opends/src/server/org/opends/server/replication/server/ReplicationData.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationData.java
index 867f052..d602ca3 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationData.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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;
 
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
similarity index 93%
rename from opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index d0d3e2b..d6d5707 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDbEnv.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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();
+  }
+
 }
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDraftCNKey.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java
similarity index 97%
rename from opends/src/server/org/opends/server/replication/server/ReplicationDraftCNKey.java
rename to opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDraftCNKey.java
index 741c497..e275295 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDraftCNKey.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/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;
 
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java b/opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java
new file mode 100644
index 0000000..723b91f
--- /dev/null
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/package-info.java
@@ -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;
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index 80f9853..bf0b00b 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/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;
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
similarity index 98%
rename from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
rename to opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
index 88001a7..f36531c 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DbHandlerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/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
  */
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DraftCNDbHandlerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
similarity index 94%
rename from opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DraftCNDbHandlerTest.java
rename to opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
index a2360db..16609fb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/DraftCNDbHandlerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/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;
 
 /**

--
Gitblit v1.10.0