| | |
| | | ReferentialIntegrityPluginCfg pluginCfg) |
| | | throws ConfigException |
| | | { |
| | | pluginCfg.addReferentialIntegrityChangeListener(this); |
| | | LinkedList<LocalizableMessage> unacceptableReasons = new LinkedList<>(); |
| | | |
| | | if (!isConfigurationAcceptableIgnoringCheckReferencesPluginTypes(pluginCfg, unacceptableReasons)) |
| | |
| | | throw new ConfigException(unacceptableReasons.getFirst()); |
| | | } |
| | | |
| | | // Only after the check: finalizePlugin() cannot remove a listener registered by a refused |
| | | // configuration, because the configuration it removes it from is set in applyConfigurationChange(). |
| | | pluginCfg.addReferentialIntegrityChangeListener(this); |
| | | |
| | | // Enabling the plugin or changing its configuration is refused without these types, but a configuration |
| | | // already stored without them (the entry shipped before issue #1118) is loaded with a warning: refusing |
| | | // it would also stop the delete and modify DN clean-up, which does not need them. |
| | |
| | | |
| | | @Override |
| | | public final void finalizePlugin() { |
| | | if (currentConfiguration == null) |
| | | { |
| | | // initializePlugin() refused the configuration before registering anything. |
| | | return; |
| | | } |
| | | currentConfiguration.removeReferentialIntegrityChangeListener(this); |
| | | if(interval > 0) |
| | | { |