From 7ddf5a923866031a7034f457715d6a5e4ecbca67 Mon Sep 17 00:00:00 2001
From: sin <sin@localhost>
Date: Sat, 31 Jan 2009 07:06:11 +0000
Subject: [PATCH] Integrating the changes related to Collation indexing support
---
opends/src/server/org/opends/server/backends/jeb/BackendImpl.java | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index 759789d..ed68cc0 100644
--- a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2007-2008 Sun Microsystems, Inc.
+ * Copyright 2007-2009 Sun Microsystems, Inc.
*/
package org.opends.server.backends.jeb;
import org.opends.messages.Message;
@@ -69,9 +69,10 @@
import org.opends.server.admin.std.server.LocalDBIndexCfg;
import org.opends.server.admin.Configuration;
import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.api.ExtensibleIndexer;
import org.opends.server.types.DN;
import org.opends.server.backends.jeb.importLDIF.Importer;
-
+import org.opends.server.api.ExtensibleMatchingRule;
/**
* This is an implementation of a Directory Server Backend which stores entries
* locally in a Berkeley DB JE database.
@@ -1131,13 +1132,30 @@
envConfig.setConfigParam("je.env.runCheckpointer", "false");
//Loop through local indexes and see if any are substring.
boolean hasSubIndex = false;
+subIndex:
for (String idx : cfg.listLocalDBIndexes()) {
- LocalDBIndexCfg indexCfg = cfg.getLocalDBIndex(idx);
+ final LocalDBIndexCfg indexCfg = cfg.getLocalDBIndex(idx);
Set<org.opends.server.admin.std.meta.LocalDBIndexCfgDefn.IndexType>
indexType = indexCfg.getIndexType();
if(indexType.contains(org.opends.server.admin.std.
meta.LocalDBIndexCfgDefn.IndexType.SUBSTRING)) {
hasSubIndex = true;
+ break;
+ }
+ Set<ExtensibleMatchingRule> matchingRules =
+ indexCfg.getIndexExtensibleMatchingRule();
+ for(ExtensibleMatchingRule rule: matchingRules)
+ {
+ for(ExtensibleIndexer indexer: rule.getIndexers(null))
+ {
+ String indexID = indexer.getExtensibleIndexID();
+ if(indexID.equals(EXTENSIBLE_INDEXER_ID_SUBSTRING))
+ {
+ //The ExtensibelMatchingRule is of substring type.
+ hasSubIndex = true;
+ break subIndex;
+ }
+ }
}
}
Importer importer = new Importer(importConfig, hasSubIndex);
--
Gitblit v1.10.0