From 781c0f528e641593c3c0a6ba2dede19919c29d72 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 26 May 2015 08:39:56 +0000
Subject: [PATCH] OPENDJ-2016 Implement new on disk merge import strategy based on storage engine
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
index 42e21d0..319dffb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java
@@ -44,8 +44,10 @@
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ByteStringBuilder;
import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.util.Reject;
import org.opends.server.api.CompressedSchema;
import org.opends.server.backends.pluggable.spi.Cursor;
+import org.opends.server.backends.pluggable.spi.Importer;
import org.opends.server.backends.pluggable.spi.ReadableTransaction;
import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
import org.opends.server.backends.pluggable.spi.TreeName;
@@ -323,6 +325,7 @@
public void put(WriteableTransaction txn, EntryID id, Entry entry)
throws StorageRuntimeException, DirectoryException
{
+ Reject.ifNull(txn);
ByteString key = id.toByteString();
EntryCodec codec = acquireEntryCodec();
try
@@ -337,6 +340,32 @@
}
/**
+ * Write a record in the entry tree.
+ *
+ * @param importer a non null importer
+ * @param id The entry ID which forms the key.
+ * @param entry The LDAP entry.
+ * @throws StorageRuntimeException If an error occurs in the storage.
+ * @throws DirectoryException If a problem occurs while attempting to encode the entry.
+ */
+ public void importPut(Importer importer, EntryID id, Entry entry)
+ throws StorageRuntimeException, DirectoryException
+ {
+ Reject.ifNull(importer);
+ ByteString key = id.toByteString();
+ EntryCodec codec = acquireEntryCodec();
+ try
+ {
+ ByteString value = codec.encodeInternal(entry, dataConfig);
+ importer.put(getName(), key, value);
+ }
+ finally
+ {
+ codec.release();
+ }
+ }
+
+ /**
* Remove a record from the entry tree.
*
* @param txn a non null transaction
--
Gitblit v1.10.0