From 9ff093de3e9f067d08bcc6d3134121128974a681 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 11 Apr 2014 13:47:56 +0000
Subject: [PATCH] OPENDJ-1308 Migrate schema support
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java | 45 +++++++++++++++++++++++++--------------------
1 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index beec8b1..1dcffd7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -35,8 +35,10 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.spi.IndexingOptions;
import org.forgerock.util.Utils;
import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn;
import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn.IndexType;
@@ -45,7 +47,6 @@
import org.opends.server.api.DiskSpaceMonitorHandler;
import org.opends.server.backends.jeb.*;
import org.opends.server.backends.jeb.RebuildConfig.RebuildMode;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.extensions.DiskSpaceMonitor;
import org.opends.server.types.*;
@@ -1529,20 +1530,20 @@
}
@Override
- void processAttribute(Index index, Entry entry, EntryID entryID,
+ void processAttribute(Index index, Entry entry, EntryID entryID, IndexingOptions options,
IndexKey indexKey) throws DatabaseException, InterruptedException
{
if (oldEntry != null)
{
deleteKeySet.clear();
- index.indexer.indexEntry(oldEntry, deleteKeySet);
+ index.indexer.indexEntry(oldEntry, deleteKeySet, options);
for (ByteString delKey : deleteKeySet)
{
processKey(index, delKey.toByteArray(), entryID, indexComparator, indexKey, false);
}
}
insertKeySet.clear();
- index.indexer.indexEntry(entry, insertKeySet);
+ index.indexer.indexEntry(entry, insertKeySet, options);
for (ByteString key : insertKeySet)
{
processKey(index, key.toByteArray(), entryID, indexComparator, indexKey, true);
@@ -1678,30 +1679,31 @@
InterruptedException, DirectoryException, JebException
{
AttributeIndex attributeIndex = mapEntry.getValue();
+ IndexingOptions options = attributeIndex.getIndexingOptions();
Index index;
if ((index = attributeIndex.getEqualityIndex()) != null)
{
- processAttribute(index, entry, entryID, new IndexKey(attributeType,
+ processAttribute(index, entry, entryID, options, new IndexKey(attributeType,
ImportIndexType.EQUALITY, index.getIndexEntryLimit()));
}
if ((index = attributeIndex.getPresenceIndex()) != null)
{
- processAttribute(index, entry, entryID, new IndexKey(attributeType,
+ processAttribute(index, entry, entryID, options, new IndexKey(attributeType,
ImportIndexType.PRESENCE, index.getIndexEntryLimit()));
}
if ((index = attributeIndex.getSubstringIndex()) != null)
{
- processAttribute(index, entry, entryID, new IndexKey(attributeType,
+ processAttribute(index, entry, entryID, options, new IndexKey(attributeType,
ImportIndexType.SUBSTRING, index.getIndexEntryLimit()));
}
if ((index = attributeIndex.getOrderingIndex()) != null)
{
- processAttribute(index, entry, entryID, new IndexKey(attributeType,
+ processAttribute(index, entry, entryID, options, new IndexKey(attributeType,
ImportIndexType.ORDERING, index.getIndexEntryLimit()));
}
if ((index = attributeIndex.getApproximateIndex()) != null)
{
- processAttribute(index, entry, entryID, new IndexKey(attributeType,
+ processAttribute(index, entry, entryID, options, new IndexKey(attributeType,
ImportIndexType.APPROXIMATE, index.getIndexEntryLimit()));
}
for (VLVIndex vlvIdx : suffix.getEntryContainer().getVLVIndexes())
@@ -1720,7 +1722,7 @@
{
for (Index subIndex : subIndexes)
{
- processAttribute(subIndex, entry, entryID, new IndexKey(
+ processAttribute(subIndex, entry, entryID, options, new IndexKey(
attributeType, ImportIndexType.EX_SUBSTRING, subIndex
.getIndexEntryLimit()));
}
@@ -1732,7 +1734,7 @@
{
for (Index sharedIndex : sharedIndexes)
{
- processAttribute(sharedIndex, entry, entryID, new IndexKey(
+ processAttribute(sharedIndex, entry, entryID, options, new IndexKey(
attributeType, ImportIndexType.EX_SHARED, sharedIndex
.getIndexEntryLimit()));
}
@@ -1740,11 +1742,11 @@
}
}
- void processAttribute(Index index, Entry entry, EntryID entryID,
+ void processAttribute(Index index, Entry entry, EntryID entryID, IndexingOptions options,
IndexKey indexKey) throws DatabaseException, InterruptedException
{
insertKeySet.clear();
- index.indexer.indexEntry(entry, insertKeySet);
+ index.indexer.indexEntry(entry, insertKeySet, options);
for (ByteString key : insertKeySet)
{
processKey(index, key.toByteArray(), entryID, indexComparator, indexKey, true);
@@ -3886,10 +3888,11 @@
AttributeType attrType = key.getAttributeType();
if (entry.hasAttribute(attrType))
{
- Collection<Index> indexes = mapEntry.getValue();
- for (Index index : indexes)
+ AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
+ IndexingOptions options = attributeIndex.getIndexingOptions();
+ for (Index index : mapEntry.getValue())
{
- processAttribute(index, entry, entryID, key);
+ processAttribute(index, entry, entryID, options, key);
}
}
}
@@ -3904,17 +3907,19 @@
AttributeType attrType = key.getAttributeType();
if (entry.hasAttribute(attrType))
{
+ AttributeIndex attributeIndex = entryContainer.getAttributeIndex(attrType);
+ IndexingOptions options = attributeIndex.getIndexingOptions();
ImportIndexType indexType = key.getIndexType();
Index index = mapEntry.getValue();
if (indexType == ImportIndexType.SUBSTRING)
{
- processAttribute(index, entry, entryID, new IndexKey(attrType,
- ImportIndexType.SUBSTRING, index.getIndexEntryLimit()));
+ processAttribute(index, entry, entryID, options,
+ new IndexKey(attrType, ImportIndexType.SUBSTRING, index.getIndexEntryLimit()));
}
else
{
- processAttribute(index, entry, entryID, new IndexKey(attrType,
- indexType, index.getIndexEntryLimit()));
+ processAttribute(index, entry, entryID, options,
+ new IndexKey(attrType, indexType, index.getIndexEntryLimit()));
}
}
}
--
Gitblit v1.10.0