Interface PluggableBackendCfgClient
-
- All Superinterfaces:
BackendCfgClient
,ConfigurationClient
,LocalBackendCfgClient
- All Known Subinterfaces:
JeBackendCfgClient
public interface PluggableBackendCfgClient extends LocalBackendCfgClient
A client-side interface for reading and modifying Pluggable Backend settings.A Pluggable Backend stores application data in a pluggable database.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <C extends BackendIndexCfgClient>
CcreateBackendIndex(ManagedObjectDefinition<C,? extends BackendIndexCfg> d, String name, Collection<PropertyException> exceptions)
Creates a new Backend Index.<C extends BackendVlvIndexCfgClient>
CcreateBackendVlvIndex(ManagedObjectDefinition<C,? extends BackendVlvIndexCfg> d, String name, Collection<PropertyException> exceptions)
Creates a new Backend Vlv Index.ManagedObjectDefinition<? extends PluggableBackendCfgClient,? extends PluggableBackendCfg>
definition()
Get the configuration definition associated with this Pluggable Backend.BackendIndexCfgClient
getBackendIndex(String name)
Gets the named Backend Index.BackendVlvIndexCfgClient
getBackendVlvIndex(String name)
Gets the named Backend Vlv Index.SortedSet<ValueOrExpression<Dn>>
getBaseDn()
Gets the "base-dn" property.ValueOrExpression<Integer>
getCipherKeyLength()
Gets the "cipher-key-length" property.ValueOrExpression<String>
getCipherTransformation()
Gets the "cipher-transformation" property.ValueOrExpression<Long>
getImportOffheapMemorySize()
Gets the "import-offheap-memory-size" property.ValueOrExpression<Integer>
getIndexEntryLimit()
Gets the "index-entry-limit" property.ValueOrExpression<Integer>
getIndexFilterAnalyzerMaxFilters()
Gets the "index-filter-analyzer-max-filters" property.ValueOrExpression<Long>
getPreloadTimeLimit()
Gets the "preload-time-limit" property.ValueOrExpression<LocalBackendCfgDefn.WritabilityMode>
getWritabilityMode()
Gets the "writability-mode" property.ValueOrExpression<Boolean>
isCompactEncoding()
Gets the "compact-encoding" property.ValueOrExpression<Boolean>
isConfidentialityEnabled()
Gets the "confidentiality-enabled" property.ValueOrExpression<Boolean>
isEntriesCompressed()
Gets the "entries-compressed" property.ValueOrExpression<Boolean>
isIndexFilterAnalyzerEnabled()
Gets the "index-filter-analyzer-enabled" property.String[]
listBackendIndexes()
Lists the Backend Indexes.String[]
listBackendVlvIndexes()
Lists the Backend Vlv Indexes.void
removeBackendIndex(String name)
Removes the named Backend Index.void
removeBackendVlvIndex(String name)
Removes the named Backend Vlv Index.void
setBaseDn(Collection<ValueOrExpression<Dn>> values)
Sets the "base-dn" property.void
setCipherKeyLength(ValueOrExpression<Integer> value)
Sets the "cipher-key-length" property.void
setCipherTransformation(ValueOrExpression<String> value)
Sets the "cipher-transformation" property.void
setCompactEncoding(ValueOrExpression<Boolean> value)
Sets the "compact-encoding" property.void
setConfidentialityEnabled(ValueOrExpression<Boolean> value)
Sets the "confidentiality-enabled" property.void
setEntriesCompressed(ValueOrExpression<Boolean> value)
Sets the "entries-compressed" property.void
setImportOffheapMemorySize(ValueOrExpression<Long> value)
Sets the "import-offheap-memory-size" property.void
setIndexEntryLimit(ValueOrExpression<Integer> value)
Sets the "index-entry-limit" property.void
setIndexFilterAnalyzerEnabled(ValueOrExpression<Boolean> value)
Sets the "index-filter-analyzer-enabled" property.void
setIndexFilterAnalyzerMaxFilters(ValueOrExpression<Integer> value)
Sets the "index-filter-analyzer-max-filters" property.void
setPreloadTimeLimit(ValueOrExpression<Long> value)
Sets the "preload-time-limit" property.void
setWritabilityMode(ValueOrExpression<LocalBackendCfgDefn.WritabilityMode> value)
Sets the "writability-mode" property.-
Methods inherited from interface org.forgerock.opendj.server.config.client.BackendCfgClient
getBackendId, getJavaClass, isEnabled, setBackendId, setEnabled, setJavaClass
-
Methods inherited from interface org.forgerock.opendj.config.ConfigurationClient
commit, properties
-
-
-
-
Method Detail
-
definition
ManagedObjectDefinition<? extends PluggableBackendCfgClient,? extends PluggableBackendCfg> definition()
Get the configuration definition associated with this Pluggable Backend.- Specified by:
definition
in interfaceBackendCfgClient
- Specified by:
definition
in interfaceConfigurationClient
- Specified by:
definition
in interfaceLocalBackendCfgClient
- Returns:
- Returns the configuration definition associated with this Pluggable Backend.
-
getBaseDn
@MandatoryProperty SortedSet<ValueOrExpression<Dn>> getBaseDn()
Gets the "base-dn" property.Specifies the base DN(s) for the data that the backend handles.
A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN.
- Returns:
- Returns the values of the "base-dn" property.
-
setBaseDn
@MandatoryProperty void setBaseDn(Collection<ValueOrExpression<Dn>> values) throws PropertyException
Sets the "base-dn" property.Specifies the base DN(s) for the data that the backend handles.
A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN.
- Parameters:
values
- The values of the "base-dn" property.- Throws:
PropertyException
- If one or more of the new values are invalid.
-
getCipherKeyLength
ValueOrExpression<Integer> getCipherKeyLength()
Gets the "cipher-key-length" property.Specifies the key length in bits for the preferred cipher.
Default value:
128
- Returns:
- Returns the value of the "cipher-key-length" property.
-
setCipherKeyLength
void setCipherKeyLength(ValueOrExpression<Integer> value) throws PropertyException
Sets the "cipher-key-length" property.Specifies the key length in bits for the preferred cipher.
- Parameters:
value
- The value of the "cipher-key-length" property.- Throws:
PropertyException
- If the new value is invalid.
-
getCipherTransformation
ValueOrExpression<String> getCipherTransformation()
Gets the "cipher-transformation" property.Specifies the cipher for the directory server using the syntax algorithm/mode/padding.
The full transformation is required: specifying only an algorithm and allowing the cipher provider to supply the default mode and padding is not supported, because there is no guarantee these default values are the same among different implementations. Some cipher algorithms do not have a mode or padding, hence the fields must be specified using NONE as mode and NoPadding as padding. For example, ChaCha20/NONE/NoPadding.
Default value:
AES/GCM/NoPadding
- Returns:
- Returns the value of the "cipher-transformation" property.
-
setCipherTransformation
void setCipherTransformation(ValueOrExpression<String> value) throws PropertyException
Sets the "cipher-transformation" property.Specifies the cipher for the directory server using the syntax algorithm/mode/padding.
The full transformation is required: specifying only an algorithm and allowing the cipher provider to supply the default mode and padding is not supported, because there is no guarantee these default values are the same among different implementations. Some cipher algorithms do not have a mode or padding, hence the fields must be specified using NONE as mode and NoPadding as padding. For example, ChaCha20/NONE/NoPadding.
- Parameters:
value
- The value of the "cipher-transformation" property.- Throws:
PropertyException
- If the new value is invalid.
-
isCompactEncoding
ValueOrExpression<Boolean> isCompactEncoding()
Gets the "compact-encoding" property.Indicates whether the backend should use a compact form when encoding entries by compressing the attribute descriptions and object class sets.
Note that this property applies only to the entries themselves and does not impact the index data. It will also replace the attribute descriptions used in add and modify operations with normalized ones from the schema.
Default value:
true
- Returns:
- Returns the value of the "compact-encoding" property.
-
setCompactEncoding
void setCompactEncoding(ValueOrExpression<Boolean> value) throws PropertyException
Sets the "compact-encoding" property.Indicates whether the backend should use a compact form when encoding entries by compressing the attribute descriptions and object class sets.
Note that this property applies only to the entries themselves and does not impact the index data. It will also replace the attribute descriptions used in add and modify operations with normalized ones from the schema.
- Parameters:
value
- The value of the "compact-encoding" property.- Throws:
PropertyException
- If the new value is invalid.
-
isConfidentialityEnabled
ValueOrExpression<Boolean> isConfidentialityEnabled()
Gets the "confidentiality-enabled" property.Indicates whether the backend should make entries in database files readable only by Directory Server.
Confidentiality is achieved by encrypting entries before writing them to the underlying storage. Entry encryption will protect data on disk from unauthorised parties reading the files; for complete protection, also set confidentiality for sensitive attributes indexes. The property cannot be set to false if some of the indexes have confidentiality set to true.
Default value:
false
- Returns:
- Returns the value of the "confidentiality-enabled" property.
-
setConfidentialityEnabled
void setConfidentialityEnabled(ValueOrExpression<Boolean> value) throws PropertyException
Sets the "confidentiality-enabled" property.Indicates whether the backend should make entries in database files readable only by Directory Server.
Confidentiality is achieved by encrypting entries before writing them to the underlying storage. Entry encryption will protect data on disk from unauthorised parties reading the files; for complete protection, also set confidentiality for sensitive attributes indexes. The property cannot be set to false if some of the indexes have confidentiality set to true.
- Parameters:
value
- The value of the "confidentiality-enabled" property.- Throws:
PropertyException
- If the new value is invalid.
-
isEntriesCompressed
ValueOrExpression<Boolean> isEntriesCompressed()
Gets the "entries-compressed" property.Indicates whether the backend should attempt to compress entries before storing them in the database.
Note that this property applies only to the entries themselves and does not impact the index data. Further, the effectiveness of the compression is based on the type of data contained in the entry.
Default value:
false
- Returns:
- Returns the value of the "entries-compressed" property.
-
setEntriesCompressed
void setEntriesCompressed(ValueOrExpression<Boolean> value) throws PropertyException
Sets the "entries-compressed" property.Indicates whether the backend should attempt to compress entries before storing them in the database.
Note that this property applies only to the entries themselves and does not impact the index data. Further, the effectiveness of the compression is based on the type of data contained in the entry.
- Parameters:
value
- The value of the "entries-compressed" property.- Throws:
PropertyException
- If the new value is invalid.
-
getImportOffheapMemorySize
ValueOrExpression<Long> getImportOffheapMemorySize()
Gets the "import-offheap-memory-size" property.Specifies the amount of off-heap memory dedicated to the online operation (import-ldif, rebuild-index).
- Returns:
- Returns the value of the "import-offheap-memory-size" property.
-
setImportOffheapMemorySize
void setImportOffheapMemorySize(ValueOrExpression<Long> value) throws PropertyException
Sets the "import-offheap-memory-size" property.Specifies the amount of off-heap memory dedicated to the online operation (import-ldif, rebuild-index).
- Parameters:
value
- The value of the "import-offheap-memory-size" property.- Throws:
PropertyException
- If the new value is invalid.
-
getIndexEntryLimit
ValueOrExpression<Integer> getIndexEntryLimit()
Gets the "index-entry-limit" property.Specifies the maximum number of entries that is allowed to match a given index key before that particular index key is no longer maintained.
This property is analogous to the ALL IDs threshold in the Sun Java System Directory Server. Note that this is the default limit for the backend, and it may be overridden on a per-attribute basis. A value of 0 means there is no limit. Changing the index entry limit significantly can result in serious performance degradation. Please read the documentation before changing this setting.
Default value:
4000
- Returns:
- Returns the value of the "index-entry-limit" property.
-
setIndexEntryLimit
void setIndexEntryLimit(ValueOrExpression<Integer> value) throws PropertyException
Sets the "index-entry-limit" property.Specifies the maximum number of entries that is allowed to match a given index key before that particular index key is no longer maintained.
This property is analogous to the ALL IDs threshold in the Sun Java System Directory Server. Note that this is the default limit for the backend, and it may be overridden on a per-attribute basis. A value of 0 means there is no limit. Changing the index entry limit significantly can result in serious performance degradation. Please read the documentation before changing this setting.
- Parameters:
value
- The value of the "index-entry-limit" property.- Throws:
PropertyException
- If the new value is invalid.
-
isIndexFilterAnalyzerEnabled
ValueOrExpression<Boolean> isIndexFilterAnalyzerEnabled()
Gets the "index-filter-analyzer-enabled" property.Indicates whether to gather statistical information about the search filters processed by the directory server while evaluating the usage of indexes.
Analyzing indexes requires gathering search filter usage patterns from user requests, especially for values as specified in the filters and subsequently looking the status of those values into the index files. When a search requests is processed, internal or user generated, a first phase uses indexes to find potential entries to be returned. Depending on the search filter, if the index of one of the specified attributes matches too many entries (exceeds the index entry limit), the search becomes non-indexed. In any case, all entries thus gathered (or the entire DIT) are matched against the filter for actually returning the search result.
Default value:
false
- Returns:
- Returns the value of the "index-filter-analyzer-enabled" property.
-
setIndexFilterAnalyzerEnabled
void setIndexFilterAnalyzerEnabled(ValueOrExpression<Boolean> value) throws PropertyException
Sets the "index-filter-analyzer-enabled" property.Indicates whether to gather statistical information about the search filters processed by the directory server while evaluating the usage of indexes.
Analyzing indexes requires gathering search filter usage patterns from user requests, especially for values as specified in the filters and subsequently looking the status of those values into the index files. When a search requests is processed, internal or user generated, a first phase uses indexes to find potential entries to be returned. Depending on the search filter, if the index of one of the specified attributes matches too many entries (exceeds the index entry limit), the search becomes non-indexed. In any case, all entries thus gathered (or the entire DIT) are matched against the filter for actually returning the search result.
- Parameters:
value
- The value of the "index-filter-analyzer-enabled" property.- Throws:
PropertyException
- If the new value is invalid.
-
getIndexFilterAnalyzerMaxFilters
ValueOrExpression<Integer> getIndexFilterAnalyzerMaxFilters()
Gets the "index-filter-analyzer-max-filters" property.The maximum number of search filter statistics to keep.
When the maximum number of search filter is reached, the least used one will be deleted.
Default value:
25
- Returns:
- Returns the value of the "index-filter-analyzer-max-filters" property.
-
setIndexFilterAnalyzerMaxFilters
void setIndexFilterAnalyzerMaxFilters(ValueOrExpression<Integer> value) throws PropertyException
Sets the "index-filter-analyzer-max-filters" property.The maximum number of search filter statistics to keep.
When the maximum number of search filter is reached, the least used one will be deleted.
- Parameters:
value
- The value of the "index-filter-analyzer-max-filters" property.- Throws:
PropertyException
- If the new value is invalid.
-
getPreloadTimeLimit
ValueOrExpression<Long> getPreloadTimeLimit()
Gets the "preload-time-limit" property.Specifies the length of time that the backend is allowed to spend "pre-loading" data when it is initialized.
The pre-load process is used to pre-populate the database cache, so that it can be more quickly available when the server is processing requests. A duration of zero means there is no pre-load.
Default value:
0s
- Returns:
- Returns the value of the "preload-time-limit" property.
-
setPreloadTimeLimit
void setPreloadTimeLimit(ValueOrExpression<Long> value) throws PropertyException
Sets the "preload-time-limit" property.Specifies the length of time that the backend is allowed to spend "pre-loading" data when it is initialized.
The pre-load process is used to pre-populate the database cache, so that it can be more quickly available when the server is processing requests. A duration of zero means there is no pre-load.
- Parameters:
value
- The value of the "preload-time-limit" property.- Throws:
PropertyException
- If the new value is invalid.
-
getWritabilityMode
@MandatoryProperty ValueOrExpression<LocalBackendCfgDefn.WritabilityMode> getWritabilityMode()
Gets the "writability-mode" property.Specifies the behavior that the backend should use when processing write operations.
Default value:
enabled
- Specified by:
getWritabilityMode
in interfaceLocalBackendCfgClient
- Returns:
- Returns the value of the "writability-mode" property.
-
setWritabilityMode
@MandatoryProperty void setWritabilityMode(ValueOrExpression<LocalBackendCfgDefn.WritabilityMode> value) throws PropertyException
Sets the "writability-mode" property.Specifies the behavior that the backend should use when processing write operations.
- Specified by:
setWritabilityMode
in interfaceLocalBackendCfgClient
- Parameters:
value
- The value of the "writability-mode" property.- Throws:
PropertyException
- If the new value is invalid.
-
listBackendIndexes
String[] listBackendIndexes() throws ConcurrentModificationException, LdapException
Lists the Backend Indexes.- Returns:
- Returns an array containing the names of the Backend Indexes.
- Throws:
ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
getBackendIndex
BackendIndexCfgClient getBackendIndex(String name) throws DefinitionDecodingException, ManagedObjectDecodingException, ManagedObjectNotFoundException, ConcurrentModificationException, LdapException
Gets the named Backend Index.- Parameters:
name
- The name of the Backend Index to retrieve.- Returns:
- Returns the named Backend Index.
- Throws:
DefinitionDecodingException
- If the named Backend Index was found but its type could not be determined.ManagedObjectDecodingException
- If the named Backend Index was found but one or more of its properties could not be decoded.ManagedObjectNotFoundException
- If the named Backend Index was not found on the server.ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
createBackendIndex
<C extends BackendIndexCfgClient> C createBackendIndex(ManagedObjectDefinition<C,? extends BackendIndexCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException
Creates a new Backend Index. The new Backend Index will initially not contain any property values (including mandatory properties). Once the Backend Index has been configured it can be added to the server using theConfigurationClient.commit()
method.- Type Parameters:
C
- The type of the Backend Index being created.- Parameters:
d
- The definition of the Backend Index to be created.name
- The name of the new Backend Index.exceptions
- An optional collection in which to place anyPropertyException
s that occurred whilst attempting to determine the default values of the Backend Index. This argument can benull
.- Returns:
- Returns a new Backend Index configuration instance.
- Throws:
IllegalManagedObjectNameException
- If the name of the new Backend Index is invalid.
-
removeBackendIndex
void removeBackendIndex(String name) throws ManagedObjectNotFoundException, OperationRejectedException, ConcurrentModificationException, LdapException
Removes the named Backend Index.- Parameters:
name
- The name of the Backend Index to remove.- Throws:
ManagedObjectNotFoundException
- If the Backend Index does not exist.OperationRejectedException
- If the server refuses to remove the Backend Index due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
listBackendVlvIndexes
String[] listBackendVlvIndexes() throws ConcurrentModificationException, LdapException
Lists the Backend Vlv Indexes.- Returns:
- Returns an array containing the names of the Backend Vlv Indexes.
- Throws:
ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
getBackendVlvIndex
BackendVlvIndexCfgClient getBackendVlvIndex(String name) throws DefinitionDecodingException, ManagedObjectDecodingException, ManagedObjectNotFoundException, ConcurrentModificationException, LdapException
Gets the named Backend Vlv Index.- Parameters:
name
- The name of the Backend Vlv Index to retrieve.- Returns:
- Returns the named Backend Vlv Index.
- Throws:
DefinitionDecodingException
- If the named Backend Vlv Index was found but its type could not be determined.ManagedObjectDecodingException
- If the named Backend Vlv Index was found but one or more of its properties could not be decoded.ManagedObjectNotFoundException
- If the named Backend Vlv Index was not found on the server.ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
createBackendVlvIndex
<C extends BackendVlvIndexCfgClient> C createBackendVlvIndex(ManagedObjectDefinition<C,? extends BackendVlvIndexCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException
Creates a new Backend Vlv Index. The new Backend Vlv Index will initially not contain any property values (including mandatory properties). Once the Backend Vlv Index has been configured it can be added to the server using theConfigurationClient.commit()
method.- Type Parameters:
C
- The type of the Backend Vlv Index being created.- Parameters:
d
- The definition of the Backend Vlv Index to be created.name
- The name of the new Backend Vlv Index.exceptions
- An optional collection in which to place anyPropertyException
s that occurred whilst attempting to determine the default values of the Backend Vlv Index. This argument can benull
.- Returns:
- Returns a new Backend Vlv Index configuration instance.
- Throws:
IllegalManagedObjectNameException
- If the name of the new Backend Vlv Index is invalid.
-
removeBackendVlvIndex
void removeBackendVlvIndex(String name) throws ManagedObjectNotFoundException, OperationRejectedException, ConcurrentModificationException, LdapException
Removes the named Backend Vlv Index.- Parameters:
name
- The name of the Backend Vlv Index to remove.- Throws:
ManagedObjectNotFoundException
- If the Backend Vlv Index does not exist.OperationRejectedException
- If the server refuses to remove the Backend Vlv Index due to some server-side constraint which cannot be satisfied (for example, if it is referenced by another managed object).ConcurrentModificationException
- If this Pluggable Backend has been removed from the server by another client.LdapException
- If any other error occurs.
-
-