mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
07.58.2014 b65bd54d8be478ea609755dd951fdc99619bfb33
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Friday, March 7, 2014 11:58 +0100
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Friday, March 7, 2014 11:58 +0100
commitb65bd54d8be478ea609755dd951fdc99619bfb33
tree 10a523e686f9522e96a7bb85664ba16000a7a89c tree | zip | gz
parent c2cceaed64a6101b9d6c77950311ba0b0466972b view | diff
OPENDJ-1308 Migrate schema support

Moved JE backend indexer code closer to the SDK's IndexQueryFactory.
Removed a lot of duplicated code by relying more on the ExtensibleIndexer.



ExtensibleIndexer.java:
Removed getKeys(AttributeValue, Map<byte[], Boolean>, Boolean) + Moved its code to JEExtensibleIndexer.
Moved computeModifiedKeys() to JEExtensibleIndexer.


ApproximateIndexer.java, EqualityIndexer.java, OrderingIndexer.java, SubstringIndexer.java:
Now extends ExtensibleIndexer.
Removed all code made redundant by new superclass.
Added getIndexID() (not implemented).
Added getExtensibleIndexID().
Kept getKeys(AttributeValue, Set<byte[]>).

CollationMatchingRuleFactory.java:
Extracted method addLengthAndBytes().
Inlined substringKeys(ByteString, Set<byte[]>) code into CollationSubstringExtensibleIndexer.getKeys().
Removed substringKeys(ByteString, Map<byte[], Boolean>, Boolean) and CollationSubstringExtensibleIndexer.getKeys(AttributeValue, Map<byte[], Boolean>), duplicates of ExtensibleIndexer.getKeys(AttributeValue, Map<byte[], Boolean>, Boolean).

JEExtensibleIndexer.java:
In ctor, accepted MatchingRule instead of ExtensibleMatchingRule.
In indexAttribute(List<Attribute>, Map<byte[], Boolean>, Boolean), called indexAttribute(List<Attribute>, Set<byte[]>) + put code from ExtensibleIndexer.getKeys(AttributeValue, Map<byte[], Boolean>, Boolean) here.
Moved ExtensibleIndexer.computeModifiedKeys() here.


AttributeIndex.java:
Extracted methods buildExtIndex(), openNewIndex(), open(), addEntry(), removeEntry(), modifyEntry(), setTrusted(), setRebuildStatus(), addIfNotNull().
In close(), used Utils.closeSilently().
Extracted method evaluateOrderingFilter() to factorize code for evaluateGreaterOrEqualFilter() and evaluateLessOrEqualFilter().
In applyConfigurationChange(), removed all catch(DatabaseException) because they are duplicating the larger catch(Exception) in this method + made adminActionRequired an AtomicBoolean to use it as in/out parameter.


DatabaseContainer.java:
Now implements Closeable + Made close() public.

NullIndex.java:
Made close() public.
Removed all synchronized keywords, totally unnecessary here.

TestBackendImpl.java:
Consequence of all the changes above.
Used static imports.
11 files modified
2015 ■■■■ changed files
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/ExtensibleIndexer.java 54 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java 164 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java 851 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/DatabaseContainer.java 24 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java 176 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/JEExtensibleIndexer.java 43 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/NullIndex.java 164 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/OrderingIndexer.java 157 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/SubstringIndexer.java 184 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java 116 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/backends/jeb/TestBackendImpl.java 82 ●●●● diff | view | raw | blame | history