opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -44,10 +44,10 @@ import org.opends.server.admin.server.ConfigurationChangeListener; import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn.IndexType; import org.opends.server.admin.std.server.LocalDBIndexCfg; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteOperation; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteOperation; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.core.DirectoryServer; import org.opends.server.types.*; import org.opends.server.util.StaticUtils; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
@@ -26,7 +26,6 @@ */ package org.opends.server.backends.pluggable; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.FilenameFilter; @@ -42,8 +41,6 @@ import org.forgerock.i18n.LocalizableMessage; import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.config.server.ConfigException; import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ConditionResult; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.util.Reject; @@ -54,7 +51,9 @@ import org.opends.server.api.Backend; import org.opends.server.api.DiskSpaceMonitorHandler; import org.opends.server.api.MonitorProvider; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.WriteOperation; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.core.*; import org.opends.server.extensions.DiskSpaceMonitor; import org.opends.server.types.*; @@ -76,197 +75,6 @@ { private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); public interface Importer extends Closeable { void createTree(TreeName name); void put(TreeName name, ByteSequence key, ByteSequence value); @Override void close(); } public interface ReadOperation<T> { T run(ReadableStorage txn) throws Exception; } public interface ReadableStorage { ByteString get(TreeName name, ByteSequence key); ByteString getRMW(TreeName name, ByteSequence key); Cursor openCursor(TreeName name); // TODO: contains, etc. } public interface Cursor extends Closeable { boolean positionToKey(ByteSequence key); boolean positionToKeyOrNext(ByteSequence key); boolean positionToLastKey(); boolean next(); boolean previous(); ByteString getKey(); ByteString getValue(); @Override public void close(); } public interface Storage extends Closeable { void initialize(Map<String, String> options) throws Exception; Importer startImport() throws Exception; void open() throws Exception; <T> T read(ReadOperation<T> readTransaction) throws Exception; void write(WriteOperation updateTransaction) throws Exception; Cursor openCursor(TreeName name); @Override void close(); } @SuppressWarnings("serial") public static final class StorageRuntimeException extends RuntimeException { public StorageRuntimeException(final String message) { super(message); } public StorageRuntimeException(final String message, final Throwable cause) { super(message, cause); } public StorageRuntimeException(final Throwable cause) { super(cause); } } /** Assumes name components don't contain a '/'. */ public static final class TreeName { public static TreeName of(final String... names) { return new TreeName(Arrays.asList(names)); } private final List<String> names; private final String s; public TreeName(final List<String> names) { this.names = names; final StringBuilder builder = new StringBuilder(); for (final String name : names) { builder.append('/'); builder.append(name); } this.s = builder.toString(); } public List<String> getNames() { return names; } public TreeName child(final String name) { final List<String> newNames = new ArrayList<String>(names.size() + 1); newNames.addAll(names); newNames.add(name); return new TreeName(newNames); } public TreeName getSuffix() { if (names.size() == 0) { throw new IllegalStateException(); } return new TreeName(Collections.singletonList(names.get(0))); } public boolean isSuffixOf(TreeName tree) { if (names.size() > tree.names.size()) { return false; } for (int i = 0; i < names.size(); i++) { if (!tree.names.get(i).equals(names.get(i))) { return false; } } return true; } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } else if (obj instanceof TreeName) { return s.equals(((TreeName) obj).s); } else { return false; } } @Override public int hashCode() { return s.hashCode(); } @Override public String toString() { return s; } } public interface WriteOperation { void run(WriteableStorage txn) throws Exception; } public interface WriteableStorage extends ReadableStorage { void openTree(TreeName name); void put(TreeName name, ByteSequence key, ByteSequence value); boolean putIfAbsent(TreeName treeName, ByteSequence key, ByteSequence value); boolean remove(TreeName name, ByteSequence key); } /** The configuration of this JE backend. */ private LocalDBBackendCfg cfg; /** The root JE container to use for this backend. */ opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2ID.java
@@ -28,11 +28,11 @@ import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.types.DN; import static org.opends.server.backends.pluggable.JebFormat.*; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java
@@ -40,12 +40,12 @@ import org.forgerock.opendj.ldap.ConditionResult; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.SearchScope; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.core.DirectoryServer; import org.opends.server.core.SearchOperation; import org.opends.server.types.Attribute; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DatabaseContainer.java
@@ -31,12 +31,12 @@ import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.util.ServerConstants; import org.opends.server.util.StaticUtils; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DbPreloadComparator.java
@@ -28,7 +28,7 @@ import java.util.Comparator; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.spi.TreeName; /** * This comparator is used to sort databases in order of priority opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryCachePreloader.java
@@ -41,7 +41,7 @@ import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.api.DirectoryThread; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.core.DirectoryServer; import org.opends.server.types.Entry; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EntryContainer.java
@@ -58,14 +58,14 @@ import org.opends.server.api.EntryCache; import org.opends.server.api.plugin.PluginResult.SubordinateDelete; import org.opends.server.api.plugin.PluginResult.SubordinateModifyDN; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadOperation; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteOperation; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadOperation; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteOperation; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.controls.PagedResultsControl; import org.opends.server.controls.ServerSideSortRequestControl; import org.opends.server.controls.ServerSideSortResponseControl; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/EnvManager.java
@@ -31,7 +31,7 @@ import org.forgerock.i18n.LocalizableMessage; import org.forgerock.i18n.slf4j.LocalizedLogger; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import static org.opends.messages.JebMessages.*; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/ExportJob.java
@@ -34,9 +34,9 @@ import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.types.DN; import org.opends.server.types.Entry; import org.opends.server.types.LDIFExportConfig; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/ID2Entry.java
@@ -41,11 +41,11 @@ import org.forgerock.opendj.ldap.ByteStringBuilder; import org.forgerock.opendj.ldap.DecodeException; import org.opends.server.api.CompressedSchema; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java
@@ -37,13 +37,13 @@ import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ConditionResult; import org.forgerock.opendj.ldap.spi.IndexingOptions; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.IndexBuffer.BufferedIndexValues; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.Modification; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/IndexBuffer.java
@@ -34,8 +34,8 @@ import org.forgerock.opendj.ldap.ByteSequence; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.types.DirectoryException; /** opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/JECompressedSchema.java
@@ -39,9 +39,9 @@ import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ByteStringBuilder; import org.opends.server.api.CompressedSchema; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DirectoryException; import org.opends.server.types.InitializationException; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/NullIndex.java
@@ -30,11 +30,11 @@ import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.ConditionResult; import org.forgerock.opendj.ldap.spi.IndexingOptions; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.Modification; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/RootContainer.java
@@ -39,12 +39,12 @@ import org.opends.server.api.Backend; import org.opends.server.api.CompressedSchema; import org.opends.server.backends.persistit.PersistItStorage; import org.opends.server.backends.pluggable.BackendImpl.ReadOperation; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteOperation; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.ReadOperation; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteOperation; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.core.DefaultCompressedSchema; import org.opends.server.core.DirectoryServer; import org.opends.server.types.ConfigChangeResult; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/SortValuesSet.java
@@ -31,7 +31,7 @@ import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.MatchingRule; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.types.AttributeType; import org.opends.server.types.DirectoryException; import org.opends.server.types.SortKey; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/State.java
@@ -27,11 +27,11 @@ package org.opends.server.backends.pluggable; import org.forgerock.opendj.ldap.ByteString; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.TreeName; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.TreeName; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.util.StaticUtils; /** opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
@@ -46,12 +46,12 @@ import org.opends.server.admin.server.ConfigurationChangeListener; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope; import org.opends.server.admin.std.server.LocalDBVLVIndexCfg; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.Storage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.BackendImpl.WriteOperation; import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.Storage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.WriteOperation; import org.opends.server.backends.pluggable.spi.WriteableStorage; import org.opends.server.controls.ServerSideSortRequestControl; import org.opends.server.controls.VLVRequestControl; import org.opends.server.controls.VLVResponseControl; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVKeyComparator.java
@@ -33,7 +33,7 @@ import org.forgerock.opendj.ldap.DecodeException; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.MatchingRule; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DirectoryException; opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
@@ -48,10 +48,10 @@ import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.schema.MatchingRule; import org.forgerock.opendj.ldap.spi.IndexingOptions; import org.opends.server.backends.pluggable.BackendImpl.Cursor; import org.opends.server.backends.pluggable.BackendImpl.ReadOperation; import org.opends.server.backends.pluggable.BackendImpl.ReadableStorage; import org.opends.server.backends.pluggable.BackendImpl.StorageRuntimeException; import org.opends.server.backends.pluggable.spi.Cursor; import org.opends.server.backends.pluggable.spi.ReadOperation; import org.opends.server.backends.pluggable.spi.ReadableStorage; import org.opends.server.backends.pluggable.spi.StorageRuntimeException; import org.opends.server.core.DirectoryServer; import org.opends.server.types.Attribute; import org.opends.server.types.AttributeType;