Class EntryUUIDPlugin

  • All Implemented Interfaces:
    ConfigurationChangeListener<EntryUUIDPluginCfg>

    public final class EntryUUIDPlugin
    extends DirectoryServerPlugin<EntryUUIDPluginCfg>
    implements ConfigurationChangeListener<EntryUUIDPluginCfg>
    This class implements a Directory Server plugin that will add the entryUUID attribute to an entry whenever it is added or imported as per RFC 4530. For entries added over LDAP, the entryUUID will be based on a semi-random UUID (which is still guaranteed to be unique). For entries imported from LDIF, the UUID will be constructed from the entry DN using a repeatable algorithm. This will ensure that LDIF files imported in parallel across multiple systems will have identical entryUUID values.
    • Constructor Detail

      • EntryUUIDPlugin

        public EntryUUIDPlugin()
        Mandatory default constructor of this Directory Server plugin.
    • Method Detail

      • initializePlugin

        public final void initializePlugin​(Set<PluginType> pluginTypes,
                                           EntryUUIDPluginCfg configuration)
                                    throws ConfigException
        Description copied from class: DirectoryServerPlugin
        Performs any initialization necessary for this plugin. This will be called as soon as the plugin has been loaded and before it is registered with the server.
        Specified by:
        initializePlugin in class DirectoryServerPlugin<EntryUUIDPluginCfg>
        Parameters:
        pluginTypes - The set of plugin types that indicate the ways in which this plugin will be invoked.
        configuration - The configuration for this plugin.
        Throws:
        ConfigException - If the provided entry does not contain a valid configuration for this plugin.
      • doLDIFImport

        public final PluginResult.ImportLDIF doLDIFImport​(LDIFImportConfig importConfig,
                                                          Entry entry)
        Description copied from class: DirectoryServerPlugin
        Performs any necessary processing that should be done during an LDIF import operation immediately after reading an entry and confirming that it should be imported based on the provided configuration.
        Overrides:
        doLDIFImport in class DirectoryServerPlugin<EntryUUIDPluginCfg>
        Parameters:
        importConfig - The configuration used for the LDIF import.
        entry - The entry that has been read to the LDIF file.
        Returns:
        The result of the plugin processing.
      • isConfigurationAcceptable

        public boolean isConfigurationAcceptable​(PluginCfg configuration,
                                                 List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)
        Description copied from class: DirectoryServerPlugin
        Indicates whether the provided configuration is acceptable for this plugin. It should be possible to call this method on an uninitialized plugin instance in order to determine whether the plugin would be able to use the provided configuration.
        Overrides:
        isConfigurationAcceptable in class DirectoryServerPlugin<EntryUUIDPluginCfg>
        Parameters:
        configuration - The plugin configuration for which to make the determination.
        unacceptableReasons - A list that may be used to hold the reasons that the provided configuration is not acceptable.
        Returns:
        true if the provided configuration is acceptable for this plugin, or false if not.
      • isConfigurationChangeAcceptable

        public boolean isConfigurationChangeAcceptable​(EntryUUIDPluginCfg configuration,
                                                       List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)
        Description copied from interface: ConfigurationChangeListener
        Indicates whether the proposed change to the configuration is acceptable to this change listener.
        Specified by:
        isConfigurationChangeAcceptable in interface ConfigurationChangeListener<EntryUUIDPluginCfg>
        Parameters:
        configuration - The new configuration containing the changes.
        unacceptableReasons - A list that can be used to hold messages about why the provided configuration is not acceptable.
        Returns:
        Returns true if the proposed change is acceptable, or false if it is not.