From 12262caeda60050c11b1c730fc9b02ed86a55fcf Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 05 Dec 2014 13:17:19 +0000
Subject: [PATCH] OPENDJ-1602 (CR-5566) New pluggable storage based backend
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java | 23 ----
opendj3-server-dev/src/server/org/opends/server/backends/jeb/JEBUtils.java | 104 ++++++++++++++++++++
opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java | 22 ----
opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java | 20 ---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java | 21 ----
opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java | 26 -----
opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java | 25 ----
opendj3-server-dev/src/server/org/opends/server/backends/jeb/State.java | 23 ----
8 files changed, 111 insertions(+), 153 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
index 5a02a04..594d304 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2ID.java
@@ -64,36 +64,12 @@
comparator = new AttributeIndex.KeyComparator();
prefixRDNComponents = entryContainer.getBaseDN().size();
- DatabaseConfig dn2idConfig = new DatabaseConfig();
- if(env.getConfig().getReadOnly())
- {
- dn2idConfig.setReadOnly(true);
- dn2idConfig.setAllowCreate(false);
- dn2idConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dn2idConfig.setAllowCreate(true);
- dn2idConfig.setTransactional(false);
- dn2idConfig.setDeferredWrite(true);
- }
- else
- {
- dn2idConfig.setAllowCreate(true);
- dn2idConfig.setTransactional(true);
- }
-
- this.dbConfig = dn2idConfig;
+ this.dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(env);
this.dbConfig.setKeyPrefixing(true);
-
- //This line causes an unchecked cast error if the SuppressWarnings
- //annotation is removed at the beginning of this method.
this.dbConfig.setBtreeComparator((Class<? extends Comparator<byte[]>>) comparator.getClass());
}
-
-
/**
* Insert a new record into the DN database.
* @param txn A JE database transaction to be used for the database operation,
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
index ba37734..f025007 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DN2URI.java
@@ -103,31 +103,8 @@
dn2uriComparator = new AttributeIndex.KeyComparator();
prefixRDNComponents = entryContainer.getBaseDN().size();
- DatabaseConfig dn2uriConfig = new DatabaseConfig();
- if(env.getConfig().getReadOnly())
- {
- dn2uriConfig.setReadOnly(true);
- dn2uriConfig.setSortedDuplicates(true);
- dn2uriConfig.setAllowCreate(false);
- dn2uriConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dn2uriConfig.setSortedDuplicates(true);
- dn2uriConfig.setAllowCreate(true);
- dn2uriConfig.setTransactional(false);
- dn2uriConfig.setDeferredWrite(true);
- }
- else
- {
- dn2uriConfig.setSortedDuplicates(true);
- dn2uriConfig.setAllowCreate(true);
- dn2uriConfig.setTransactional(true);
- }
- this.dbConfig = dn2uriConfig;
- //This line causes an unchecked cast error if the SuppressWarnings
- //annotation is removed at the beginning of this method.
+ this.dbConfig = JEBUtils.toDatabaseConfigAllowDuplicates(env);
this.dbConfig.setBtreeComparator((Class<? extends Comparator<byte[]>>)
dn2uriComparator.getClass());
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
index 1a1cae0..95fa0da 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ID2Entry.java
@@ -235,28 +235,7 @@
{
super(name, env, entryContainer);
this.dataConfig = dataConfig;
-
- DatabaseConfig dbNodupsConfig = new DatabaseConfig();
-
- if(env.getConfig().getReadOnly())
- {
- dbNodupsConfig.setReadOnly(true);
- dbNodupsConfig.setAllowCreate(false);
- dbNodupsConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(false);
- dbNodupsConfig.setDeferredWrite(true);
- }
- else
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(true);
- }
-
- this.dbConfig = dbNodupsConfig;
+ this.dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(env);
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
index aad9ba6..5bf9e81 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
@@ -144,26 +144,7 @@
this.newImportIDSet = new ImportIDSet(indexEntryLimit,
indexEntryLimit, maintainCount);
- final DatabaseConfig dbNodupsConfig = new DatabaseConfig();
- if(env.getConfig().getReadOnly())
- {
- dbNodupsConfig.setReadOnly(true);
- dbNodupsConfig.setAllowCreate(false);
- dbNodupsConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(false);
- dbNodupsConfig.setDeferredWrite(true);
- }
- else
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(true);
- }
-
- this.dbConfig = dbNodupsConfig;
+ this.dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(env);
this.dbConfig.setOverrideBtreeComparator(true);
this.dbConfig.setBtreeComparator((Class<? extends Comparator<byte[]>>)
comparator.getClass());
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JEBUtils.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JEBUtils.java
new file mode 100644
index 0000000..da2a4d3
--- /dev/null
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JEBUtils.java
@@ -0,0 +1,104 @@
+/*
+ * 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 legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * 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 legal-notices/CDDLv1_0.txt.
+ * 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
+ *
+ * Copyright 2014 ForgeRock AS
+ */
+package org.opends.server.backends.jeb;
+
+import com.sleepycat.je.DatabaseConfig;
+import com.sleepycat.je.Environment;
+
+/**
+ * JE Backend utility methods.
+ */
+final class JEBUtils
+{
+ private JEBUtils()
+ {
+ // Private for utility classes
+ }
+
+ /**
+ * Converts the provided JE environment to a {@link DatabaseConfig} object
+ * that disallows duplicates.
+ *
+ * @param env
+ * the environment object to convert
+ * @return a new {@link DatabaseConfig} object
+ */
+ static DatabaseConfig toDatabaseConfigNoDuplicates(Environment env)
+ {
+ final DatabaseConfig result = new DatabaseConfig();
+ if (env.getConfig().getReadOnly())
+ {
+ result.setReadOnly(true);
+ result.setAllowCreate(false);
+ result.setTransactional(false);
+ }
+ else if (!env.getConfig().getTransactional())
+ {
+ result.setAllowCreate(true);
+ result.setTransactional(false);
+ result.setDeferredWrite(true);
+ }
+ else
+ {
+ result.setAllowCreate(true);
+ result.setTransactional(true);
+ }
+ return result;
+ }
+
+ /**
+ * Converts the provided JE environment to a {@link DatabaseConfig} object
+ * that allows duplicates.
+ *
+ * @param env
+ * the environment object to convert
+ * @return a new {@link DatabaseConfig} object
+ */
+ static DatabaseConfig toDatabaseConfigAllowDuplicates(Environment env)
+ {
+ final DatabaseConfig result = new DatabaseConfig();
+ if (env.getConfig().getReadOnly())
+ {
+ result.setReadOnly(true);
+ result.setSortedDuplicates(true);
+ result.setAllowCreate(false);
+ result.setTransactional(false);
+ }
+ else if (!env.getConfig().getTransactional())
+ {
+ result.setSortedDuplicates(true);
+ result.setAllowCreate(true);
+ result.setTransactional(false);
+ result.setDeferredWrite(true);
+ }
+ else
+ {
+ result.setSortedDuplicates(true);
+ result.setAllowCreate(true);
+ result.setTransactional(true);
+ }
+ return result;
+ }
+}
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
index 030dbf1..5bc5bff 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JECompressedSchema.java
@@ -196,25 +196,7 @@
*/
private void load() throws DatabaseException, InitializationException
{
- final DatabaseConfig dbConfig = new DatabaseConfig();
-
- if (environment.getConfig().getReadOnly())
- {
- dbConfig.setReadOnly(true);
- dbConfig.setAllowCreate(false);
- dbConfig.setTransactional(false);
- }
- else if (!environment.getConfig().getTransactional())
- {
- dbConfig.setAllowCreate(true);
- dbConfig.setTransactional(false);
- dbConfig.setDeferredWrite(true);
- }
- else
- {
- dbConfig.setAllowCreate(true);
- dbConfig.setTransactional(true);
- }
+ final DatabaseConfig dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(environment);
adDatabase = environment.openDatabase(null, DB_NAME_AD, dbConfig);
ocDatabase = environment.openDatabase(null, DB_NAME_OC, dbConfig);
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/State.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/State.java
index 2defca3..18a556b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/State.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/State.java
@@ -58,28 +58,7 @@
throws DatabaseException
{
super(name, env, entryContainer);
-
- DatabaseConfig dbNodupsConfig = new DatabaseConfig();
-
- if(env.getConfig().getReadOnly())
- {
- dbNodupsConfig.setReadOnly(true);
- dbNodupsConfig.setAllowCreate(false);
- dbNodupsConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(false);
- dbNodupsConfig.setDeferredWrite(true);
- }
- else
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(true);
- }
-
- this.dbConfig = dbNodupsConfig;
+ this.dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(env);
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
index 7a33220..7083882 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -187,27 +187,7 @@
this.sortOrder = new SortOrder(sortKeys);
this.comparator = new VLVKeyComparator(orderingRules, ascending);
- DatabaseConfig dbNodupsConfig = new DatabaseConfig();
-
- if(env.getConfig().getReadOnly())
- {
- dbNodupsConfig.setReadOnly(true);
- dbNodupsConfig.setAllowCreate(false);
- dbNodupsConfig.setTransactional(false);
- }
- else if(!env.getConfig().getTransactional())
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(false);
- dbNodupsConfig.setDeferredWrite(true);
- }
- else
- {
- dbNodupsConfig.setAllowCreate(true);
- dbNodupsConfig.setTransactional(true);
- }
-
- this.dbConfig = dbNodupsConfig;
+ this.dbConfig = JEBUtils.toDatabaseConfigNoDuplicates(env);
this.dbConfig.setOverrideBtreeComparator(true);
this.dbConfig.setBtreeComparator(this.comparator);
--
Gitblit v1.10.0