opendj-config-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/BackendIndexConfiguration.xml
New file @@ -0,0 +1,232 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- ! 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 2007-2009 Sun Microsystems, Inc. ! Portions copyright 2014 ForgeRock AS. ! --> <adm:managed-object name="backend-index" plural-name="backend-indexes" package="org.forgerock.opendj.server.config" xmlns:adm="http://opendj.forgerock.org/admin" xmlns:ldap="http://opendj.forgerock.org/admin-ldap"> <adm:synopsis> <adm:user-friendly-plural-name /> are used to store information that makes it possible to locate entries very quickly when processing search operations. </adm:synopsis> <adm:description> Indexing is performed on a per-attribute level and different types of indexing may be performed for different kinds of attributes, based on how they are expected to be accessed during search operations. </adm:description> <adm:tag name="database" /> <adm:profile name="ldap"> <ldap:object-class> <ldap:name>ds-cfg-backend-index</ldap:name> <ldap:superior>top</ldap:superior> </ldap:object-class> </adm:profile> <adm:property name="attribute" mandatory="true" read-only="true"> <adm:synopsis> Specifies the name of the attribute for which the index is to be maintained. </adm:synopsis> <adm:syntax> <adm:attribute-type /> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-attribute</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="index-entry-limit"> <adm:synopsis> Specifies the maximum number of entries that are allowed to match a given index key before that particular index key is no longer maintained. </adm:synopsis> <adm:description> This is analogous to the ALL IDs threshold in the Sun Java System Directory Server. If this is specified, its value overrides the JE backend-wide configuration. For no limit, use 0 for the value. </adm:description> <adm:requires-admin-action> <adm:other> <adm:synopsis> If any index keys have already reached this limit, indexes must be rebuilt before they will be allowed to use the new limit. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:default-behavior> <adm:inherited> <adm:relative property-name="index-entry-limit" offset="1" managed-object-name="local-db-backend" /> </adm:inherited> </adm:default-behavior> <adm:syntax> <adm:integer lower-limit="0" upper-limit="2147483647"> <adm:unit-synopsis>Number of entries</adm:unit-synopsis> </adm:integer> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-index-entry-limit</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="index-type" mandatory="true" multi-valued="true"> <adm:synopsis> Specifies the type(s) of indexing that should be performed for the associated attribute. </adm:synopsis> <adm:description> For equality, presence, and substring index types, the associated attribute type must have a corresponding matching rule. </adm:description> <adm:requires-admin-action> <adm:other> <adm:synopsis> If any new index types are added for an attribute, and values for that attribute already exist in the database, the index must be rebuilt before it will be accurate. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:syntax> <adm:enumeration> <adm:value name="equality"> <adm:synopsis> This index type is used to improve the efficiency of searches using equality search filters. </adm:synopsis> </adm:value> <adm:value name="ordering"> <adm:synopsis> This index type is used to improve the efficiency of searches using "greater than or equal to" or "less then or equal to" search filters. </adm:synopsis> </adm:value> <adm:value name="presence"> <adm:synopsis> This index type is used to improve the efficiency of searches using the presence search filters. </adm:synopsis> </adm:value> <adm:value name="substring"> <adm:synopsis> This index type is used to improve the efficiency of searches using substring search filters. </adm:synopsis> </adm:value> <adm:value name="approximate"> <adm:synopsis> This index type is used to improve the efficiency of searches using approximate matching search filters. </adm:synopsis> </adm:value> <adm:value name="extensible"> <adm:synopsis> This index type is used to improve the efficiency of searches using extensible matching search filters. </adm:synopsis> </adm:value> </adm:enumeration> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-index-type</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="substring-length" advanced="true"> <adm:synopsis> The length of substrings in a substring index. </adm:synopsis> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt before it will reflect the new value. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:default-behavior> <adm:defined> <adm:value>6</adm:value> </adm:defined> </adm:default-behavior> <adm:syntax> <adm:integer lower-limit="3" /> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-substring-length</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="index-extensible-matching-rule" multi-valued="true"> <adm:synopsis> The extensible matching rule in an extensible index. </adm:synopsis> <adm:description> An extensible matching rule must be specified using either LOCALE or OID of the matching rule. </adm:description> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt before it will reflect the new value. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:default-behavior> <adm:alias> <adm:synopsis> No extensible matching rules will be indexed. </adm:synopsis> </adm:alias> </adm:default-behavior> <adm:syntax> <adm:string> <adm:pattern> <adm:regex>([a-z][a-z](-[A-Z][A-Z]){0,2}(.(([a-z]{2,3})|\\d))?)|(^\\d.((\\d)+.)+\\d$)</adm:regex> <adm:usage>LOCALE | OID</adm:usage> <adm:synopsis> A Locale or an OID. </adm:synopsis> </adm:pattern> </adm:string> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-index-extensible-matching-rule</ldap:name> </ldap:attribute> </adm:profile> </adm:property> </adm:managed-object> opendj-config-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/BackendVLVIndexConfiguration.xml
New file @@ -0,0 +1,232 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- ! 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 2007-2008 Sun Microsystems, Inc. ! Portions copyright 2014 ForgeRock AS. ! --> <adm:managed-object name="backend-vlv-index" plural-name="backend-vlv-indexes" package="org.forgerock.opendj.server.config" xmlns:adm="http://opendj.forgerock.org/admin" xmlns:ldap="http://opendj.forgerock.org/admin-ldap"> <adm:synopsis> <adm:user-friendly-plural-name /> are used to store information about a specific search request that makes it possible to efficiently process them using the VLV control. </adm:synopsis> <adm:description> A VLV index effectively notifies the server that a virtual list view, with specific query and sort parameters, will be performed. This index also allows the server to collect and maintain the information required to make using the virtual list view faster. </adm:description> <adm:tag name="database" /> <adm:profile name="ldap"> <ldap:object-class> <ldap:name>ds-cfg-backend-vlv-index</ldap:name> <ldap:superior>top</ldap:superior> </ldap:object-class> </adm:profile> <adm:property name="base-dn" mandatory="true"> <adm:synopsis> Specifies the base DN used in the search query that is being indexed. </adm:synopsis> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt after modifying this property. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:syntax> <adm:dn /> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-base-dn</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="scope" mandatory="true"> <adm:synopsis> Specifies the LDAP scope of the query that is being indexed. </adm:synopsis> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt after modifying this property. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:syntax> <adm:enumeration> <adm:value name="base-object"> <adm:synopsis>Search the base object only.</adm:synopsis> </adm:value> <adm:value name="single-level"> <adm:synopsis> Search the immediate children of the base object but do not include any of their descendants or the base object itself. </adm:synopsis> </adm:value> <adm:value name="subordinate-subtree"> <adm:synopsis> Search the entire subtree below the base object but do not include the base object itself. </adm:synopsis> </adm:value> <adm:value name="whole-subtree"> <adm:synopsis> Search the base object and the entire subtree below the base object. </adm:synopsis> </adm:value> </adm:enumeration> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-scope</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="filter" mandatory="true"> <adm:synopsis> Specifies the LDAP filter used in the query that is being indexed. </adm:synopsis> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt after modifying this property. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:syntax> <adm:string> <adm:pattern> <adm:regex>.*</adm:regex> <adm:usage>STRING</adm:usage> <adm:synopsis> A valid LDAP search filter. </adm:synopsis> </adm:pattern> </adm:string> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-filter</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="sort-order" mandatory="true"> <adm:synopsis> Specifies the names of the attributes that are used to sort the entries for the query being indexed. </adm:synopsis> <adm:description> Multiple attributes can be used to determine the sort order by listing the attribute names from highest to lowest precedence. Optionally, + or - can be prefixed to the attribute name to sort the attribute in ascending order or descending order respectively. </adm:description> <adm:requires-admin-action> <adm:other> <adm:synopsis> The index must be rebuilt after modifying this property. </adm:synopsis> </adm:other> </adm:requires-admin-action> <adm:syntax> <adm:string> <adm:pattern> <adm:regex>.*</adm:regex> <adm:usage>STRING</adm:usage> <adm:synopsis> Valid attribute types defined in the schema, separated by a space and optionally prefixed by + or -. </adm:synopsis> </adm:pattern> </adm:string> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-sort-order</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="name" mandatory="true" read-only="true"> <adm:synopsis> Specifies a unique name for this VLV index. </adm:synopsis> <adm:requires-admin-action> <adm:none> <adm:synopsis> The VLV index name cannot be altered after the index is created. </adm:synopsis> </adm:none> </adm:requires-admin-action> <adm:syntax> <adm:string /> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-name</ldap:name> </ldap:attribute> </adm:profile> </adm:property> <adm:property name="max-block-size" read-only="true" advanced="true"> <adm:synopsis> Specifies the number of entry IDs to store in a single sorted set before it must be split. </adm:synopsis> <adm:requires-admin-action> <adm:none> <adm:synopsis> The blocks are resized lazily the next time the index is modified. </adm:synopsis> </adm:none> </adm:requires-admin-action> <adm:default-behavior> <adm:defined> <adm:value>4000</adm:value> </adm:defined> </adm:default-behavior> <adm:syntax> <adm:integer> <adm:unit-synopsis>Number of entry IDs</adm:unit-synopsis> </adm:integer> </adm:syntax> <adm:profile name="ldap"> <ldap:attribute> <ldap:name>ds-cfg-max-block-size</ldap:name> </ldap:attribute> </adm:profile> </adm:property> </adm:managed-object> opendj-config-maven-plugin/src/main/resources/config/xml/org/forgerock/opendj/server/config/PluggableBackendConfiguration.xml
@@ -39,8 +39,8 @@ <ldap:superior>ds-cfg-backend</ldap:superior> </ldap:object-class> </adm:profile> <adm:relation name="backend-index" managed-object-name="local-db-index"> <adm:one-to-many naming-property="attribute" plural-name="backend-indexes"> <adm:relation name="backend-index"> <adm:one-to-many naming-property="attribute"> <adm:default-managed-object name="aci"> <adm:property name="index-type"> <adm:value>presence</adm:value> @@ -93,8 +93,8 @@ </cli:relation> </adm:profile> </adm:relation> <adm:relation name="backend-vlv-index" managed-object-name="local-db-vlv-index"> <adm:one-to-many naming-property="name" plural-name="backend-vlv-indexes"/> <adm:relation name="backend-vlv-index"> <adm:one-to-many naming-property="name"/> <adm:profile name="ldap"> <ldap:rdn-sequence>cn=VLV Index</ldap:rdn-sequence> </adm:profile> opendj-server3x-adapter/src/test/resources/config/schema/02-config.ldif
@@ -5774,4 +5774,25 @@ ds-cfg-disk-full-threshold $ ds-cfg-disk-low-threshold ) X-ORIGIN 'OpenDJ Directory Server' ) objectClasses: ( 1.3.6.1.4.1.36733.2.1.2.24 NAME 'ds-cfg-backend-index' SUP top STRUCTURAL MUST ( ds-cfg-attribute $ ds-cfg-index-type ) MAY ( ds-cfg-index-entry-limit $ ds-cfg-substring-length $ ds-cfg-index-extensible-matching-rule ) X-ORIGIN 'OpenDJ Directory Server' ) objectClasses: ( 1.3.6.1.4.1.36733.2.1.2.25 NAME 'ds-cfg-backend-vlv-index' SUP top STRUCTURAL MUST ( ds-cfg-base-dn $ ds-cfg-scope $ ds-cfg-filter $ ds-cfg-sort-order $ ds-cfg-name ) MAY ds-cfg-max-block-size X-ORIGIN 'OpenDJ Directory Server' )