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

Jean-Noel Rouvignac
24.01.2014 2d2d83179cf464b68e59d8470a7fa9b6c1dc280c
Code cleanup


*.java:
In applyConfiguration*(), replaced the triplet (resultCode, adminActionRequired, messages) with a single ConfigChangeResult object.

ConfigChangeResult.java:
Removed now unused ctor ConfigChangeResult(ResultCode, boolean adminActionRequired).
Added method setResultCodeIfSuccess().
134 files modified
3835 ■■■■■ changed files
opendj-sdk/opendj3-server-dev/resource/admin/example-plugin/ExamplePlugin.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java 5 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java 4 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java 6 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java 7 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java 26 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java 13 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java 51 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java 31 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java 38 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java 67 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java 36 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java 67 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java 59 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java 70 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java 10 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java 49 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java 23 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java 31 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java 46 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java 85 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java 117 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java 57 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java 6 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java 20 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java 59 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java 37 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java 75 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java 46 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java 35 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java 35 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LoggerConfigManager.java 58 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java 71 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java 71 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java 72 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java 51 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java 53 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java 33 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java 75 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java 58 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/RootDNConfigManager.java 56 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/RootPrivilegeChangeListener.java 13 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java 73 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java 52 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java 49 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java 64 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java 20 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java 18 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/AttributeValuePasswordValidator.java 15 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java 8 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CharacterSetPasswordValidator.java 36 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CryptPasswordStorageScheme.java 15 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java 158 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java 34 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java 33 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ErrorLogAccountStatusNotificationHandler.java 26 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java 9 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java 10 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java 55 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java 56 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java 11 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java 41 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java 17 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/LengthBasedPasswordValidator.java 11 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java 4 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java 38 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java 14 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java 34 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java 12 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java 86 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java 26 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RepeatedCharactersPasswordValidator.java 10 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java 40 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java 5 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SimilarityBasedPasswordValidator.java 4 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java 77 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java 10 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/UniqueCharactersPasswordValidator.java 8 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java 37 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java 9 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java 9 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java 13 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java 8 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java 48 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java 14 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java 16 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextAccessLogPublisher.java 28 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextAuditLogPublisher.java 18 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java 29 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java 22 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java 22 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java 19 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TraceSettings.java 13 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/ChangeNumberControlPlugin.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/EntryUUIDPlugin.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java 33 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java 36 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/SevenBitCleanPlugin.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java 2 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java 52 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java 9 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java 31 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java 32 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java 19 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ExternalChangelogDomain.java 11 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java 28 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/MultimasterReplication.java 33 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplicationServerListener.java 8 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java 20 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java 4 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java 4 ●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java 14 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java 6 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java 5 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java 3 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/ConfigChangeResult.java 37 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPClassLoaderProvider.java 8 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationServerTest.java 5 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/ConstraintTest.java 6 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/DefaultBehaviorTest.java 10 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DummyAlertHandler.java 73 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/resource/admin/example-plugin/ExamplePlugin.java
@@ -154,7 +154,7 @@
    this.config = config;
    // Update was successfull, no restart required.
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/AggregationPropertyDefinition.java
@@ -61,7 +61,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * Aggregation property definition.
@@ -272,7 +271,7 @@
        ServerManagedObject<? extends S> mo) {
      try {
        if (targetIsEnabledCondition.evaluate(mo)) {
          return new ConfigChangeResult(ResultCode.SUCCESS, false);
          return new ConfigChangeResult();
        }
      } catch (ConfigException e) {
        // This should not happen - ignore it and throw an exception
@@ -361,7 +360,7 @@
        throw new IllegalStateException("Attempting to delete a referenced "
            + relationDefinition.getChildDefinition().getUserFriendlyName());
      } else {
        return new ConfigChangeResult(ResultCode.SUCCESS, false);
        return new ConfigChangeResult();
      }
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
@@ -170,7 +170,7 @@
      DN expectedDN = DNBuilder.create(childPath);
      if (!configEntry.getDN().equals(expectedDN)) {
        // Doesn't apply to us.
        return new ConfigChangeResult(ResultCode.SUCCESS, false);
        return new ConfigChangeResult();
      }
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
@@ -247,7 +247,7 @@
        } else {
          // The dependent entry was not found.
          configEntry.deregisterChangeListener(this);
          return new ConfigChangeResult(ResultCode.SUCCESS, false);
          return new ConfigChangeResult();
        }
      }
@@ -296,7 +296,7 @@
        if (configEntry.getDN().equals(dn)) {
          finalizeChangeListener();
        }
        return new ConfigChangeResult(ResultCode.SUCCESS, false);
        return new ConfigChangeResult();
      }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
@@ -171,7 +171,7 @@
      DN expectedDN = DNBuilder.create(childPath);
      if (!configEntry.getDN().equals(expectedDN)) {
        // Doesn't apply to us.
        return new ConfigChangeResult(ResultCode.SUCCESS, false);
        return new ConfigChangeResult();
      }
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/admin/server/DelayedConfigAddListener.java
@@ -26,8 +26,6 @@
 */
package org.opends.server.admin.server;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.api.ConfigAddListener;
@@ -37,10 +35,8 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.i18n.LocalizableMessageBuilder;
/**
 * A configuration add listener which will monitor a parent entry to
 * see when a specified child entry has been added. When the child
@@ -138,7 +134,7 @@
      }
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java
@@ -1087,10 +1087,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(BackupBackendCfg cfg)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    Set<String> values = cfg.getBackupDirectory();
    backupDirectories = new LinkedHashMap<File,CachedBackupDirectory>(values.size());
@@ -1101,7 +1098,7 @@
    }
    currentConfig = cfg;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/LDIFBackend.java
@@ -26,32 +26,32 @@
 */
package org.opends.server.backends;
import static org.opends.messages.BackendMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.util.*;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ConditionResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.LDIFBackendCfg;
import org.opends.server.api.AlertGenerator;
import org.opends.server.api.Backend;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.controls.SubtreeDeleteControl;
import org.opends.server.core.*;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.LDIFException;
import org.opends.server.util.LDIFReader;
import org.opends.server.util.LDIFWriter;
import org.opends.server.util.StaticUtils;
import static org.opends.messages.BackendMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides a backend implementation that stores the underlying data
 * in an LDIF file.  When the backend is initialized, the contents of the
@@ -1280,8 +1280,7 @@
    // We don't actually need to do anything in response to this.  However, if
    // the base DNs or LDIF file are different from what we're currently using
    // then indicate that admin action is required.
    boolean adminActionRequired = false;
    LinkedList<LocalizableMessage> messages = new LinkedList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    if (ldifFilePath != null)
    {
@@ -1289,20 +1288,19 @@
      File newLDIF     = getFileForPath(configuration.getLDIFFile());
      if (! currentLDIF.equals(newLDIF))
      {
        messages.add(INFO_LDIF_BACKEND_LDIF_FILE_CHANGED.get());
        adminActionRequired = true;
        ccr.addMessage(INFO_LDIF_BACKEND_LDIF_FILE_CHANGED.get());
        ccr.setAdminActionRequired(true);
      }
    }
    if (baseDNSet != null && !baseDNSet.equals(configuration.getBaseDN()))
    {
      messages.add(INFO_LDIF_BACKEND_BASE_DN_CHANGED.get());
      adminActionRequired = true;
      ccr.addMessage(INFO_LDIF_BACKEND_BASE_DN_CHANGED.get());
      ccr.setAdminActionRequired(true);
    }
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
                                  messages);
    return ccr;
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java
@@ -109,9 +109,7 @@
  public ConfigChangeResult applyConfigurationChange(
      final MonitorBackendCfg backendCfg)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    final boolean adminActionRequired = false;
    final ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Check to see if there is a new set of user-defined attributes.
    final ArrayList<Attribute> userAttrs = new ArrayList<Attribute>();
@@ -146,18 +144,17 @@
    {
      logger.traceException(e);
      messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
      ccr.addMessage(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
          configEntryDN, stackTraceToSingleLineString(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    userDefinedAttributes = userAttrs;
    final LocalizableMessage message = INFO_MONITOR_USING_NEW_USER_ATTRS.get();
    messages.add(message);
    ccr.addMessage(INFO_MONITOR_USING_NEW_USER_ATTRS.get());
    currentConfig = backendCfg;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java
@@ -26,6 +26,12 @@
 */
package org.opends.server.backends;
import static org.opends.messages.BackendMessages.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -62,12 +68,6 @@
import org.opends.server.util.BuildVersion;
import org.opends.server.util.LDIFWriter;
import static org.opends.messages.BackendMessages.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a backend to hold the Directory Server root DSE.  It is a
 * kind of meta-backend in that it will dynamically generate the root DSE entry
@@ -1087,9 +1087,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(RootDSEBackendCfg cfg)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Check to see if we should apply a new set of base DNs.
@@ -1111,12 +1109,8 @@
          if (backend == null)
          {
            // This is not fine.  We can't use a suffix that doesn't exist.
            messages.add(WARN_ROOTDSE_NO_BACKEND_FOR_SUBORDINATE_BASE.get(baseDN));
            if (resultCode == ResultCode.SUCCESS)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
            }
            ccr.addMessage(WARN_ROOTDSE_NO_BACKEND_FOR_SUBORDINATE_BASE.get(baseDN));
            ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
          }
          else
          {
@@ -1129,14 +1123,9 @@
    {
      logger.traceException(e);
      LocalizableMessage message = WARN_ROOTDSE_SUBORDINATE_BASE_EXCEPTION.get(
              stackTraceToSingleLineString(e));
      messages.add(message);
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      }
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(WARN_ROOTDSE_SUBORDINATE_BASE_EXCEPTION.get(
              stackTraceToSingleLineString(e)));
      subBases = null;
    }
@@ -1156,41 +1145,41 @@
    {
      logger.traceException(e);
      messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
      ccr.addMessage(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
              configEntryDN, stackTraceToSingleLineString(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      subordinateBaseDNs = subBases;
      if (subordinateBaseDNs == null)
      {
        messages.add(INFO_ROOTDSE_USING_SUFFIXES_AS_BASE_DNS.get());
        ccr.addMessage(INFO_ROOTDSE_USING_SUFFIXES_AS_BASE_DNS.get());
      }
      else
      {
        String basesStr = "{ " + Utils.joinAsString(", ", subordinateBaseDNs.keySet()) + " }";
        messages.add(INFO_ROOTDSE_USING_NEW_SUBORDINATE_BASE_DNS.get(basesStr));
        ccr.addMessage(INFO_ROOTDSE_USING_NEW_SUBORDINATE_BASE_DNS.get(basesStr));
      }
      if (showAllAttributes != newShowAll)
      {
        showAllAttributes = newShowAll;
        messages.add(INFO_ROOTDSE_UPDATED_SHOW_ALL_ATTRS.get(
        ccr.addMessage(INFO_ROOTDSE_UPDATED_SHOW_ALL_ATTRS.get(
                ATTR_ROOTDSE_SHOW_ALL_ATTRIBUTES, showAllAttributes));
      }
      userDefinedAttributes = userAttrs;
      messages.add(INFO_ROOTDSE_USING_NEW_USER_ATTRS.get());
      ccr.addMessage(INFO_ROOTDSE_USING_NEW_USER_ATTRS.get());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
@@ -4882,9 +4882,7 @@
  public ConfigChangeResult applyConfigurationChange(
       SchemaBackendCfg backendCfg)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Check to see if we should apply a new set of base DNs.
@@ -4901,10 +4899,9 @@
    {
      logger.traceException(e);
      messages.add(ERR_SCHEMA_CANNOT_DETERMINE_BASE_DN.get(
      ccr.addMessage(ERR_SCHEMA_CANNOT_DETERMINE_BASE_DN.get(
          configEntryDN, getExceptionMessage(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      newBaseDNs = null;
    }
@@ -4946,13 +4943,13 @@
    {
      logger.traceException(e);
      messages.add(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
      ccr.addMessage(ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY.get(
          configEntryDN, stackTraceToSingleLineString(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      // Get an array containing the new base DNs to use.
      DN[] dnArray = new DN[newBaseDNs.size()];
@@ -4977,14 +4974,14 @@
        try
        {
          DirectoryServer.deregisterBaseDN(dn);
          messages.add(INFO_SCHEMA_DEREGISTERED_BASE_DN.get(dn));
          ccr.addMessage(INFO_SCHEMA_DEREGISTERED_BASE_DN.get(dn));
        }
        catch (Exception e)
        {
          logger.traceException(e);
          messages.add(ERR_SCHEMA_CANNOT_DEREGISTER_BASE_DN.get(dn, getExceptionMessage(e)));
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.addMessage(ERR_SCHEMA_CANNOT_DEREGISTER_BASE_DN.get(dn, getExceptionMessage(e)));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
@@ -4994,14 +4991,14 @@
        try
        {
          DirectoryServer.registerBaseDN(dn, this, true);
          messages.add(INFO_SCHEMA_REGISTERED_BASE_DN.get(dn));
          ccr.addMessage(INFO_SCHEMA_REGISTERED_BASE_DN.get(dn));
        }
        catch (Exception e)
        {
          logger.traceException(e);
          messages.add(ERR_SCHEMA_CANNOT_REGISTER_BASE_DN.get(dn, getExceptionMessage(e)));
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.addMessage(ERR_SCHEMA_CANNOT_REGISTER_BASE_DN.get(dn, getExceptionMessage(e)));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
@@ -5011,12 +5008,12 @@
      userDefinedAttributes = newUserAttrs;
      LocalizableMessage message = INFO_SCHEMA_USING_NEW_USER_ATTRS.get();
      messages.add(message);
      ccr.addMessage(message);
    }
    currentConfig = backendCfg;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java
@@ -900,9 +900,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(TrustStoreBackendCfg cfg)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DN configEntryDN = cfg.dn();
    // Get the path to the trust store file.
@@ -910,9 +908,8 @@
    File f = getFileForPath(newTrustStoreFile);
    if (! (f.exists() && f.isFile()))
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_TRUSTSTORE_NO_SUCH_FILE.get(newTrustStoreFile, configEntryDN));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_TRUSTSTORE_NO_SUCH_FILE.get(newTrustStoreFile, configEntryDN));
    }
@@ -932,8 +929,8 @@
    {
      logger.traceException(kse);
      messages.add(ERR_TRUSTSTORE_INVALID_TYPE.get(newTrustStoreType, configEntryDN, getExceptionMessage(kse)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(ERR_TRUSTSTORE_INVALID_TYPE.get(newTrustStoreType, configEntryDN, getExceptionMessage(kse)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
@@ -982,8 +979,8 @@
            }
            catch (Exception e)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
              messages.add(ERR_TRUSTSTORE_PIN_FILE_CANNOT_CREATE.get(newPINFile, configEntryDN));
              ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
              ccr.addMessage(ERR_TRUSTSTORE_PIN_FILE_CANNOT_CREATE.get(newPINFile, configEntryDN));
            }
          }
          else
@@ -998,8 +995,8 @@
            }
            catch (IOException ioe)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
              messages.add(ERR_TRUSTSTORE_PIN_FILE_CANNOT_READ.get(
              ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
              ccr.addMessage(ERR_TRUSTSTORE_PIN_FILE_CANNOT_READ.get(
                  newPINFile, configEntryDN, getExceptionMessage(ioe)));
            }
            finally
@@ -1009,8 +1006,8 @@
            if (pinStr == null)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
              messages.add(ERR_TRUSTSTORE_PIN_FILE_EMPTY.get(newPINFile, configEntryDN));
              ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
              ccr.addMessage(ERR_TRUSTSTORE_PIN_FILE_EMPTY.get(newPINFile, configEntryDN));
            }
            else
            {
@@ -1024,8 +1021,8 @@
        String pinStr = System.getenv(newPINEnVar);
        if (pinStr == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_TRUSTSTORE_PIN_ENVAR_NOT_SET.get(newPINEnVar, configEntryDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_TRUSTSTORE_PIN_ENVAR_NOT_SET.get(newPINEnVar, configEntryDN));
        }
        else
        {
@@ -1038,8 +1035,8 @@
      String pinStr = System.getProperty(newPINProperty);
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_TRUSTSTORE_PIN_PROPERTY_NOT_SET.get(newPINProperty, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_TRUSTSTORE_PIN_PROPERTY_NOT_SET.get(newPINProperty, configEntryDN));
      }
      else
      {
@@ -1048,7 +1045,7 @@
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      trustStoreFile = newTrustStoreFile;
      trustStoreType = newTrustStoreType;
@@ -1060,8 +1057,7 @@
                                  new String(trustStorePIN));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -27,9 +27,12 @@
 */
package org.opends.server.backends.jeb;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.Closeable;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -39,7 +42,6 @@
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DecodeException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
import org.forgerock.opendj.ldap.spi.IndexingOptions;
@@ -54,10 +56,6 @@
import com.sleepycat.je.DatabaseException;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * Class representing an attribute index.
 * We have a separate database for each type of indexing, which makes it easy
@@ -674,33 +672,30 @@
  @Override
  public synchronized ConfigChangeResult applyConfigurationChange(LocalDBIndexCfg cfg)
  {
    // this method is not perf sensitive, using an AtomicBoolean will not hurt
    AtomicBoolean adminActionRequired = new AtomicBoolean(false);
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      applyChangeToPresenceIndex(cfg, adminActionRequired, messages);
      applyChangeToIndex(IndexType.EQUALITY, cfg, adminActionRequired, messages);
      applyChangeToIndex(IndexType.SUBSTRING, cfg, adminActionRequired, messages);
      applyChangeToIndex(IndexType.ORDERING, cfg, adminActionRequired, messages);
      applyChangeToIndex(IndexType.APPROXIMATE, cfg, adminActionRequired, messages);
      applyChangeToExtensibleIndexes(cfg, adminActionRequired, messages);
      applyChangeToPresenceIndex(cfg, ccr);
      applyChangeToIndex(IndexType.EQUALITY, cfg, ccr);
      applyChangeToIndex(IndexType.SUBSTRING, cfg, ccr);
      applyChangeToIndex(IndexType.ORDERING, cfg, ccr);
      applyChangeToIndex(IndexType.APPROXIMATE, cfg, ccr);
      applyChangeToExtensibleIndexes(cfg, ccr);
      extensibleIndexesMapping = computeExtensibleIndexesMapping();
      indexConfig = cfg;
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired.get(), messages);
      return ccr;
    }
    catch(Exception e)
    {
      messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(e)));
      return new ConfigChangeResult(
          DirectoryServer.getServerErrorResultCode(), adminActionRequired.get(), messages);
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(e)));
      return ccr;
    }
  }
  private void applyChangeToExtensibleIndexes(LocalDBIndexCfg cfg,
      AtomicBoolean adminActionRequired, ArrayList<LocalizableMessage> messages)
  private void applyChangeToExtensibleIndexes(LocalDBIndexCfg cfg, final ConfigChangeResult ccr)
  {
    final AttributeType attrType = cfg.getAttribute();
    if (!cfg.getIndexType().contains(IndexType.EXTENSIBLE))
@@ -732,7 +727,7 @@
        if (!nameToIndexes.containsKey(indexId))
        {
          Index index = newAttributeIndex(cfg, indexer);
          openIndex(index, adminActionRequired, messages);
          openIndex(index, ccr);
          nameToIndexes.put(indexId, index);
        }
        else
@@ -740,8 +735,8 @@
          Index index = nameToIndexes.get(indexId);
          if (index.setIndexEntryLimit(indexEntryLimit))
          {
            adminActionRequired.set(true);
            messages.add(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
            ccr.setAdminActionRequired(true);
            ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
          }
          if (indexConfig.getSubstringLength() != cfg.getSubstringLength())
          {
@@ -807,8 +802,7 @@
    return rules;
  }
  private void applyChangeToIndex(IndexType indexType, LocalDBIndexCfg cfg,
      AtomicBoolean adminActionRequired, ArrayList<LocalizableMessage> messages)
  private void applyChangeToIndex(IndexType indexType, LocalDBIndexCfg cfg, final ConfigChangeResult ccr)
  {
    String indexId = indexType.toString();
    Index index = nameToIndexes.get(indexId);
@@ -824,7 +818,7 @@
      for (org.forgerock.opendj.ldap.spi.Indexer indexer : matchingRule.getIndexers())
      {
        index = newAttributeIndex(cfg, indexer);
        openIndex(index, adminActionRequired, messages);
        openIndex(index, ccr);
        nameToIndexes.put(indexId, index);
      }
    }
@@ -833,14 +827,13 @@
      // already exists. Just update index entry limit.
      if (index.setIndexEntryLimit(cfg.getIndexEntryLimit()))
      {
        adminActionRequired.set(true);
        messages.add(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
        ccr.setAdminActionRequired(true);
        ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
      }
    }
  }
  private void applyChangeToPresenceIndex(LocalDBIndexCfg cfg, AtomicBoolean adminActionRequired,
      ArrayList<LocalizableMessage> messages)
  private void applyChangeToPresenceIndex(LocalDBIndexCfg cfg, final ConfigChangeResult ccr)
  {
    final IndexType indexType = IndexType.PRESENCE;
    final String indexID = indexType.toString();
@@ -854,7 +847,7 @@
    if (index == null)
    {
      index = newPresenceIndex(cfg);
      openIndex(index, adminActionRequired, messages);
      openIndex(index, ccr);
      nameToIndexes.put(indexID, index);
    }
    else
@@ -862,8 +855,8 @@
      // already exists. Just update index entry limit.
      if (index.setIndexEntryLimit(cfg.getIndexEntryLimit()))
      {
        adminActionRequired.set(true);
        messages.add(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
        ccr.setAdminActionRequired(true);
        ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
      }
    }
  }
@@ -885,14 +878,14 @@
    }
  }
  private void openIndex(Index index, AtomicBoolean adminActionRequired, ArrayList<LocalizableMessage> messages)
  private void openIndex(Index index, final ConfigChangeResult ccr)
  {
    index.open();
    if (!index.isTrusted())
    {
      adminActionRequired.set(true);
      messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(index.getName()));
      ccr.setAdminActionRequired(true);
      ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(index.getName()));
    }
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -26,6 +26,14 @@
 */
package org.opends.server.backends.jeb;
import static com.sleepycat.je.EnvironmentConfig.*;
import static org.opends.messages.BackendMessages.*;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.backends.jeb.ConfigurableEnvironment.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.IOException;
import java.util.*;
@@ -58,14 +66,6 @@
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.EnvironmentFailureException;
import static com.sleepycat.je.EnvironmentConfig.*;
import static org.opends.messages.BackendMessages.*;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.backends.jeb.ConfigurableEnvironment.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This is an implementation of a Directory Server Backend which stores entries
 * locally in a Berkeley DB JE database.
@@ -1028,8 +1028,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(LocalDBBackendCfg newCfg)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
@@ -1040,7 +1039,7 @@
        // Check for changes to the base DNs.
        removeDeletedBaseDNs(newBaseDNs);
        ConfigChangeResult failure = createNewBaseDNs(newBaseDNsArray, messages);
        ConfigChangeResult failure = createNewBaseDNs(newBaseDNsArray, ccr);
        if (failure != null)
        {
          return failure;
@@ -1061,12 +1060,11 @@
    }
    catch (Exception e)
    {
      messages.add(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      return new ConfigChangeResult(
          DirectoryServer.getServerErrorResultCode(), false, messages);
      ccr.addMessage(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, false, messages);
    return ccr;
  }
  private void removeDeletedBaseDNs(SortedSet<DN> newBaseDNs) throws DirectoryException
@@ -1084,7 +1082,7 @@
    }
  }
  private ConfigChangeResult createNewBaseDNs(DN[] newBaseDNsArray, ArrayList<LocalizableMessage> messages)
  private ConfigChangeResult createNewBaseDNs(DN[] newBaseDNsArray, final ConfigChangeResult ccr)
  {
    for (DN baseDN : newBaseDNsArray)
    {
@@ -1101,9 +1099,9 @@
        {
          logger.traceException(e);
          ResultCode resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(baseDN, e));
          return new ConfigChangeResult(resultCode, false, messages);
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_BACKEND_CANNOT_REGISTER_BASEDN.get(baseDN, e));
          return ccr;
        }
      }
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -167,8 +167,7 @@
    @Override
    public ConfigChangeResult applyConfigurationAdd(LocalDBIndexCfg cfg)
    {
      boolean adminActionRequired = false;
      List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      try
      {
@@ -176,20 +175,18 @@
        index.open();
        if(!index.isTrusted())
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getAttribute().getNameOrOID()));
          ccr.setAdminActionRequired(true);
          ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(cfg.getAttribute().getNameOrOID()));
        }
        attrIndexMap.put(cfg.getAttribute(), index);
      }
      catch(Exception e)
      {
        messages.add(LocalizableMessage.raw(e.getLocalizedMessage()));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), adminActionRequired, messages);
        ccr.addMessage(LocalizableMessage.raw(e.getLocalizedMessage()));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
      return ccr;
    }
    /** {@inheritDoc} */
@@ -205,8 +202,7 @@
    @Override
    public ConfigChangeResult applyConfigurationDelete(LocalDBIndexCfg cfg)
    {
      boolean adminActionRequired = false;
      ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      exclusiveLock.lock();
      try
@@ -217,16 +213,15 @@
      }
      catch(DatabaseException de)
      {
        messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), adminActionRequired, messages);
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      finally
      {
        exclusiveLock.unlock();
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
      return ccr;
    }
  }
@@ -304,8 +299,7 @@
    @Override
    public ConfigChangeResult applyConfigurationAdd(LocalDBVLVIndexCfg cfg)
    {
      boolean adminActionRequired = false;
      ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      try
      {
@@ -313,20 +307,19 @@
        vlvIndex.open();
        if(!vlvIndex.isTrusted())
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
          ccr.setAdminActionRequired(true);
          ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
              cfg.getName()));
        }
        vlvIndexMap.put(cfg.getName().toLowerCase(), vlvIndex);
      }
      catch(Exception e)
      {
        messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(e)));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), adminActionRequired, messages);
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(e)));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
      return ccr;
    }
    /** {@inheritDoc} */
@@ -343,8 +336,7 @@
    @Override
    public ConfigChangeResult applyConfigurationDelete(LocalDBVLVIndexCfg cfg)
    {
      boolean adminActionRequired = false;
      List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      exclusiveLock.lock();
      try
@@ -356,16 +348,15 @@
      }
      catch(DatabaseException de)
      {
        messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), adminActionRequired, messages);
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      finally
      {
        exclusiveLock.unlock();
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
      return ccr;
    }
  }
@@ -3098,8 +3089,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(LocalDBBackendCfg cfg)
  {
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    exclusiveLock.lock();
    try
@@ -3135,14 +3125,14 @@
      {
        if (id2children.setIndexEntryLimit(cfg.getIndexEntryLimit()))
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(id2children.getName()));
          ccr.setAdminActionRequired(true);
          ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(id2children.getName()));
        }
        if (id2subtree.setIndexEntryLimit(cfg.getIndexEntryLimit()))
        {
          adminActionRequired = true;
          messages.add(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(id2subtree.getName()));
          ccr.setAdminActionRequired(true);
          ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(id2subtree.getName()));
        }
      }
@@ -3154,16 +3144,15 @@
    }
    catch (DatabaseException e)
    {
      messages.add(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      return new ConfigChangeResult(DirectoryServer.getServerErrorResultCode(),
          false, messages);
      ccr.addMessage(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    finally
    {
      exclusiveLock.unlock();
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/RootContainer.java
@@ -34,7 +34,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.LocalDBBackendCfg;
import org.opends.server.api.Backend;
@@ -698,8 +697,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(LocalDBBackendCfg cfg)
  {
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
@@ -723,8 +721,8 @@
            if (!param.isMutable()) {
              String oldValue = oldEnvConfig.getConfigParam(param.getName());
              if (!oldValue.equalsIgnoreCase(jePropertyValue)) {
                adminActionRequired = true;
                messages.add(INFO_CONFIG_JE_PROPERTY_REQUIRES_RESTART.get(jePropertyName));
                ccr.setAdminActionRequired(true);
                ccr.addMessage(INFO_CONFIG_JE_PROPERTY_REQUIRES_RESTART.get(jePropertyName));
                if(logger.isTraceEnabled()) {
                  logger.trace("The change to the following property " +
                    "will take effect when the component is restarted: " +
@@ -745,16 +743,16 @@
            String newValue = newEnvConfig.getConfigParam(param.getName());
            if (!oldValue.equalsIgnoreCase(newValue))
            {
              adminActionRequired = true;
              ccr.setAdminActionRequired(true);
              String configAttr = ConfigurableEnvironment.
                  getAttributeForProperty(param.getName());
              if (configAttr != null)
              {
                messages.add(NOTE_JEB_CONFIG_ATTR_REQUIRES_RESTART.get(configAttr));
                ccr.addMessage(NOTE_JEB_CONFIG_ATTR_REQUIRES_RESTART.get(configAttr));
              }
              else
              {
                messages.add(NOTE_JEB_CONFIG_ATTR_REQUIRES_RESTART.get(param.getName()));
                ccr.addMessage(NOTE_JEB_CONFIG_ATTR_REQUIRES_RESTART.get(param.getName()));
              }
              if(logger.isTraceEnabled())
              {
@@ -784,25 +782,21 @@
        {
          if(!backendDirectory.mkdirs())
          {
            messages.add(ERR_JEB_CREATE_FAIL.get(backendDirectory.getPath()));
            return new ConfigChangeResult(
                DirectoryServer.getServerErrorResultCode(),
                adminActionRequired,
                messages);
            ccr.addMessage(ERR_JEB_CREATE_FAIL.get(backendDirectory.getPath()));
            ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
            return ccr;
          }
        }
        //Make sure the directory is valid.
        else if (!backendDirectory.isDirectory())
        {
          messages.add(ERR_JEB_DIRECTORY_INVALID.get(backendDirectory.getPath()));
          return new ConfigChangeResult(
              DirectoryServer.getServerErrorResultCode(),
              adminActionRequired,
              messages);
          ccr.addMessage(ERR_JEB_DIRECTORY_INVALID.get(backendDirectory.getPath()));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          return ccr;
        }
        adminActionRequired = true;
        messages.add(NOTE_JEB_CONFIG_DB_DIR_REQUIRES_RESTART.get(
        ccr.setAdminActionRequired(true);
        ccr.addMessage(NOTE_JEB_CONFIG_DB_DIR_REQUIRES_RESTART.get(
                        this.config.getDBDirectory(), cfg.getDBDirectory()));
      }
@@ -818,11 +812,9 @@
        }
        catch(Exception e)
        {
          messages.add(ERR_CONFIG_BACKEND_MODE_INVALID.get(config.dn()));
          return new ConfigChangeResult(
              DirectoryServer.getServerErrorResultCode(),
              adminActionRequired,
              messages);
          ccr.addMessage(ERR_CONFIG_BACKEND_MODE_INVALID.get(config.dn()));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          return ccr;
        }
        //Make sure the mode will allow the server itself access to
@@ -831,12 +823,10 @@
            !backendPermission.isOwnerReadable() ||
            !backendPermission.isOwnerExecutable())
        {
          messages.add(ERR_CONFIG_BACKEND_INSANE_MODE.get(
          ccr.addMessage(ERR_CONFIG_BACKEND_INSANE_MODE.get(
              cfg.getDBDirectoryPermissions()));
          return new ConfigChangeResult(
              DirectoryServer.getServerErrorResultCode(),
              adminActionRequired,
              messages);
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          return ccr;
        }
        // Get the backend database backendDirectory permissions and apply
@@ -868,13 +858,12 @@
    }
    catch (Exception e)
    {
      messages.add(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      return new ConfigChangeResult(DirectoryServer.getServerErrorResultCode(),
                                   adminActionRequired,
                                   messages);
      ccr.addMessage(LocalizableMessage.raw(stackTraceToSingleLineString(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      return ccr;
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -26,7 +26,13 @@
 */
package org.opends.server.backends.jeb;
import java.util.*;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicInteger;
import org.forgerock.i18n.LocalizableMessage;
@@ -63,9 +69,6 @@
import com.sleepycat.je.*;
import static org.opends.messages.JebMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class represents a VLV index. Each database record is a sorted list
 * of entry IDs followed by sets of attribute values used to sort the entries.
@@ -1300,22 +1303,20 @@
  public synchronized ConfigChangeResult applyConfigurationChange(
      LocalDBVLVIndexCfg cfg)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Update base DN only if changed..
    if(!config.getBaseDN().equals(cfg.getBaseDN()))
    {
      this.baseDN = cfg.getBaseDN();
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    // Update scope only if changed.
    if(!config.getScope().equals(cfg.getScope()))
    {
      this.scope = SearchScope.valueOf(cfg.getScope().name());
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    // Update sort set capacity only if changed.
@@ -1327,7 +1328,7 @@
      // we will lazyly update the sorted sets.
      if (config.getMaxBlockSize() < cfg.getMaxBlockSize())
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
    }
@@ -1337,18 +1338,13 @@
      try
      {
        this.filter = SearchFilter.createFilterFromString(cfg.getFilter());
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      catch(Exception e)
      {
        LocalizableMessage msg = ERR_JEB_CONFIG_VLV_INDEX_BAD_FILTER.get(
                config.getFilter(), name,
                stackTraceToSingleLineString(e));
        messages.add(msg);
        if(resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
        }
        ccr.addMessage(ERR_JEB_CONFIG_VLV_INDEX_BAD_FILTER.get(
            config.getFilter(), name, stackTraceToSingleLineString(e)));
        ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
      }
    }
@@ -1379,22 +1375,16 @@
        }
        catch(Exception e)
        {
          messages.add(ERR_JEB_CONFIG_VLV_INDEX_UNDEFINED_ATTR.get(sortKeys[i], name));
          if(resultCode == ResultCode.SUCCESS)
          {
            resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
          }
          ccr.addMessage(ERR_JEB_CONFIG_VLV_INDEX_UNDEFINED_ATTR.get(sortKeys[i], name));
          ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
        }
        AttributeType attrType =
            DirectoryServer.getAttributeType(sortAttrs[i].toLowerCase());
        if(attrType == null)
        {
          messages.add(ERR_JEB_CONFIG_VLV_INDEX_UNDEFINED_ATTR.get(sortKeys[i], name));
          if(resultCode == ResultCode.SUCCESS)
          {
            resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
          }
          ccr.addMessage(ERR_JEB_CONFIG_VLV_INDEX_UNDEFINED_ATTR.get(sortKeys[i], name));
          ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
        }
        else
        {
@@ -1416,40 +1406,34 @@
      }
      catch(DatabaseException de)
      {
        messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        if(resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
      finally
      {
        entryContainer.exclusiveLock.unlock();
      }
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    if(adminActionRequired)
    if (ccr.adminActionRequired())
    {
      trusted = false;
      messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
      ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
      try
      {
        state.putIndexTrustState(null, this, false);
      }
      catch(DatabaseException de)
      {
        messages.add(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        if(resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
    }
    this.config = cfg;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VLVIndex.java
@@ -1245,10 +1245,7 @@
      catch (StorageRuntimeException de)
      {
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        if (ccr.getResultCode() == ResultCode.SUCCESS)
        {
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
      finally
      {
@@ -1270,10 +1267,7 @@
      catch(StorageRuntimeException de)
      {
        ccr.addMessage(LocalizableMessage.raw(StaticUtils.stackTraceToSingleLineString(de)));
        if (ccr.getResultCode() == ResultCode.SUCCESS)
        {
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java
@@ -26,6 +26,11 @@
 */
package org.opends.server.backends.task;
import static org.opends.messages.BackendMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.*;
import java.net.InetAddress;
import java.security.MessageDigest;
@@ -40,29 +45,24 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ConditionResult;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.util.Reject;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.TaskBackendCfg;
import org.opends.server.api.Backend;
import org.opends.server.config.ConfigEntry;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.*;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.LDIFException;
import org.opends.server.util.LDIFReader;
import org.opends.server.util.LDIFWriter;
import static org.opends.messages.BackendMessages.*;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides an implementation of a Directory Server backend that may
 * be used to execute various kinds of administrative tasks on a one-time or
@@ -1869,9 +1869,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(TaskBackendCfg configEntry)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    String tmpBackingFile = taskBackingFile;
@@ -1884,27 +1882,26 @@
          File f = getFileForPath(tmpBackingFile);
          if (f.exists())
          {
            messages.add(ERR_TASKBE_BACKING_FILE_EXISTS.get(tmpBackingFile));
            resultCode = ResultCode.CONSTRAINT_VIOLATION;
            ccr.addMessage(ERR_TASKBE_BACKING_FILE_EXISTS.get(tmpBackingFile));
            ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
          }
          else
          {
            File p = f.getParentFile();
            if (p == null)
            {
              messages.add(ERR_TASKBE_INVALID_BACKING_FILE_PATH.get(
                      tmpBackingFile));
              resultCode = ResultCode.CONSTRAINT_VIOLATION;
              ccr.addMessage(ERR_TASKBE_INVALID_BACKING_FILE_PATH.get(tmpBackingFile));
              ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
            }
            else if (! p.exists())
            {
              messages.add(ERR_TASKBE_BACKING_FILE_MISSING_PARENT.get(p, tmpBackingFile));
              resultCode = ResultCode.CONSTRAINT_VIOLATION;
              ccr.addMessage(ERR_TASKBE_BACKING_FILE_MISSING_PARENT.get(p, tmpBackingFile));
              ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
            }
            else if (! p.isDirectory())
            {
              messages.add(ERR_TASKBE_BACKING_FILE_PARENT_NOT_DIRECTORY.get(p, tmpBackingFile));
              resultCode = ResultCode.CONSTRAINT_VIOLATION;
              ccr.addMessage(ERR_TASKBE_BACKING_FILE_PARENT_NOT_DIRECTORY.get(p, tmpBackingFile));
              ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
            }
          }
        }
@@ -1914,24 +1911,22 @@
    {
      logger.traceException(e);
      messages.add(ERR_TASKBE_ERROR_GETTING_BACKING_FILE.get(
              getExceptionMessage(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(ERR_TASKBE_ERROR_GETTING_BACKING_FILE.get(getExceptionMessage(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    long tmpRetentionTime = configEntry.getTaskRetentionTime();
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      // Everything looks OK, so apply the changes.
      if (retentionTime != tmpRetentionTime)
      {
        retentionTime = tmpRetentionTime;
        messages.add(INFO_TASKBE_UPDATED_RETENTION_TIME.get(retentionTime));
        ccr.addMessage(INFO_TASKBE_UPDATED_RETENTION_TIME.get(retentionTime));
      }
@@ -1940,7 +1935,7 @@
        taskBackingFile = tmpBackingFile;
        taskScheduler.writeState();
        messages.add(INFO_TASKBE_UPDATED_BACKING_FILE.get(taskBackingFile));
        ccr.addMessage(INFO_TASKBE_UPDATED_BACKING_FILE.get(taskBackingFile));
      }
    }
@@ -1962,7 +1957,7 @@
    currentConfig = configEntry;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
@@ -26,6 +26,10 @@
 */
package org.opends.server.core;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -33,6 +37,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
@@ -43,15 +48,10 @@
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.AccessControlHandler;
import org.opends.server.api.AlertGenerator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class manages the application-wide access-control configuration.
 * <p>
@@ -344,8 +344,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 AccessControlHandlerCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
@@ -354,16 +353,16 @@
    }
    catch (ConfigException e)
    {
      messages.add(e.getMessageObject());
      resultCode = ResultCode.CONSTRAINT_VIOLATION;
      ccr.addMessage(e.getMessageObject());
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
    }
    catch (InitializationException e)
    {
      messages.add(e.getMessageObject());
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(e.getMessageObject());
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, false, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
@@ -26,12 +26,15 @@
 */
package org.opends.server.core;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -42,14 +45,10 @@
import org.opends.server.admin.std.server.AccountStatusNotificationHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.AccountStatusNotificationHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of account
 * status notification handlers defined in the Directory Server.  It will
@@ -182,16 +181,11 @@
      AccountStatusNotificationHandlerCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // Get the configuration entry DN and the associated handler class.
    DN configEntryDN = configuration.dn();
    AccountStatusNotificationHandler handler = notificationHandlers.get(
        configEntryDN
        );
    AccountStatusNotificationHandler handler = notificationHandlers.get(configEntryDN);
    // If the new configuration has the notification handler disabled,
    // then remove it from the mapping list and clean it.
@@ -290,10 +284,7 @@
      AccountStatusNotificationHandlerCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // Register a change listener with it so we can be notified of changes
    // to it over time.
@@ -343,14 +334,8 @@
      AccountStatusNotificationHandlerCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    uninstallNotificationHandler (configuration.dn());
    return changeResult;
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
@@ -170,15 +170,13 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(AlertHandlerCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    AlertHandler alertHandler = null;
@@ -192,21 +190,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      alertHandlers.put(configuration.dn(), alertHandler);
      DirectoryServer.registerAlertHandler(alertHandler);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -233,9 +227,7 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 AlertHandlerCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    AlertHandler alertHandler = alertHandlers.remove(configuration.dn());
    if (alertHandler != null)
@@ -244,7 +236,7 @@
      alertHandler.finalizeAlertHandler();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -285,9 +277,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 AlertHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing alert handler if it's already enabled.
@@ -309,7 +299,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -323,10 +313,10 @@
    {
      if (! className.equals(existingHandler.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    AlertHandler alertHandler = null;
@@ -336,21 +326,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      alertHandlers.put(configuration.dn(), alertHandler);
      DirectoryServer.registerAlertHandler(alertHandler);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
@@ -26,36 +26,35 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.AttributeSyntaxCfgDefn;
import org.opends.server.admin.std.server.AttributeSyntaxCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.AttributeSyntax;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.util.Utils;
import org.opends.server.types.AttributeType;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of attribute
 * syntaxes defined in the Directory Server.  It wil initialize the syntaxes
 * syntaxes defined in the Directory Server.  It will initialize the syntaxes
 * when the server starts, and then will manage any additions, removals, or
 * modifications to any syntaxes while the server is running.
 */
@@ -156,6 +155,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      AttributeSyntaxCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -185,18 +185,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 AttributeSyntaxCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    AttributeSyntax syntax = null;
@@ -215,26 +214,18 @@
      }
      catch (DirectoryException de)
      {
        messages.add(WARN_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX.get(
        ccr.addMessage(WARN_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX.get(
                configuration.dn(), de.getMessageObject()));
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -242,6 +233,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      AttributeSyntaxCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -275,12 +267,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 AttributeSyntaxCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    AttributeSyntax syntax = syntaxes.remove(configuration.dn());
    if (syntax != null)
@@ -289,7 +280,7 @@
      syntax.finalizeSyntax();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -297,6 +288,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      AttributeSyntaxCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -348,12 +340,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 AttributeSyntaxCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing syntax if it's already enabled.
@@ -375,7 +366,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -389,10 +380,10 @@
    {
      if (! className.equals(existingSyntax.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    AttributeSyntax syntax = null;
@@ -407,26 +398,18 @@
      }
      catch (DirectoryException de)
      {
        messages.add(WARN_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX.get(
        ccr.addMessage(WARN_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX.get(
                configuration.dn(), de.getMessageObject()));
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
        ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      }
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
@@ -26,31 +26,30 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.CertificateMapperCfgDefn;
import org.opends.server.admin.std.server.CertificateMapperCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.CertificateMapper;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of
@@ -68,8 +67,10 @@
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  // A mapping between the DNs of the config entries and the associated
  // certificate mappers.
  /**
   * A mapping between the DNs of the config entries and the associated
   * certificate mappers.
   */
  private ConcurrentHashMap<DN,CertificateMapper> certificateMappers;
  private final ServerContext serverContext;
@@ -141,11 +142,8 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationAddAcceptable(
                      CertificateMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -170,23 +168,18 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 CertificateMapperCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    CertificateMapper certificateMapper = null;
@@ -200,29 +193,21 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      certificateMappers.put(configuration.dn(), certificateMapper);
      DirectoryServer.registerCertificateMapper(configuration.dn(),
                                                certificateMapper);
      DirectoryServer.registerCertificateMapper(configuration.dn(), certificateMapper);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      CertificateMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -232,17 +217,12 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 CertificateMapperCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DirectoryServer.deregisterCertificateMapper(configuration.dn());
@@ -253,14 +233,11 @@
      certificateMapper.finalizeCertificateMapper();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      CertificateMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -285,17 +262,12 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 CertificateMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing mapper if it's already enabled.
@@ -319,7 +291,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -333,10 +305,10 @@
    {
      if (! className.equals(existingMapper.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    CertificateMapper certificateMapper = null;
@@ -346,22 +318,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      certificateMappers.put(configuration.dn(), certificateMapper);
      DirectoryServer.registerCertificateMapper(configuration.dn(),
                                                certificateMapper);
      DirectoryServer.registerCertificateMapper(configuration.dn(), certificateMapper);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
@@ -26,14 +26,17 @@
 */
package org.opends.server.core;
import java.util.ArrayList;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.CoreMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.AdministrationConnector;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -45,16 +48,11 @@
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.ConnectionHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.protocols.ldap.LDAPConnectionHandler;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.CoreMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the
 * configuration for the set of connection handlers defined in the
@@ -94,14 +92,10 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(
      ConnectionHandlerCfg configuration) {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Register as a change listener for this connection handler entry
    // so that we will be notified of any changes that may be made to
    // it.
    // so that we will be notified of any changes that may be made to it.
    configuration.addChangeListener(this);
    // Ignore this connection handler if it is disabled.
@@ -123,18 +117,17 @@
      } catch (ConfigException e) {
        logger.traceException(e);
        messages.add(e.getMessageObject());
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.addMessage(e.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      } catch (Exception e) {
        logger.traceException(e);
        messages.add(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
        ccr.addMessage(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
            configuration.getJavaClass(), dn, stackTraceToSingleLineString(e)));
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -150,10 +143,7 @@
    DN dn = configuration.dn();
    ConnectionHandler<?> connectionHandler = connectionHandlers.get(dn);
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See whether the connection handler should be enabled.
    if (connectionHandler == null) {
@@ -174,14 +164,14 @@
        } catch (ConfigException e) {
          logger.traceException(e);
          messages.add(e.getMessageObject());
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(e.getMessageObject());
        } catch (Exception e) {
          logger.traceException(e);
          messages.add(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
          ccr.addMessage(ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
              configuration.getJavaClass(), dn, stackTraceToSingleLineString(e)));
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
    } else {
@@ -193,7 +183,7 @@
        // change to take effect.
        String className = configuration.getJavaClass();
        if (!className.equals(connectionHandler.getClass().getName())) {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
      } else {
        // We need to disable the connection handler.
@@ -207,9 +197,7 @@
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired,
        messages);
    return ccr;
  }
@@ -220,10 +208,7 @@
  @Override
  public ConfigChangeResult applyConfigurationDelete(
      ConnectionHandlerCfg configuration) {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See if the entry is registered as a connection handler. If so,
    // deregister and stop it. We'll try to leave any established
@@ -238,7 +223,7 @@
              INFO_CONNHANDLER_CLOSED_BY_DELETE.get());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java
@@ -355,13 +355,11 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(GlobalCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    List<LocalizableMessage>      messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    applyGlobalConfiguration(configuration);
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -305,10 +304,7 @@
      }
    }
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // If an entry cache was installed then remove it.
    if (!configuration.isEnabled())
@@ -414,14 +410,9 @@
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
      EntryCacheCfg configuration
      )
  public ConfigChangeResult applyConfigurationAdd(EntryCacheCfg configuration)
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // Register a change listener with it so we can be notified of changes
    // to it over time.
@@ -479,10 +470,7 @@
      entryCache = cacheOrderMap.get(configuration.getCacheLevel());
    }
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // If the entry cache was installed then remove it.
    if (entryCache != null)
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
@@ -26,13 +26,15 @@
 */
package org.opends.server.core;
import java.util.ArrayList;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -42,14 +44,10 @@
import org.opends.server.admin.std.server.ExtendedOperationHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.ExtendedOperationHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of extended
 * operation handlers defined in the Directory Server.  It will initialize the
@@ -140,20 +138,15 @@
  public ConfigChangeResult applyConfigurationDelete(
       ExtendedOperationHandlerCfg configuration)
  {
    ResultCode resultCode          = ResultCode.SUCCESS;
    boolean    adminActionRequired = false;
    // See if the entry is registered as an extended operation handler.  If so,
    // deregister it and finalize the handler.
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See if the entry is registered as an extended operation handler.
    // If so, deregister it and finalize the handler.
    ExtendedOperationHandler handler = handlers.remove(configuration.dn());
    if (handler != null)
    {
      handler.finalizeExtendedOperationHandler();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
  /**
@@ -185,10 +178,7 @@
    DN dn = configuration.dn();
    ExtendedOperationHandler handler = handlers.get(dn);
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See whether the handler should be enabled.
    if (handler == null) {
@@ -204,14 +194,14 @@
        } catch (ConfigException e) {
          logger.traceException(e);
          messages.add(e.getMessageObject());
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.addMessage(e.getMessageObject());
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        } catch (Exception e) {
          logger.traceException(e);
          messages.add(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
          ccr.addMessage(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
              configuration.getJavaClass(), dn, stackTraceToSingleLineString(e)));
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
    } else {
@@ -223,7 +213,7 @@
        // change to take effect.
        String className = configuration.getJavaClass();
        if (!className.equals(handler.getClass().getName())) {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
      } else {
        // We need to disable the connection handler.
@@ -234,9 +224,7 @@
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired,
        messages);
    return ccr;
  }
  /**
@@ -257,10 +245,7 @@
  public ConfigChangeResult applyConfigurationAdd(
       ExtendedOperationHandlerCfg configuration)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Register as a change listener for this connection handler entry
    // so that we will be notified of any changes that may be made to
@@ -284,22 +269,20 @@
      {
        logger.traceException(e);
        messages.add(e.getMessageObject());
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.addMessage(e.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      catch (Exception e)
      {
        logger.traceException(e);
        messages.add(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
        ccr.addMessage(ERR_CONFIG_EXTOP_INITIALIZATION_FAILED.get(
            configuration.getJavaClass(), dn, stackTraceToSingleLineString(e)));
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired,
        messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
@@ -225,14 +225,13 @@
  public ConfigChangeResult applyConfigurationAdd(
                                 GroupImplementationCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, false, messages);
      return ccr;
    }
    Group<?> group = null;
@@ -242,18 +241,18 @@
    }
    catch (InitializationException ie)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ie.getMessageObject());
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      groupImplementations.put(configuration.dn(), group);
    }
    // FIXME -- We need to make sure to find all groups of this type in the
    // server before returning.
    return new ConfigChangeResult(resultCode, false, messages);
    return ccr;
  }
@@ -276,8 +275,7 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 GroupImplementationCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    Group<?> group = groupImplementations.remove(configuration.dn());
    if (group != null)
@@ -303,7 +301,7 @@
      group.finalizeGroupImplementation();
    }
    return new ConfigChangeResult(resultCode, false, messages);
    return ccr;
  }
@@ -336,9 +334,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 GroupImplementationCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing group implementation if it's already enabled.
    Group<?> existingGroup = groupImplementations.get(configuration.dn());
@@ -373,7 +369,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -387,10 +383,10 @@
    {
      if (! className.equals(existingGroup.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    Group<?> group = null;
@@ -400,19 +396,18 @@
    }
    catch (InitializationException ie)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ie.getMessageObject());
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      groupImplementations.put(configuration.dn(), group);
    }
    // FIXME -- We need to make sure to find all groups of this type in the
    // server before returning.
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
@@ -26,31 +26,30 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.IdentityMapperCfgDefn;
import org.opends.server.admin.std.server.IdentityMapperCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.IdentityMapper;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of identity
@@ -159,6 +158,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      IdentityMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -188,18 +188,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 IdentityMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    IdentityMapper identityMapper = null;
@@ -213,22 +212,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      identityMappers.put(configuration.dn(), identityMapper);
      DirectoryServer.registerIdentityMapper(configuration.dn(),
                                             identityMapper);
      DirectoryServer.registerIdentityMapper(configuration.dn(), identityMapper);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -236,6 +230,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      IdentityMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -250,12 +245,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 IdentityMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DirectoryServer.deregisterIdentityMapper(configuration.dn());
@@ -265,7 +259,7 @@
      identityMapper.finalizeIdentityMapper();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -273,6 +267,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      IdentityMapperCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -302,12 +297,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 IdentityMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing mapper if it's already enabled.
@@ -330,7 +324,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -344,10 +338,10 @@
    {
      if (! className.equals(existingMapper.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    IdentityMapper identityMapper = null;
@@ -357,22 +351,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      identityMappers.put(configuration.dn(), identityMapper);
      DirectoryServer.registerIdentityMapper(configuration.dn(),
                                             identityMapper);
      DirectoryServer.registerIdentityMapper(configuration.dn(), identityMapper);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
@@ -178,15 +178,13 @@
  public ConfigChangeResult applyConfigurationAdd(
          KeyManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    KeyManagerProvider provider = null;
@@ -200,21 +198,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      providers.put(configuration.dn(), provider);
      DirectoryServer.registerKeyManagerProvider(configuration.dn(), provider);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -239,9 +233,7 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 KeyManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DirectoryServer.deregisterKeyManagerProvider(configuration.dn());
@@ -251,7 +243,7 @@
      provider.finalizeKeyManagerProvider();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -291,9 +283,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 KeyManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing provider if it's already enabled.
@@ -315,7 +305,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -329,10 +319,10 @@
    {
      if (! className.equals(existingProvider.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    KeyManagerProvider provider = null;
@@ -342,21 +332,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      providers.put(configuration.dn(), provider);
      DirectoryServer.registerKeyManagerProvider(configuration.dn(), provider);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
@@ -26,7 +26,6 @@
 */
package org.opends.server.core;
import java.util.ArrayList;
import java.util.List;
import org.opends.server.admin.std.server.LogRetentionPolicyCfg;
@@ -34,7 +33,6 @@
import org.opends.server.admin.std.meta.LogRetentionPolicyCfgDefn;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -131,10 +129,7 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(LogRetentionPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
@@ -144,17 +139,17 @@
    }
    catch (ConfigException e) {
      logger.traceException(e);
      messages.add(e.getMessageObject());
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(e.getMessageObject());
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    } catch (Exception e) {
      logger.traceException(e);
      messages.add(ERR_CONFIG_RETENTION_POLICY_CANNOT_CREATE_POLICY.get(
      ccr.addMessage(ERR_CONFIG_RETENTION_POLICY_CANNOT_CREATE_POLICY.get(
          config.dn(),stackTraceToSingleLineString(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
@@ -164,10 +159,7 @@
  public ConfigChangeResult applyConfigurationDelete(
      LogRetentionPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    RetentionPolicy policy = DirectoryServer.getRetentionPolicy(config.dn());
    if(policy != null)
@@ -177,10 +169,10 @@
    else
    {
      // TODO: Add message and check for usage
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
@@ -201,20 +193,17 @@
  public ConfigChangeResult applyConfigurationChange(
      LogRetentionPolicyCfg configuration)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    RetentionPolicy policy =
        DirectoryServer.getRetentionPolicy(configuration.dn());
    String className = configuration.getJavaClass();
    if(!className.equals(policy.getClass().getName()))
    {
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private boolean isJavaClassAcceptable(LogRetentionPolicyCfg config,
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
@@ -25,12 +25,10 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.core;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.loggers.RotationPolicy;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
@@ -130,10 +128,7 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(LogRotationPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
@@ -143,17 +138,17 @@
    }
    catch (ConfigException e) {
      logger.traceException(e);
      messages.add(e.getMessageObject());
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(e.getMessageObject());
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    } catch (Exception e) {
      logger.traceException(e);
      messages.add(ERR_CONFIG_ROTATION_POLICY_CANNOT_CREATE_POLICY.get(config.dn(),
      ccr.addMessage(ERR_CONFIG_ROTATION_POLICY_CANNOT_CREATE_POLICY.get(config.dn(),
              stackTraceToSingleLineString(e)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
@@ -163,10 +158,7 @@
  public ConfigChangeResult applyConfigurationDelete(
      LogRotationPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    RotationPolicy policy = DirectoryServer.getRotationPolicy(config.dn());
    if(policy != null)
@@ -176,10 +168,10 @@
    else
    {
      // TODO: Add message and check for usage
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
@@ -200,20 +192,17 @@
  public ConfigChangeResult applyConfigurationChange(
      LogRotationPolicyCfg configuration)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    RotationPolicy policy =
        DirectoryServer.getRotationPolicy(configuration.dn());
    String className = configuration.getJavaClass();
    if(!className.equals(policy.getClass().getName()))
    {
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private boolean isJavaClassAcceptable(LogRotationPolicyCfg config,
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/LoggerConfigManager.java
@@ -28,12 +28,13 @@
import static org.opends.messages.ConfigMessages.*;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
@@ -43,7 +44,6 @@
import org.opends.server.admin.std.server.HTTPAccessLogPublisherCfg;
import org.opends.server.admin.std.server.LogPublisherCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.loggers.AbstractLogger;
import org.opends.server.loggers.AccessLogger;
import org.opends.server.loggers.DebugLogger;
@@ -51,8 +51,6 @@
import org.opends.server.loggers.HTTPAccessLogger;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines a utility that will be used to manage the set of loggers
@@ -67,7 +65,6 @@
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  private final ServerContext serverContext;
  /**
@@ -200,74 +197,57 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationAddAcceptable(LogPublisherCfg config,
                                              List<LocalizableMessage> unacceptableReasons)
  {
    AbstractLogger instance = getLoggerInstance(config, unacceptableReasons);
    if (instance != null)
    {
      return instance.isConfigurationAddAcceptable(config, unacceptableReasons);
    }
    return false;
    return instance != null
        && instance.isConfigurationAddAcceptable(config, unacceptableReasons);
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationAdd(LogPublisherCfg config)
  {
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>(1);
    AbstractLogger instance = getLoggerInstance(config, messages);
    final ConfigChangeResult ccr = new ConfigChangeResult();
    AbstractLogger instance = getLoggerInstance(config, ccr.getMessages());
    if (instance != null)
    {
      return instance.applyConfigurationAdd(config);
    }
    else
    {
      boolean adminActionRequired = false;
      ResultCode resultCode = ResultCode.UNWILLING_TO_PERFORM;
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      ccr.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
      return ccr;
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationDeleteAcceptable(LogPublisherCfg config,
                                              List<LocalizableMessage> unacceptableReasons)
  {
    AbstractLogger instance = getLoggerInstance(config, unacceptableReasons);
    if (instance != null)
    {
      return instance.isConfigurationDeleteAcceptable(config,
          unacceptableReasons);
    }
    return false;
    return instance != null
        && instance.isConfigurationDeleteAcceptable(config, unacceptableReasons);
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationDelete(LogPublisherCfg config)
  {
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>(1);
    AbstractLogger instance = getLoggerInstance(config, messages);
    final ConfigChangeResult ccr = new ConfigChangeResult();
    AbstractLogger instance = getLoggerInstance(config, ccr.getMessages());
    if (instance != null)
    {
      return instance.applyConfigurationDelete(config);
    }
    else
    {
      boolean           adminActionRequired = false;
      ResultCode resultCode = ResultCode.UNWILLING_TO_PERFORM;
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      ccr.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
      return ccr;
    }
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
@@ -26,6 +26,9 @@
 */
package org.opends.server.core;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -34,7 +37,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
@@ -53,9 +55,6 @@
import org.opends.server.types.InitializationException;
import org.opends.server.types.MatchingRuleUse;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of matching
 * rules defined in the Directory Server.  It wil initialize the rules when the
@@ -183,15 +182,13 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(MatchingRuleCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    MatchingRuleFactory<?> factory = null;
@@ -203,8 +200,6 @@
    {
      factory = loadMatchingRuleFactory(className, configuration, true);
      try
      {
        for(MatchingRule matchingRule: factory.getMatchingRules())
        {
          DirectoryServer.registerMatchingRule(matchingRule, false);
@@ -213,26 +208,17 @@
      }
      catch (DirectoryException de)
      {
        messages.add(WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR.get(
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR.get(
            configuration.dn(), de.getMessageObject()));
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
      }
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -301,9 +287,7 @@
  @Override
  public ConfigChangeResult applyConfigurationDelete(MatchingRuleCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    MatchingRuleFactory<?> factory = matchingRuleFactories.remove(configuration.dn());
    if (factory != null)
@@ -315,7 +299,7 @@
      factory.finalizeMatchingRule();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -406,9 +390,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 MatchingRuleCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
   // Get the existing matching rule factory if it's already enabled.
@@ -429,7 +411,7 @@
        matchingRuleFactories.remove(configuration.dn());
        existingFactory.finalizeMatchingRule();
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -443,10 +425,10 @@
    {
      if (! className.equals(existingFactory.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    MatchingRuleFactory<?> factory = null;
@@ -454,8 +436,6 @@
    {
      factory = loadMatchingRuleFactory(className, configuration, true);
      try
      {
        for(MatchingRule matchingRule: factory.getMatchingRules())
        {
          DirectoryServer.registerMatchingRule(matchingRule, false);
@@ -464,25 +444,16 @@
      }
      catch (DirectoryException de)
      {
        messages.add(WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR.get(configuration.dn(), de.getMessageObject()));
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
        }
      }
      ccr.addMessage(WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR.get(configuration.dn(), de.getMessageObject()));
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java
@@ -26,32 +26,28 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.MonitorProviderCfgDefn;
import org.opends.server.admin.std.server.MonitorProviderCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.MonitorProvider;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of monitor
@@ -146,6 +142,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      MonitorProviderCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -175,18 +172,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 MonitorProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    MonitorProvider<? extends MonitorProviderCfg> monitor = null;
@@ -200,21 +196,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      monitors.put(configuration.dn(), monitor);
      DirectoryServer.registerMonitorProvider(monitor);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -222,6 +214,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      MonitorProviderCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -235,12 +228,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 MonitorProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    MonitorProvider<?> monitor = monitors.remove(configuration.dn());
    if (monitor != null)
@@ -249,7 +241,7 @@
      monitor.finalizeMonitorProvider();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -257,6 +249,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      MonitorProviderCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -286,13 +279,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 MonitorProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing monitor provider if it's already enabled.
    MonitorProvider<?> existingMonitor = monitors.get(configuration.dn());
@@ -311,7 +302,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -325,10 +316,10 @@
    {
      if (! className.equals(existingMonitor.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    MonitorProvider<? extends MonitorProviderCfg> monitor = null;
@@ -338,21 +329,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      monitors.put(configuration.dn(), monitor);
      DirectoryServer.registerMonitorProvider(monitor);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
@@ -26,14 +26,18 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -43,14 +47,9 @@
import org.opends.server.admin.std.server.PasswordGeneratorCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.PasswordGenerator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of password
@@ -145,6 +144,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      PasswordGeneratorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -173,12 +173,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 PasswordGeneratorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing generator if it's already enabled.
@@ -202,7 +201,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -216,10 +215,10 @@
    {
      if (! className.equals(existingGenerator.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    PasswordGenerator<? extends PasswordGeneratorCfg>
@@ -230,26 +229,23 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      passwordGenerators.put(configuration.dn(), passwordGenerator);
      DirectoryServer.registerPasswordGenerator(configuration.dn(),
                                                passwordGenerator);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      PasswordGeneratorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -278,18 +274,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 PasswordGeneratorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    PasswordGenerator<? extends PasswordGeneratorCfg>
@@ -304,27 +299,24 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      passwordGenerators.put(configuration.dn(), passwordGenerator);
      DirectoryServer.registerPasswordGenerator(configuration.dn(),
                                                passwordGenerator);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
      PasswordGeneratorCfg configuration, List<LocalizableMessage> unacceptableReasons)
  {
@@ -336,15 +328,14 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
      PasswordGeneratorCfg configuration)
  {
    ResultCode resultCode          = ResultCode.SUCCESS;
    boolean    adminActionRequired = false;
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See if the entry is registered as a password generator.  If so,
    // deregister it and stop the generator.
    // See if the entry is registered as a password generator.
    // If so, deregister it and stop the generator.
    PasswordGenerator generator = passwordGenerators.remove(configuration.dn());
    if (generator != null)
    {
@@ -353,8 +344,7 @@
      generator.finalizePasswordGenerator();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
@@ -26,12 +26,15 @@
 */
package org.opends.server.core;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -44,12 +47,8 @@
import org.opends.server.api.AuthenticationPolicy;
import org.opends.server.api.AuthenticationPolicyFactory;
import org.opends.server.api.SubentryChangeListener;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of password
 * policies defined in the Directory Server. It will initialize the policies
@@ -205,32 +204,32 @@
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
      AuthenticationPolicyCfg configuration)
  public ConfigChangeResult applyConfigurationAdd(AuthenticationPolicyCfg configuration)
  {
    // See if we can create a password policy from the provided configuration
    // entry. If so, then register it with the Directory Server.
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      createAuthenticationPolicy(configuration);
      return new ConfigChangeResult(ResultCode.SUCCESS, false, messages);
    }
    catch (ConfigException ce)
    {
      messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ce.getMessage()));
      return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false, messages);
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
      ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ce.getMessage()));
    }
    catch (InitializationException ie)
    {
      messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ie.getMessage()));
      return new ConfigChangeResult(DirectoryServer.getServerErrorResultCode(), false, messages);
      ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ie.getMessage()));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    catch (Exception e)
    {
      messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), stackTraceToSingleLineString(e)));
      return new ConfigChangeResult(DirectoryServer.getServerErrorResultCode(), false, messages);
      ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
          configuration.dn(), stackTraceToSingleLineString(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
    return ccr;
  }
@@ -247,16 +246,13 @@
    // a policy is not removed when referenced by a user entry (either
    // directly or via a virtual attribute).
    DN defaultPolicyDN = DirectoryServer.getDefaultPasswordPolicyDN();
    if ((defaultPolicyDN != null) && defaultPolicyDN.equals(configuration.dn()))
    if (defaultPolicyDN != null && defaultPolicyDN.equals(configuration.dn()))
    {
      unacceptableReason.add(WARN_CONFIG_PWPOLICY_CANNOT_DELETE_DEFAULT_POLICY.get(defaultPolicyDN));
      return false;
    }
    else
    {
      return true;
    }
  }
@@ -264,25 +260,24 @@
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
      AuthenticationPolicyCfg configuration)
  public ConfigChangeResult applyConfigurationDelete(AuthenticationPolicyCfg configuration)
  {
    // We'll allow the policy to be removed as long as it isn't the default.
    // FIXME: something like a referential integrity check is needed to ensure
    // a policy is not removed when referenced by a user entry (either
    // directly or via a virtual attribute).
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>(1);
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DN policyDN = configuration.dn();
    DN defaultPolicyDN = DirectoryServer.getDefaultPasswordPolicyDN();
    if ((defaultPolicyDN != null) && defaultPolicyDN.equals(policyDN))
    if (defaultPolicyDN != null && defaultPolicyDN.equals(policyDN))
    {
      messages.add(WARN_CONFIG_PWPOLICY_CANNOT_DELETE_DEFAULT_POLICY.get(defaultPolicyDN));
      return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false, messages);
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
      ccr.addMessage(WARN_CONFIG_PWPOLICY_CANNOT_DELETE_DEFAULT_POLICY.get(defaultPolicyDN));
      return ccr;
    }
    DirectoryServer.deregisterAuthenticationPolicy(policyDN);
    messages.add(INFO_CONFIG_PWPOLICY_REMOVED_POLICY.get(policyDN));
    return new ConfigChangeResult(ResultCode.SUCCESS, false, messages);
    ccr.addMessage(INFO_CONFIG_PWPOLICY_REMOVED_POLICY.get(policyDN));
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyFactory.java
@@ -32,26 +32,22 @@
import static org.opends.messages.CoreMessages.*;
import static org.opends.server.schema.SchemaConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.getExceptionMessage;
import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
import static org.opends.server.util.StaticUtils.toLowerCase;
import static org.opends.server.util.StaticUtils.*;
import java.text.SimpleDateFormat;
import java.util.*;
import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.PasswordPolicyCfgDefn.*;
import org.opends.server.admin.std.server.PasswordPolicyCfg;
import org.opends.server.api.*;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.*;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.GeneralizedTime;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.PasswordPolicyCfgDefn.StateUpdateFailurePolicy;
import org.opends.server.admin.std.server.PasswordPolicyCfg;
import org.opends.server.api.*;
import org.opends.server.types.*;
/**
 * This class is the interface between the password policy configurable
@@ -109,44 +105,39 @@
    /**
     * {@inheritDoc}
     */
    @Override
    public void finalizeAuthenticationPolicy()
    {
      configuration.removePasswordPolicyChangeListener(this);
    }
    /**
     * {@inheritDoc}
     */
    public ConfigChangeResult applyConfigurationChange(
        PasswordPolicyCfg configuration)
    /** {@inheritDoc} */
    @Override
    public ConfigChangeResult applyConfigurationChange(PasswordPolicyCfg configuration)
    {
      ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      try
      {
        updateConfiguration(configuration, true);
        return new ConfigChangeResult(ResultCode.SUCCESS, false, messages);
      }
      catch (ConfigException ce)
      {
        messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ce.getMessage()));
        return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false, messages);
        ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
        ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(configuration.dn(), ce.getMessage()));
      }
      catch (InitializationException ie)
      {
        messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
        ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
            configuration.dn(), ie.getMessage()));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), false, messages);
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      catch (Exception e)
      {
        messages.add(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
        ccr.addMessage(ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
            configuration.dn(), stackTraceToSingleLineString(e)));
        return new ConfigChangeResult(
            DirectoryServer.getServerErrorResultCode(), false, messages);
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      return ccr;
    }
@@ -154,6 +145,7 @@
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean isConfigurationChangeAcceptable(
        PasswordPolicyCfg configuration, List<LocalizableMessage> unacceptableReasons)
    {
@@ -456,6 +448,7 @@
    /**
     * {@inheritDoc}
     */
    @Override
    public Set<String> getDeprecatedPasswordStorageSchemes()
    {
      return deprecatedStorageSchemes;
@@ -466,6 +459,7 @@
    /**
     * {@inheritDoc}
     */
    @Override
    public DN getDN()
    {
      return configuration.dn();
@@ -563,6 +557,7 @@
     *
     * @return A string representation of this password policy.
     */
    @Override
    public String toString()
    {
      StringBuilder buffer = new StringBuilder();
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
@@ -26,9 +26,6 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
@@ -36,6 +33,9 @@
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -45,11 +45,9 @@
import org.opends.server.admin.std.server.PasswordStorageSchemeCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.api.PasswordStorageScheme;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines a utility that will be used to manage the set of password
@@ -138,6 +136,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
      PasswordStorageSchemeCfg configuration,
      List<LocalizableMessage> unacceptableReasons
@@ -171,21 +170,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
      PasswordStorageSchemeCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // Get the configuration entry DN and the associated
    // password storage scheme class.
    DN configEntryDN = configuration.dn();
    PasswordStorageScheme storageScheme = storageSchemes.get(
        configEntryDN
        );
    PasswordStorageScheme storageScheme = storageSchemes.get(configEntryDN);
    // If the new configuration has the password storage scheme disabled,
    // then remove it from the mapping list and clean it.
@@ -236,6 +231,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
      PasswordStorageSchemeCfg configuration,
      List<LocalizableMessage> unacceptableReasons
@@ -278,14 +274,12 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
      PasswordStorageSchemeCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    // Register a change listener with it so we can be notified of changes
    // to it over time.
@@ -316,6 +310,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
      PasswordStorageSchemeCfg configuration,
      List<LocalizableMessage> unacceptableReasons
@@ -330,14 +325,12 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
      PasswordStorageSchemeCfg configuration
      )
  {
    // Returned result.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    final ConfigChangeResult changeResult = new ConfigChangeResult();
    uninstallPasswordStorageScheme (configuration.dn());
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
@@ -26,31 +26,30 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.PasswordValidatorCfgDefn;
import org.opends.server.admin.std.server.PasswordValidatorCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.PasswordValidator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of
@@ -149,6 +148,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      PasswordValidatorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -178,18 +178,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
                                 PasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    PasswordValidator<? extends PasswordValidatorCfg>
@@ -204,22 +203,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      passwordValidators.put(configuration.dn(), passwordValidator);
      DirectoryServer.registerPasswordValidator(configuration.dn(),
                                                passwordValidator);
      DirectoryServer.registerPasswordValidator(configuration.dn(), passwordValidator);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -227,6 +221,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      PasswordValidatorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -241,12 +236,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 PasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DirectoryServer.deregisterPasswordValidator(configuration.dn());
@@ -257,7 +251,7 @@
      passwordValidator.finalizePasswordValidator();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -265,6 +259,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      PasswordValidatorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -294,12 +289,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 PasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing validator if it's already enabled.
@@ -323,7 +317,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -337,10 +331,10 @@
    {
      if (! className.equals(existingValidator.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    PasswordValidator<? extends PasswordValidatorCfg>
@@ -351,22 +345,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      passwordValidators.put(configuration.dn(), passwordValidator);
      DirectoryServer.registerPasswordValidator(configuration.dn(),
                                                passwordValidator);
      DirectoryServer.registerPasswordValidator(configuration.dn(), passwordValidator);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
@@ -26,12 +26,18 @@
 */
package org.opends.server.core;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -47,15 +53,9 @@
import org.opends.server.api.plugin.InternalDirectoryServerPlugin;
import org.opends.server.api.plugin.PluginResult;
import org.opends.server.api.plugin.PluginType;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the configuration
 * for the set of plugins defined in the Directory Server.  It will perform the
@@ -4751,15 +4751,13 @@
  public ConfigChangeResult applyConfigurationAdd(
                                 PluginCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    // Create a set of plugin types for the plugin.
@@ -4780,20 +4778,16 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      registerPlugin(plugin, configuration.dn(), pluginTypes);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -4819,13 +4813,11 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 PluginCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    deregisterPlugin(configuration.dn());
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -4875,9 +4867,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 PluginCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing plugin if it's already enabled.
@@ -4894,7 +4884,7 @@
        deregisterPlugin(configuration.dn());
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -4909,13 +4899,13 @@
    {
      if (! className.equals(existingPlugin.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      existingPlugin.setInvokeForInternalOperations(
                          configuration.isInvokeForInternalOperations());
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    // Create a set of plugin types for the plugin.
@@ -4933,20 +4923,16 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      registerPlugin(plugin, configuration.dn(), pluginTypes);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private void registerSkippedPreOperationPlugins(int i,
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/RootDNConfigManager.java
@@ -25,36 +25,28 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import static org.opends.messages.ConfigMessages.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.server.RootDNCfg;
import org.opends.server.admin.std.server.RootDNUserCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.Privilege;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
/**
 * This class defines a utility that will be used to manage the set of root
@@ -171,6 +163,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(RootDNUserCfg configuration,
                                              List<LocalizableMessage> unacceptableReasons)
  {
@@ -196,13 +189,12 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(RootDNUserCfg configuration)
  {
    configuration.addChangeListener(this);
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    HashSet<DN> altBindDNs = new HashSet<DN>();
    for (DN altBindDN : configuration.getAlternateBindDN())
@@ -216,8 +208,8 @@
      {
        // This shouldn't happen, since the set of DNs should have already been
        // validated.
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(de.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(de.getMessageObject());
        for (DN dn : altBindDNs)
        {
@@ -227,13 +219,13 @@
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      DirectoryServer.registerRootDN(configuration.dn());
      alternateBindDNs.put(configuration.dn(), altBindDNs);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -241,6 +233,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(RootDNUserCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
  {
@@ -252,15 +245,14 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
                                 RootDNUserCfg configuration)
  {
    DirectoryServer.deregisterRootDN(configuration.dn());
    configuration.removeChangeListener(this);
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    HashSet<DN> altBindDNs = alternateBindDNs.remove(configuration.dn());
    if (altBindDNs != null)
@@ -271,7 +263,7 @@
      }
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -279,6 +271,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(RootDNUserCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
  {
@@ -306,12 +299,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 RootDNUserCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    HashSet<DN> setDNs = new HashSet<DN>();
    HashSet<DN> addDNs = new HashSet<DN>();
@@ -345,8 +337,8 @@
      {
        // This shouldn't happen, since the set of DNs should have already been
        // validated.
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(de.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(de.getMessageObject());
        for (DN addedDN : addedDNs)
        {
@@ -369,12 +361,12 @@
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      alternateBindDNs.put(configuration.dn(), setDNs);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/RootPrivilegeChangeListener.java
@@ -25,22 +25,17 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.RootDNCfgDefn;
import org.opends.server.admin.std.server.RootDNCfg;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.Privilege;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines a data structure that is used to handle changes to the set
@@ -67,6 +62,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(RootDNCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
  {
@@ -79,14 +75,13 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(RootDNCfg configuration)
  {
    setDefaultRootPrivileges(configuration);
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /**
   * Retrieves the set of privileges that will be automatically granted to root
   * users.
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
@@ -26,31 +26,30 @@
 */
package org.opends.server.core;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.std.meta.SASLMechanismHandlerCfgDefn;
import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.SASLMechanismHandlerCfgDefn;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
import org.opends.server.api.SASLMechanismHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the set of SASL
@@ -149,6 +148,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAddAcceptable(
                      SASLMechanismHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -178,18 +178,17 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationAdd(
              SASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    SASLMechanismHandler handler = null;
@@ -203,20 +202,16 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      handlers.put(configuration.dn(), handler);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -224,6 +219,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationDeleteAcceptable(
                      SASLMechanismHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -238,12 +234,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationDelete(
              SASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    SASLMechanismHandler handler = handlers.remove(configuration.dn());
    if (handler != null)
@@ -251,7 +246,7 @@
      handler.finalizeSASLMechanismHandler();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -259,6 +254,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      SASLMechanismHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -288,12 +284,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
              SASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing handler if it's already enabled.
@@ -313,7 +308,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -327,10 +322,10 @@
    {
      if (! className.equals(existingHandler.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    SASLMechanismHandler handler = null;
@@ -340,20 +335,16 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      handlers.put(configuration.dn(), handler);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
@@ -26,13 +26,15 @@
 */
package org.opends.server.core;
import java.util.ArrayList;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -42,14 +44,10 @@
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.server.SynchronizationProviderCfg;
import org.opends.server.api.SynchronizationProvider;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a utility that will be used to manage the configuration
 * for the set of synchronization providers configured in the Directory Server.
@@ -150,10 +148,7 @@
  public ConfigChangeResult applyConfigurationChange(
      SynchronizationProviderCfg configuration)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Attempt to get the existing synchronization provider. This will only
    // succeed if it is currently enabled.
@@ -187,17 +182,17 @@
          if (logger.isTraceEnabled())
          {
            logger.traceException(e);
            messages.add(e.getMessageObject());
            resultCode = DirectoryServer.getServerErrorResultCode();
            ccr.addMessage(e.getMessageObject());
            ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          }
        }
        catch (Exception e)
        {
          logger.traceException(e);
          messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
          ccr.addMessage(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
              configuration.getJavaClass(), configuration.dn()));
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
    }
@@ -213,7 +208,7 @@
        String className = configuration.getJavaClass();
        if (!className.equals(provider.getClass().getName()))
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
      }
      else
@@ -226,9 +221,7 @@
        registeredProviders.remove(dn);
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired,
        messages);
    return ccr;
  }
@@ -261,10 +254,7 @@
  public ConfigChangeResult applyConfigurationAdd(
    SynchronizationProviderCfg configuration)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Register as a change listener for this synchronization provider entry
    // so that we will be notified if when it is disabled or enabled.
@@ -292,23 +282,21 @@
        if (logger.isTraceEnabled())
        {
          logger.traceException(e);
          messages.add(e.getMessageObject());
          resultCode = DirectoryServer.getServerErrorResultCode();
          ccr.addMessage(e.getMessageObject());
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        }
      }
      catch (Exception e)
      {
        logger.traceException(e);
        messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
        ccr.addMessage(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get(
            configuration.getJavaClass(), configuration.dn()));
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
    }
    // Return the configuration result.
    return new ConfigChangeResult(resultCode, adminActionRequired,
        messages);
    return ccr;
  }
@@ -443,9 +431,7 @@
  public ConfigChangeResult applyConfigurationDelete(
      SynchronizationProviderCfg configuration)
  {
    //  Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See if the entry is registered as a synchronization provider. If so,
    // deregister and stop it.
@@ -456,7 +442,7 @@
      DirectoryServer.deregisterSynchronizationProvider(provider);
      provider.finalizeSynchronizationProvider();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
@@ -179,15 +179,13 @@
  public ConfigChangeResult applyConfigurationAdd(
                                  TrustManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    TrustManagerProvider provider = null;
@@ -201,22 +199,18 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      providers.put(configuration.dn(), provider);
      DirectoryServer.registerTrustManagerProvider(configuration.dn(),
                                                   provider);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -241,9 +235,7 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 TrustManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DirectoryServer.deregisterTrustManagerProvider(configuration.dn());
@@ -253,7 +245,7 @@
      provider.finalizeTrustManagerProvider();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -293,9 +285,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 TrustManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing provider if it's already enabled.
@@ -317,7 +307,7 @@
        }
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -331,10 +321,10 @@
    {
      if (! className.equals(existingProvider.getClass().getName()))
      {
        adminActionRequired = true;
        ccr.setAdminActionRequired(true);
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    TrustManagerProvider provider = null;
@@ -344,22 +334,17 @@
    }
    catch (InitializationException ie)
    {
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ie.getMessageObject());
      }
      messages.add(ie.getMessageObject());
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      providers.put(configuration.dn(), provider);
      DirectoryServer.registerTrustManagerProvider(configuration.dn(),
                                                   provider);
      DirectoryServer.registerTrustManagerProvider(configuration.dn(), provider);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
@@ -26,6 +26,10 @@
 */
package org.opends.server.core;
import static org.forgerock.opendj.adapter.server3x.Converters.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
@@ -33,6 +37,8 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -43,13 +49,7 @@
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.server.VirtualAttributeCfg;
import org.opends.server.api.VirtualAttributeProvider;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import static org.forgerock.opendj.adapter.server3x.Converters.from;
/**
 * This class defines a utility that will be used to manage the set of
@@ -234,15 +234,13 @@
  public ConfigChangeResult applyConfigurationAdd(
                                 VirtualAttributeCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    List<LocalizableMessage>     messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    configuration.addChangeListener(this);
    if (! configuration.isEnabled())
    {
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    // Make sure that we can parse all of the search filters.
@@ -251,17 +249,14 @@
    Set<SearchFilter> filters = buildFilters(configuration, reasons);
    if (!reasons.isEmpty())
    {
      messages.addAll(reasons.keySet());
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
      }
      ccr.getMessages().addAll(reasons.keySet());
      ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
    }
    // Get the name of the class and make sure we can instantiate it as a
    // certificate mapper.
    VirtualAttributeProvider<? extends VirtualAttributeCfg> provider = null;
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      String className = configuration.getJavaClass();
      try
@@ -270,18 +265,18 @@
      }
      catch (InitializationException ie)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ie.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ie.getMessageObject());
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      VirtualAttributeRule rule = createRule(configuration, provider, filters);
      rules.put(configuration.dn(), rule);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /** {@inheritDoc} */
@@ -299,9 +294,7 @@
  public ConfigChangeResult applyConfigurationDelete(
                                 VirtualAttributeCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    List<LocalizableMessage>     messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    VirtualAttributeRule rule = rules.remove(configuration.dn());
    if (rule != null)
@@ -309,7 +302,7 @@
      rule.getProvider().finalizeVirtualAttributeProvider();
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /** {@inheritDoc} */
@@ -358,9 +351,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 VirtualAttributeCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    List<LocalizableMessage>     messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the existing rule if it's already enabled.
@@ -377,7 +368,7 @@
        existingRule.getProvider().finalizeVirtualAttributeProvider();
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
@@ -387,17 +378,14 @@
    Set<SearchFilter> filters = buildFilters(configuration, reasons);
    if (!reasons.isEmpty())
    {
      messages.addAll(reasons.keySet());
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
      }
      ccr.getMessages().addAll(reasons.keySet());
      ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
    }
    // Get the name of the class and make sure we can instantiate it as a
    // certificate mapper.
    VirtualAttributeProvider<? extends VirtualAttributeCfg> provider = null;
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      String className = configuration.getJavaClass();
      try
@@ -406,12 +394,12 @@
      }
      catch (InitializationException ie)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ie.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ie.getMessageObject());
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      VirtualAttributeRule rule = createRule(configuration, provider, filters);
      rules.put(configuration.dn(), rule);
@@ -421,7 +409,7 @@
      }
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java
@@ -25,11 +25,9 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.core;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ServerManagementContext;
@@ -142,10 +140,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(WorkQueueCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // If the work queue class has been changed, then we should warn the user
    // that it won't take effect until the server is restarted.
@@ -153,15 +148,10 @@
    String workQueueClass = configuration.getJavaClass();
    if (! workQueueClass.equals(workQueue.getClass().getName()))
    {
      messages.add(INFO_CONFIG_WORK_QUEUE_CLASS_CHANGE_REQUIRES_RESTART.get(
              workQueue.getClass().getName(),
              workQueueClass));
      adminActionRequired = true;
      ccr.addMessage(INFO_CONFIG_WORK_QUEUE_CLASS_CHANGE_REQUIRES_RESTART.get(
              workQueue.getClass().getName(), workQueueClass));
      ccr.setAdminActionRequired(true);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/crypto/CryptoManagerImpl.java
@@ -452,8 +452,7 @@
    preferredCipherTransformation = cfg.getCipherTransformation();
    preferredCipherTransformationKeyLengthBits = cfg.getCipherKeyLength();
    preferredKeyWrappingTransformation = cfg.getKeyWrappingTransformation();
    return new ConfigChangeResult(ResultCode.SUCCESS, false,
        new ArrayList<LocalizableMessage>());
    return new ConfigChangeResult();
  }
@@ -466,21 +465,16 @@
  private TrustStoreBackend getTrustStoreBackend()
       throws ConfigException
  {
    Backend b = DirectoryServer.getBackend(
         ConfigConstants.ID_ADS_TRUST_STORE_BACKEND);
    Backend<?> b = DirectoryServer.getBackend(ConfigConstants.ID_ADS_TRUST_STORE_BACKEND);
    if (b == null)
    {
      LocalizableMessage msg =
           ERR_CRYPTOMGR_ADS_TRUST_STORE_BACKEND_NOT_ENABLED.get(
                ConfigConstants.ID_ADS_TRUST_STORE_BACKEND);
      throw new ConfigException(msg);
      throw new ConfigException(ERR_CRYPTOMGR_ADS_TRUST_STORE_BACKEND_NOT_ENABLED.get(
            ConfigConstants.ID_ADS_TRUST_STORE_BACKEND));
    }
    if (!(b instanceof TrustStoreBackend))
    {
      LocalizableMessage msg =
           ERR_CRYPTOMGR_ADS_TRUST_STORE_BACKEND_WRONG_CLASS.get(
                ConfigConstants.ID_ADS_TRUST_STORE_BACKEND);
      throw new ConfigException(msg);
      throw new ConfigException(ERR_CRYPTOMGR_ADS_TRUST_STORE_BACKEND_WRONG_CLASS.get(
            ConfigConstants.ID_ADS_TRUST_STORE_BACKEND));
    }
    return (TrustStoreBackend)b;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/AttributeValuePasswordValidator.java
@@ -25,11 +25,9 @@
 *      Portions Copyright 2012-2014 ForgeRock AS.
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -38,12 +36,10 @@
import org.opends.server.admin.std.server.PasswordValidatorCfg;
import org.opends.server.api.PasswordValidator;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
/**
 * This class provides an OpenDS password validator that may be used to ensure
 * that proposed passwords are not contained in another attribute in the user's
@@ -233,14 +229,7 @@
  public ConfigChangeResult applyConfigurationChange(
                      AttributeValuePasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    currentConfig = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
@@ -31,7 +31,6 @@
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.locks.Lock;
@@ -581,15 +580,12 @@
  public ConfigChangeResult applyConfigurationChange(
              CramMD5SASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    DN identityMapperDN = configuration.getIdentityMapperDN();
    identityMapper = DirectoryServer.getIdentityMapper(identityMapperDN);
    currentConfig  = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CharacterSetPasswordValidator.java
@@ -25,29 +25,27 @@
 *      Portions Copyright 2011-2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.CharacterSetPasswordValidatorCfg;
import org.opends.server.admin.std.server.PasswordValidatorCfg;
import org.opends.server.api.PasswordValidator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
import static org.opends.server.util.StaticUtils.*;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryConfig;
import org.opends.server.types.Entry;
import org.opends.server.types.Operation;
/**
 * This class provides an OpenDJ password validator that may be used to ensure
@@ -502,6 +500,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      CharacterSetPasswordValidatorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -526,13 +525,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                      CharacterSetPasswordValidatorCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Make sure that we can process the defined character sets.  If so, then
    // activate the new configuration.
@@ -543,11 +540,10 @@
    }
    catch (Exception e)
    {
      resultCode = DirectoryConfig.getServerErrorResultCode();
      messages.add(getExceptionMessage(e));
      ccr.setResultCode(DirectoryConfig.getServerErrorResultCode());
      ccr.addMessage(getExceptionMessage(e));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/CryptPasswordStorageScheme.java
@@ -27,7 +27,6 @@
 */
package org.opends.server.extensions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
@@ -530,22 +529,12 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                      CryptPasswordStorageSchemeCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    List<LocalizableMessage>     messages            = new ArrayList<LocalizableMessage>();
    currentConfig = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DefaultEntryCache.java
@@ -26,28 +26,24 @@
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.EntryCacheCfg;
import org.opends.server.api.Backend;
import org.opends.server.api.BackendInitializationListener;
import org.opends.server.api.EntryCache;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.Attribute;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines the default entry cache which acts as an arbiter for
@@ -65,8 +61,10 @@
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  // The entry cache order array reflects all currently configured and
  // active entry cache implementations in cache level specific order.
  /**
   * The entry cache order array reflects all currently configured and
   * active entry cache implementations in cache level specific order.
   */
  private static EntryCache<? extends EntryCacheCfg>[] cacheOrder =
    new EntryCache<?>[0];
@@ -83,10 +81,7 @@
    DirectoryServer.registerBackendInitializationListener(this);
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void initializeEntryCache(EntryCacheCfg configEntry)
         throws ConfigException, InitializationException
@@ -94,10 +89,7 @@
    // No implementation required.
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void finalizeEntryCache()
  {
@@ -108,10 +100,7 @@
    cacheOrder = new EntryCache<?>[0];
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean containsEntry(DN entryDN)
  {
@@ -128,10 +117,7 @@
    return false;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public Entry getEntry(Backend backend, long entryID)
  {
@@ -152,10 +138,7 @@
    return null;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public Entry getEntry(DN entryDN)
  {
@@ -176,11 +159,7 @@
    return null;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public long getEntryID(DN entryDN)
  {
@@ -195,11 +174,7 @@
    return -1;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public DN getEntryDN(Backend backend, long entryID)
  {
@@ -214,11 +189,7 @@
    return null;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void putEntry(Entry entry, Backend backend, long entryID)
  {
@@ -233,11 +204,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean putEntryIfAbsent(Entry entry, Backend backend, long entryID)
  {
@@ -253,11 +220,7 @@
    return false;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void removeEntry(DN entryDN)
  {
@@ -269,11 +232,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void clear()
  {
@@ -282,11 +241,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void clearBackend(Backend backend)
  {
@@ -295,11 +250,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void clearSubtree(DN baseDN)
  {
@@ -308,11 +259,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void handleLowMemory()
  {
@@ -321,11 +268,7 @@
    }
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationChangeAcceptable(
      EntryCacheCfg configuration,
@@ -336,42 +279,26 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationChange(
      EntryCacheCfg configuration
      )
  public ConfigChangeResult applyConfigurationChange(EntryCacheCfg configuration)
  {
    // No implementation required.
    ConfigChangeResult changeResult = new ConfigChangeResult(
        ResultCode.SUCCESS, false, new ArrayList<LocalizableMessage>()
        );
    return changeResult;
    return new ConfigChangeResult();
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ArrayList<Attribute> getMonitorData()
  {
    ArrayList<Attribute> attrs = new ArrayList<Attribute>();
    // The sum of cache hits of all active entry cache
    // implementations.
    Long entryCacheHits = new Long(0);
    // The sum of cache hits of all active entry cache implementations.
    long entryCacheHits = 0;
    // Common for all active entry cache implementations.
    Long entryCacheMisses = new Long(cacheMisses.longValue());
    // The sum of cache counts of all active entry cache
    // implementations.
    Long currentEntryCacheCount = new Long(0);
    long entryCacheMisses = cacheMisses.longValue();
    // The sum of cache counts of all active entry cache implementations.
    long currentEntryCacheCount = 0;
    for (EntryCache<?> entryCache : cacheOrder) {
      // Get cache hits and counts from every active cache.
@@ -395,28 +322,19 @@
    return attrs;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public Long getCacheCount()
  {
    Long cacheCount = new Long(0);
    long cacheCount = 0;
    for (EntryCache<?> entryCache : cacheOrder) {
      cacheCount += entryCache.getCacheCount();
    }
    return cacheCount;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public String toVerboseString()
  {
    StringBuilder sb = new StringBuilder();
@@ -429,7 +347,7 @@
      }
    }
    String verboseString = sb.toString();
    return (verboseString.length() > 0 ? verboseString : null);
    return verboseString.length() > 0 ? verboseString : null;
  }
@@ -490,9 +408,9 @@
  public void performBackendFinalizationProcessing(Backend backend)
  {
    // Do not clear any backends if the server is shutting down.
    if ( !(DirectoryServer.getInstance().isShuttingDown()) ) {
    if (!DirectoryServer.getInstance().isShuttingDown())
    {
      clearBackend(backend);
    }
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DictionaryPasswordValidator.java
@@ -26,32 +26,27 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.DictionaryPasswordValidatorCfg;
import org.opends.server.admin.std.server.PasswordValidatorCfg;
import org.opends.server.api.PasswordValidator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides an OpenDS password validator that may be used to ensure
@@ -252,6 +247,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      DictionaryPasswordValidatorCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -286,16 +282,13 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                      DictionaryPasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    // Make sure we can load the dictionary.  If we can, then activate the new
    // configuration.
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      dictionary    = loadDictionary(configuration);
@@ -303,11 +296,10 @@
    }
    catch (Exception e)
    {
      resultCode = DirectoryConfig.getServerErrorResultCode();
      messages.add(getExceptionMessage(e));
      ccr.setResultCode(DirectoryConfig.getServerErrorResultCode());
      ccr.addMessage(getExceptionMessage(e));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private boolean isDictionaryBased(String password,
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
@@ -26,35 +26,34 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.security.sasl.*;
import javax.security.sasl.Sasl;
import javax.security.sasl.SaslException;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.DigestMD5SASLMechanismHandlerCfgDefn.*;
import org.opends.server.admin.std.meta.DigestMD5SASLMechanismHandlerCfgDefn.QualityOfProtection;
import org.opends.server.admin.std.server.DigestMD5SASLMechanismHandlerCfg;
import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.api.IdentityMapper;
import org.opends.server.api.SASLMechanismHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.BindOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides an implementation of a SASL mechanism that authenticates
@@ -218,6 +217,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      DigestMD5SASLMechanismHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -229,13 +229,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
          DigestMD5SASLMechanismHandlerCfg configuration)
  {
      ResultCode        resultCode          = ResultCode.SUCCESS;
      boolean           adminActionRequired = false;
      ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
      final ConfigChangeResult ccr = new ConfigChangeResult();
      try {
          DN identityMapperDN = configuration.getIdentityMapperDN();
          identityMapper = DirectoryServer.getIdentityMapper(identityMapperDN);
@@ -254,11 +252,10 @@
          this.configuration  = configuration;
      } catch (UnknownHostException unhe) {
          logger.traceException(unhe);
          resultCode = ResultCode.OPERATIONS_ERROR;
          messages.add(ERR_SASL_CANNOT_GET_SERVER_FQDN.get(configEntryDN, getExceptionMessage(unhe)));
          return new ConfigChangeResult(resultCode,adminActionRequired, messages);
          ccr.setResultCode(ResultCode.OPERATIONS_ERROR);
          ccr.addMessage(ERR_SASL_CANNOT_GET_SERVER_FQDN.get(configEntryDN, getExceptionMessage(unhe)));
      }
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java
@@ -96,7 +96,7 @@
      final EntityTagVirtualAttributeCfg configuration)
  {
    this.config = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ErrorLogAccountStatusNotificationHandler.java
@@ -25,15 +25,12 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -50,9 +47,6 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines an account status notification handler that will write
@@ -197,21 +191,11 @@
      ErrorLogAccountStatusNotificationHandlerCfg configuration
      )
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    ConfigChangeResult changeResult = new ConfigChangeResult(
        resultCode, adminActionRequired, messages
        );
    // Initialize the set of notification types that should generate log
    // messages.
    // Initialize the set of notification types that should generate log messages.
    boolean applyChanges = false;
    processNotificationHandlerConfig (
        configuration, applyChanges
        );
    processNotificationHandlerConfig (configuration, applyChanges);
    return changeResult;
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ExactMatchIdentityMapper.java
@@ -334,17 +334,12 @@
  public ConfigChangeResult applyConfigurationChange(
              ExactMatchIdentityMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    attributeTypes =
         configuration.getMatchAttribute().toArray(new AttributeType[0]);
    currentConfig = configuration;
   return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ExternalSASLMechanismHandler.java
@@ -27,7 +27,6 @@
package org.opends.server.extensions;
import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
@@ -376,9 +375,7 @@
  public ConfigChangeResult applyConfigurationChange(
              ExternalSASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // See if we should attempt to validate client certificates against those in
@@ -410,15 +407,14 @@
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      validationPolicy         = newValidationPolicy;
      certificateAttributeType = newCertificateType;
      currentConfig            = configuration;
    }
   return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedKeyManagerProvider.java
@@ -36,7 +36,6 @@
import java.io.IOException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.util.ArrayList;
import java.util.List;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
@@ -434,9 +433,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 FileBasedKeyManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the path to the key store file.
@@ -446,19 +443,16 @@
      File f = getFileForPath(newKeyStoreFile);
      if (!(f.exists() && f.isFile()))
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_KEYMANAGER_NO_SUCH_FILE.get(
            newKeyStoreFile, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_KEYMANAGER_NO_SUCH_FILE.get(newKeyStoreFile, configEntryDN));
      }
    }
    catch (Exception e)
    {
      logger.traceException(e);
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(
          configEntryDN, getExceptionMessage(e)));
    }
@@ -475,9 +469,8 @@
      {
        logger.traceException(kse);
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_KEYMANAGER_INVALID_TYPE.get(
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_KEYMANAGER_INVALID_TYPE.get(
            configuration.getKeyStoreType(), configEntryDN, getExceptionMessage(kse)));
      }
    }
@@ -502,9 +495,8 @@
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(
            propertyName, configEntryDN));
      }
      else
@@ -519,10 +511,8 @@
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_KEYMANAGER_PIN_ENVAR_NOT_SET.get(
            enVarName, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_ENVAR_NOT_SET.get(enVarName, configEntryDN));
      }
      else
      {
@@ -536,10 +526,8 @@
      if (!pinFile.exists())
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_KEYMANAGER_PIN_NO_SUCH_FILE.get(
            fileName, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_NO_SUCH_FILE.get(fileName, configEntryDN));
      }
      else
      {
@@ -551,9 +539,8 @@
        }
        catch (IOException ioe)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
              fileName, configEntryDN, getExceptionMessage(ioe)));
        }
        finally
@@ -563,10 +550,8 @@
        if (pinStr == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(
              fileName, configEntryDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, configEntryDN));
        }
        else
        {
@@ -579,7 +564,7 @@
      newPIN = configuration.getKeyStorePin().toCharArray();
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      currentConfig = configuration;
      keyStorePIN   = newPIN;
@@ -587,8 +572,6 @@
      keyStoreType  = newKeyStoreType;
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FileBasedTrustManagerProvider.java
@@ -25,11 +25,8 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -56,11 +53,8 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a trust manager provider that will reference certificates
 * stored in a file located on the Directory Server filesystem.
@@ -462,9 +456,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 FileBasedTrustManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the path to the trust store file.
@@ -472,14 +464,11 @@
    File f = getFileForPath(newTrustStoreFile);
    if (! (f.exists() && f.isFile()))
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_FILE_TRUSTMANAGER_NO_SUCH_FILE.get(newTrustStoreFile, configEntryDN));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_FILE_TRUSTMANAGER_NO_SUCH_FILE.get(newTrustStoreFile, configEntryDN));
    }
    // Get the trust store type.  If none is specified, then use the default
    // type.
    // Get the trust store type.  If none is specified, then use the default type.
    String newTrustStoreType = configuration.getTrustStoreType();
    if (newTrustStoreType == null)
    {
@@ -494,8 +483,9 @@
    {
      logger.traceException(kse);
      messages.add(ERR_FILE_TRUSTMANAGER_INVALID_TYPE.get(newTrustStoreType, configEntryDN, getExceptionMessage(kse)));
      resultCode = DirectoryServer.getServerErrorResultCode();
      ccr.addMessage(ERR_FILE_TRUSTMANAGER_INVALID_TYPE.get(
          newTrustStoreType, configEntryDN, getExceptionMessage(kse)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
    }
@@ -534,9 +524,8 @@
          File pinFile = getFileForPath(newPINFile);
          if (! pinFile.exists())
          {
            resultCode = DirectoryServer.getServerErrorResultCode();
            messages.add(ERR_FILE_TRUSTMANAGER_PIN_NO_SUCH_FILE.get(newPINFile, configEntryDN));
            ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
            ccr.addMessage(ERR_FILE_TRUSTMANAGER_PIN_NO_SUCH_FILE.get(newPINFile, configEntryDN));
          }
          else
          {
@@ -550,8 +539,8 @@
            }
            catch (IOException ioe)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
              messages.add(ERR_FILE_TRUSTMANAGER_PIN_FILE_CANNOT_READ.get(
              ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
              ccr.addMessage(ERR_FILE_TRUSTMANAGER_PIN_FILE_CANNOT_READ.get(
                  newPINFile, configEntryDN, getExceptionMessage(ioe)));
            }
            finally
@@ -561,9 +550,8 @@
            if (pinStr == null)
            {
              resultCode = DirectoryServer.getServerErrorResultCode();
              messages.add(ERR_FILE_TRUSTMANAGER_PIN_FILE_EMPTY.get(newPINFile, configEntryDN));
              ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
              ccr.addMessage(ERR_FILE_TRUSTMANAGER_PIN_FILE_EMPTY.get(newPINFile, configEntryDN));
            }
            else
            {
@@ -577,9 +565,8 @@
        String pinStr = System.getenv(newPINEnVar);
        if (pinStr == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_FILE_TRUSTMANAGER_PIN_ENVAR_NOT_SET.get(newPINEnVar, configEntryDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_FILE_TRUSTMANAGER_PIN_ENVAR_NOT_SET.get(newPINEnVar, configEntryDN));
        }
        else
        {
@@ -592,9 +579,8 @@
      String pinStr = System.getProperty(newPINProperty);
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_FILE_TRUSTMANAGER_PIN_PROPERTY_NOT_SET.get(newPINProperty, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_FILE_TRUSTMANAGER_PIN_PROPERTY_NOT_SET.get(newPINProperty, configEntryDN));
      }
      else
      {
@@ -603,7 +589,7 @@
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      trustStoreFile = newTrustStoreFile;
      trustStoreType = newTrustStoreType;
@@ -611,8 +597,6 @@
      currentConfig  = configuration;
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -336,9 +336,7 @@
  public ConfigChangeResult applyConfigurationChange(
              FingerprintCertificateMapperCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the algorithm that will be used to generate the fingerprint.
@@ -354,7 +352,7 @@
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      fingerprintAlgorithm = newFingerprintAlgorithm;
      currentConfig        = configuration;
@@ -376,12 +374,11 @@
      {
        LocalizableMessage message = WARN_SATUACM_ATTR_UNINDEXED.get(
            configuration.dn(), t.getNameOrOID(), b.getBackendID());
        messages.add(message);
        ccr.addMessage(message);
        logger.error(message);
      }
    }
   return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/GSSAPISASLMechanismHandler.java
@@ -29,7 +29,7 @@
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.config.ConfigConstants.CONFIG_DIR_NAME;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
@@ -39,7 +39,6 @@
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -51,27 +50,24 @@
import javax.security.sasl.Sasl;
import javax.security.sasl.SaslException;
import org.ietf.jgss.GSSException;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.ietf.jgss.GSSException;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.
  GSSAPISASLMechanismHandlerCfgDefn.QualityOfProtection;
import org.opends.server.admin.std.meta.GSSAPISASLMechanismHandlerCfgDefn.QualityOfProtection;
import org.opends.server.admin.std.server.GSSAPISASLMechanismHandlerCfg;
import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.api.IdentityMapper;
import org.opends.server.api.SASLMechanismHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.BindOperation;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class provides an implementation of a SASL mechanism that
@@ -191,6 +187,7 @@
   * @throws UnsupportedCallbackException
   *           if an error occurs.
   */
  @Override
  public void handle(Callback[] callbacks) throws UnsupportedCallbackException
  {
  }
@@ -473,6 +470,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
      GSSAPISASLMechanismHandlerCfg newConfiguration,
      List<LocalizableMessage> unacceptableReasons) {
@@ -523,11 +521,10 @@
  /**
   * {@inheritDoc}
   */
  public ConfigChangeResult applyConfigurationChange(
      GSSAPISASLMechanismHandlerCfg newConfiguration) {
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
  @Override
  public ConfigChangeResult applyConfigurationChange(GSSAPISASLMechanismHandlerCfg newConfiguration)
  {
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      logout();
@@ -537,21 +534,21 @@
    }
    catch (InitializationException ex) {
      logger.traceException(ex);
      messages.add(ex.getMessageObject());
      ccr.addMessage(ex.getMessageObject());
      clearProperties();
      resultCode = ResultCode.OTHER;
      ccr.setResultCode(ResultCode.OTHER);
    } catch (UnknownHostException ex) {
      logger.traceException(ex);
      messages.add(ERR_SASL_CANNOT_GET_SERVER_FQDN.get(configEntryDN, getExceptionMessage(ex)));
      ccr.addMessage(ERR_SASL_CANNOT_GET_SERVER_FQDN.get(configEntryDN, getExceptionMessage(ex)));
      clearProperties();
      resultCode = ResultCode.OTHER;
      ccr.setResultCode(ResultCode.OTHER);
    } catch (IOException ex) {
      logger.traceException(ex);
      messages.add(ERR_SASLGSSAPI_CANNOT_CREATE_JAAS_CONFIG.get(getExceptionMessage(ex)));
      ccr.addMessage(ERR_SASLGSSAPI_CANNOT_CREATE_JAAS_CONFIG.get(getExceptionMessage(ex)));
      clearProperties();
      resultCode = ResultCode.OTHER;
      ccr.setResultCode(ResultCode.OTHER);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
/**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/JMXAlertHandler.java
@@ -25,10 +25,8 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -62,15 +60,10 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.ServerConstants.*;
/**
 * This class provides an implementation of a Directory Server alert handler
 * that will send alerts using JMX notifications.
@@ -83,9 +76,7 @@
{
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  /**
   * The fully-qualified name of this class.
   */
  /** The fully-qualified name of this class. */
  private static final String CLASS_NAME =
       "org.opends.server.extensions.JMXAlertHandler";
@@ -407,8 +398,6 @@
                                        JMXAlertHandlerCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
@@ -1976,7 +1976,7 @@
      {
        exclusiveLock.unlock();
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/LengthBasedPasswordValidator.java
@@ -25,10 +25,8 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.extensions;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.util.Set;
@@ -38,12 +36,10 @@
import org.opends.server.api.PasswordValidator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
/**
 * This class provides a password validator that can ensure that the provided
 * password meets minimum and/or maximum length requirements.
@@ -183,10 +179,7 @@
  public ConfigChangeResult applyConfigurationChange(
              LengthBasedPasswordValidatorCfg configuration)
  {
    // We will always accept the proposed configuration if it's gotten to this
    // point.
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
@@ -334,10 +334,8 @@
  public ConfigChangeResult applyConfigurationChange(
                                 MemberVirtualAttributeCfg configuration)
  {
    // Just accept the new configuration as-is.
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PBKDF2PasswordStorageScheme.java
@@ -138,7 +138,7 @@
      PBKDF2PasswordStorageSchemeCfg configuration)
  {
    this.config = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PKCS11KeyManagerProvider.java
@@ -34,7 +34,6 @@
import java.io.FileReader;
import java.io.IOException;
import java.security.KeyStore;
import java.util.ArrayList;
import java.util.List;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
@@ -53,11 +52,8 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a key manager provider that will access keys stored on a
 * PKCS#11 device.  It will use the Java PKCS#11 interface, which may need to be
@@ -367,10 +363,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 PKCS11KeyManagerProviderCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the PIN needed to access the contents of the keystore file.
    //
@@ -392,9 +385,8 @@
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_PKCS11_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(propertyName, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_PKCS11_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(propertyName, configEntryDN));
      }
      else
      {
@@ -408,9 +400,8 @@
      if (pinStr == null)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_PKCS11_KEYMANAGER_PIN_ENVAR_NOT_SET.get(enVarName, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_PKCS11_KEYMANAGER_PIN_ENVAR_NOT_SET.get(enVarName, configEntryDN));
      }
      else
      {
@@ -424,9 +415,8 @@
      if (!pinFile.exists())
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(ERR_PKCS11_KEYMANAGER_PIN_NO_SUCH_FILE.get(fileName, configEntryDN));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(ERR_PKCS11_KEYMANAGER_PIN_NO_SUCH_FILE.get(fileName, configEntryDN));
      }
      else
      {
@@ -438,8 +428,8 @@
        }
        catch (IOException ioe)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PKCS11_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PKCS11_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
              fileName, configEntryDN, getExceptionMessage(ioe)));
        }
        finally
@@ -449,8 +439,8 @@
        if (pinStr == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PKCS11_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, configEntryDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PKCS11_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, configEntryDN));
        }
        else
        {
@@ -463,14 +453,12 @@
      newPIN = configuration.getKeyStorePin().toCharArray();
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      currentConfig = configuration;
      keyStorePIN   = newPIN;
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ParallelWorkQueue.java
@@ -26,10 +26,9 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.CoreMessages.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -38,21 +37,19 @@
import java.util.concurrent.atomic.AtomicLong;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.ParallelWorkQueueCfg;
import org.opends.server.api.WorkQueue;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.monitors.ParallelWorkQueueMonitor;
import org.opends.server.types.CancelRequest;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.Operation;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class defines a data structure for storing and interacting with the
@@ -488,7 +485,6 @@
  public ConfigChangeResult applyConfigurationChange(
                                 ParallelWorkQueueCfg configuration)
  {
    ArrayList<LocalizableMessage> resultMessages = new ArrayList<LocalizableMessage>();
    int newNumThreads =
        computeNumWorkerThreads(configuration.getNumWorkerThreads());
@@ -526,7 +522,7 @@
        }
      }
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, false, resultMessages);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -26,6 +26,12 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.CoreMessages.*;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.extensions.ExtensionsConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.locks.Lock;
@@ -33,17 +39,18 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.io.ASN1;
import org.forgerock.opendj.io.ASN1Reader;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ByteStringBuilder;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.ExtendedOperationHandlerCfg;
import org.opends.server.admin.std.server.PasswordModifyExtendedOperationHandlerCfg;
import org.opends.server.api.*;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.controls.PasswordPolicyErrorType;
import org.opends.server.controls.PasswordPolicyResponseControl;
import org.opends.server.controls.PasswordPolicyWarningType;
@@ -55,13 +62,6 @@
import org.opends.server.schema.AuthPasswordSyntax;
import org.opends.server.schema.UserPasswordSyntax;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.CoreMessages.*;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.extensions.ExtensionsConstants.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class implements the password modify extended operation defined in RFC
@@ -1246,9 +1246,7 @@
  public ConfigChangeResult applyConfigurationChange(
       PasswordModifyExtendedOperationHandlerCfg config)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    List<LocalizableMessage>     messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Make sure that the specified identity mapper is OK.
@@ -1260,23 +1258,21 @@
      mapper   = DirectoryServer.getIdentityMapper(mapperDN);
      if (mapper == null)
      {
        resultCode = ResultCode.CONSTRAINT_VIOLATION;
        messages.add(ERR_EXTOP_PASSMOD_NO_SUCH_ID_MAPPER.get(mapperDN, config.dn()));
        ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
        ccr.addMessage(ERR_EXTOP_PASSMOD_NO_SUCH_ID_MAPPER.get(mapperDN, config.dn()));
      }
    }
    catch (Exception e)
    {
      logger.traceException(e);
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER.get(config.dn(), getExceptionMessage(e)));
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_EXTOP_PASSMOD_CANNOT_DETERMINE_ID_MAPPER.get(config.dn(), getExceptionMessage(e)));
    }
    // If all of the changes were acceptable, then apply them.
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      if (! identityMapperDN.equals(mapperDN))
      {
@@ -1289,7 +1285,7 @@
    // Save this configuration for future reference.
    currentConfig = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/PlainSASLMechanismHandler.java
@@ -33,7 +33,6 @@
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.Lock;
@@ -53,8 +52,6 @@
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
/**
 * This class provides an implementation of a SASL mechanism that uses
 * plain-text authentication.  It is based on the proposal defined in
@@ -562,18 +559,13 @@
  public ConfigChangeResult applyConfigurationChange(
              PlainSASLMechanismHandlerCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the identity mapper that should be used to find users.
    DN identityMapperDN = configuration.getIdentityMapperDN();
    identityMapper = DirectoryServer.getIdentityMapper(identityMapperDN);
    currentConfig  = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RandomPasswordGenerator.java
@@ -26,7 +26,8 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -35,20 +36,16 @@
import java.util.StringTokenizer;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.PasswordGeneratorCfg;
import org.opends.server.admin.std.server.RandomPasswordGeneratorCfg;
import org.opends.server.api.PasswordGenerator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides an implementation of a Directory Server password
@@ -241,6 +238,7 @@
   * @throws  DirectoryException  If a problem occurs while attempting to
   *                              generate the password.
   */
  @Override
  public ByteString generatePassword(Entry userEntry)
         throws DirectoryException
  {
@@ -276,6 +274,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
      RandomPasswordGeneratorCfg configuration,
      List<LocalizableMessage> unacceptableReasons)
@@ -377,12 +376,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
      RandomPasswordGeneratorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the character sets for use in generating the password.  At least one
@@ -395,12 +393,8 @@
      newEncodedCharacterSets = configuration.getPasswordCharacterSet();
      if (newEncodedCharacterSets.size() == 0)
      {
        messages.add(ERR_RANDOMPWGEN_NO_CHARSETS.get(configEntryDN));
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.OBJECTCLASS_VIOLATION;
        }
        ccr.addMessage(ERR_RANDOMPWGEN_NO_CHARSETS.get(configEntryDN));
        ccr.setResultCodeIfSuccess(ResultCode.OBJECTCLASS_VIOLATION);
      }
      else
      {
@@ -409,12 +403,8 @@
        {
          if (charsets.containsKey(s.getName()))
          {
            messages.add(ERR_RANDOMPWGEN_CHARSET_NAME_CONFLICT.get(configEntryDN, s.getName()));
            if (resultCode == ResultCode.SUCCESS)
            {
              resultCode = ResultCode.CONSTRAINT_VIOLATION;
            }
            ccr.addMessage(ERR_RANDOMPWGEN_CHARSET_NAME_CONFLICT.get(configEntryDN, s.getName()));
            ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
          }
          else
          {
@@ -425,24 +415,15 @@
    }
    catch (ConfigException ce)
    {
      messages.add(ce.getMessageObject());
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
      }
      ccr.addMessage(ce.getMessageObject());
      ccr.setResultCodeIfSuccess(ResultCode.INVALID_ATTRIBUTE_SYNTAX);
    }
    catch (Exception e)
    {
      logger.traceException(e);
      messages.add(ERR_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS.get(
              getExceptionMessage(e)));
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      }
      ccr.addMessage(ERR_RANDOMPWGEN_CANNOT_DETERMINE_CHARSETS.get(getExceptionMessage(e)));
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
    }
@@ -471,12 +452,8 @@
          NamedCharacterSet charset = charsets.get(name);
          if (charset == null)
          {
            messages.add(ERR_RANDOMPWGEN_UNKNOWN_CHARSET.get(newFormatString, name));
            if (resultCode == ResultCode.SUCCESS)
            {
              resultCode = ResultCode.CONSTRAINT_VIOLATION;
            }
            ccr.addMessage(ERR_RANDOMPWGEN_UNKNOWN_CHARSET.get(newFormatString, name));
            ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
          }
          else
          {
@@ -488,12 +465,8 @@
        {
          logger.traceException(e);
          messages.add(ERR_RANDOMPWGEN_INVALID_PWFORMAT.get(newFormatString));
          if (resultCode == ResultCode.SUCCESS)
          {
            resultCode = DirectoryServer.getServerErrorResultCode();
          }
          ccr.addMessage(ERR_RANDOMPWGEN_INVALID_PWFORMAT.get(newFormatString));
          ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
        }
      }
    }
@@ -501,18 +474,13 @@
    {
      logger.traceException(e);
      messages.add(ERR_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT.get(
              getExceptionMessage(e)));
      if (resultCode == ResultCode.SUCCESS)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
      }
      ccr.addMessage(ERR_RANDOMPWGEN_CANNOT_DETERMINE_PWFORMAT.get(getExceptionMessage(e)));
      ccr.setResultCodeIfSuccess(DirectoryServer.getServerErrorResultCode());
    }
    // If everything looks OK, then apply the changes.
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      synchronized (generatorLock)
      {
@@ -532,8 +500,6 @@
      }
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RegularExpressionIdentityMapper.java
@@ -26,6 +26,10 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.protocols.internal.Requests.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -51,12 +55,8 @@
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.protocols.internal.SearchRequest;
import static org.opends.server.protocols.internal.Requests.*;
import org.opends.server.types.*;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
/**
 * This class provides an implementation of a Directory Server identity mapper
 * that uses a regular expression to process the provided ID string, and then
@@ -368,10 +368,7 @@
  public ConfigChangeResult applyConfigurationChange(
              RegularExpressionIdentityMapperCfg configuration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    Pattern newMatchPattern = null;
    try
@@ -380,11 +377,8 @@
    }
    catch (PatternSyntaxException pse)
    {
      LocalizableMessage message = ERR_REGEXMAP_INVALID_MATCH_PATTERN.get(
                      configuration.getMatchPattern(),
                                  pse.getMessage());
      messages.add(message);
      resultCode = ResultCode.CONSTRAINT_VIOLATION;
      ccr.addMessage(ERR_REGEXMAP_INVALID_MATCH_PATTERN.get(configuration.getMatchPattern(), pse.getMessage()));
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
    }
    String newReplacePattern = configuration.getReplacePattern();
@@ -398,7 +392,7 @@
         configuration.getMatchAttribute().toArray(new AttributeType[0]);
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      attributeTypes = newAttributeTypes;
      currentConfig  = configuration;
@@ -406,8 +400,6 @@
      replacePattern = newReplacePattern;
    }
   return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/RepeatedCharactersPasswordValidator.java
@@ -29,7 +29,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -38,7 +37,6 @@
            RepeatedCharactersPasswordValidatorCfg;
import org.opends.server.api.PasswordValidator;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -180,15 +178,9 @@
  public ConfigChangeResult applyConfigurationChange(
                      RepeatedCharactersPasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    // For this password validator, we will always be able to successfully apply
    // the new configuration.
    currentConfig = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAccountStatusNotificationHandler.java
@@ -26,7 +26,8 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.BufferedReader;
import java.io.File;
@@ -39,32 +40,26 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.AccountStatusNotificationHandlerCfg;
import org.opends.server.admin.std.server.
            SMTPAccountStatusNotificationHandlerCfg;
import org.opends.server.admin.std.server.SMTPAccountStatusNotificationHandlerCfg;
import org.opends.server.api.AccountStatusNotificationHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
import org.opends.server.types.AccountStatusNotification;
import org.opends.server.types.AccountStatusNotificationProperty;
import org.opends.server.types.AccountStatusNotificationType;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeType;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.Entry;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.EMailMessage;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides an implementation of an account status notification
 * handler that can send e-mail messages via SMTP to end users and/or
@@ -129,6 +124,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public void initializeStatusNotificationHandler(
                   SMTPAccountStatusNotificationHandlerCfg configuration)
         throws ConfigException, InitializationException
@@ -484,6 +480,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationAcceptable(
                      AccountStatusNotificationHandlerCfg
                           configuration,
@@ -499,6 +496,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public void handleStatusNotification(AccountStatusNotification notification)
  {
    SMTPAccountStatusNotificationHandlerCfg config = currentConfig;
@@ -664,6 +662,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      SMTPAccountStatusNotificationHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -724,9 +723,11 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
              SMTPAccountStatusNotificationHandlerCfg configuration)
  {
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      HashMap<AccountStatusNotificationType,String> subjects =
@@ -738,18 +739,13 @@
      currentConfig = configuration;
      subjectMap    = subjects;
      templateMap   = templates;
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
    }
    catch (ConfigException ce)
    {
      logger.traceException(ce);
      LinkedList<LocalizableMessage> messageList = new LinkedList<LocalizableMessage>();
      messageList.add(ce.getMessageObject());
      return new ConfigChangeResult(ResultCode.UNWILLING_TO_PERFORM, false,
                                    messageList);
      ccr.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
      ccr.addMessage(ce.getMessageObject());
    }
    return ccr;
    }
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SMTPAlertHandler.java
@@ -36,7 +36,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.AlertHandlerCfg;
import org.opends.server.admin.std.server.SMTPAlertHandlerCfg;
@@ -225,8 +224,6 @@
                                 SMTPAlertHandlerCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SimilarityBasedPasswordValidator.java
@@ -33,7 +33,6 @@
import org.opends.server.api.PasswordValidator;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.util.LevenshteinDistance;
import org.opends.server.admin.std.server.SimilarityBasedPasswordValidatorCfg;
@@ -149,7 +148,6 @@
              SimilarityBasedPasswordValidatorCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -27,9 +27,19 @@
 */
package org.opends.server.extensions;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.protocols.internal.Requests.*;
import static org.opends.server.util.StaticUtils.*;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.*;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import javax.security.auth.x500.X500Principal;
@@ -47,12 +57,16 @@
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.protocols.internal.SearchRequest;
import static org.opends.server.protocols.internal.Requests.*;
import org.opends.server.types.*;
import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.util.StaticUtils.*;
import org.opends.server.types.AttributeType;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.Entry;
import org.opends.server.types.IndexType;
import org.opends.server.types.InitializationException;
import org.opends.server.types.RDN;
import org.opends.server.types.SearchFilter;
import org.opends.server.types.SearchResultEntry;
/**
 * This class implements a very simple Directory Server certificate mapper that
@@ -449,9 +463,7 @@
              SubjectAttributeToUserAttributeCertificateMapperCfg
                   configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get and validate the subject attribute to user attribute mappings.
@@ -464,13 +476,10 @@
      int colonPos = lowerMap.indexOf(':');
      if (colonPos <= 0)
      {
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.CONSTRAINT_VIOLATION;
        }
        ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
        messages.add(ERR_SATUACM_INVALID_MAP_FORMAT.get(configEntryDN, mapStr));
        ccr.addMessage(ERR_SATUACM_INVALID_MAP_FORMAT.get(configEntryDN, mapStr));
        break;
      }
@@ -478,13 +487,10 @@
      String userAttrName = lowerMap.substring(colonPos+1).trim();
      if ((certAttrName.length() == 0) || (userAttrName.length() == 0))
      {
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.CONSTRAINT_VIOLATION;
        }
        ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
        messages.add(ERR_SATUACM_INVALID_MAP_FORMAT.get(configEntryDN, mapStr));
        ccr.addMessage(ERR_SATUACM_INVALID_MAP_FORMAT.get(configEntryDN, mapStr));
        break;
      }
@@ -493,13 +499,8 @@
      if (newAttributeMap.containsKey(certAttrName))
      {
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.CONSTRAINT_VIOLATION;
        }
        messages.add(ERR_SATUACM_DUPLICATE_CERT_ATTR.get(configEntryDN, certAttrName));
        ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
        ccr.addMessage(ERR_SATUACM_DUPLICATE_CERT_ATTR.get(configEntryDN, certAttrName));
        break;
      }
@@ -507,13 +508,8 @@
           DirectoryServer.getAttributeType(userAttrName, false);
      if (userAttrType == null)
      {
        if (resultCode == ResultCode.SUCCESS)
        {
          resultCode = ResultCode.CONSTRAINT_VIOLATION;
        }
        messages.add(ERR_SATUACM_NO_SUCH_ATTR.get(mapStr, configEntryDN, userAttrName));
        ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
        ccr.addMessage(ERR_SATUACM_NO_SUCH_ATTR.get(mapStr, configEntryDN, userAttrName));
        break;
      }
@@ -521,13 +517,10 @@
      {
        if (attrType.equals(userAttrType))
        {
          if (resultCode == ResultCode.SUCCESS)
          {
            resultCode = ResultCode.CONSTRAINT_VIOLATION;
          }
          ccr.setResultCodeIfSuccess(ResultCode.CONSTRAINT_VIOLATION);
          messages.add(ERR_SATUACM_DUPLICATE_USER_ATTR.get(configEntryDN, attrType.getNameOrOID()));
          ccr.addMessage(ERR_SATUACM_DUPLICATE_USER_ATTR.get(configEntryDN, attrType.getNameOrOID()));
          break mapLoop;
        }
      }
@@ -552,20 +545,20 @@
        {
          LocalizableMessage message = WARN_SATUACM_ATTR_UNINDEXED.get(
              configuration.dn(), t.getNameOrOID(), b.getBackendID());
          messages.add(message);
          ccr.addMessage(message);
          logger.error(message);
        }
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      attributeMap  = newAttributeMap;
      currentConfig = configuration;
    }
   return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/SubjectDNToUserAttributeCertificateMapper.java
@@ -301,7 +301,7 @@
                   configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
@@ -30,6 +30,7 @@
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.CoreMessages.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
@@ -40,19 +41,19 @@
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.TraditionalWorkQueueCfg;
import org.opends.server.api.WorkQueue;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.monitors.TraditionalWorkQueueMonitor;
import org.opends.server.types.CancelRequest;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
import org.opends.server.types.Operation;
import org.forgerock.opendj.ldap.ResultCode;
@@ -660,7 +661,6 @@
  public ConfigChangeResult applyConfigurationChange(
      TraditionalWorkQueueCfg configuration)
  {
    ArrayList<LocalizableMessage> resultMessages = new ArrayList<LocalizableMessage>();
    int newNumThreads =
        computeNumWorkerThreads(configuration.getNumWorkerThreads());
    int newMaxCapacity = configuration.getMaxWorkQueueCapacity();
@@ -773,7 +773,7 @@
      }
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, false, resultMessages);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/UniqueCharactersPasswordValidator.java
@@ -29,7 +29,6 @@
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -38,7 +37,6 @@
import org.opends.server.admin.std.server.UniqueCharactersPasswordValidatorCfg;
import org.opends.server.api.PasswordValidator;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import static org.opends.messages.ExtensionMessages.*;
import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -170,15 +168,13 @@
  public ConfigChangeResult applyConfigurationChange(
                      UniqueCharactersPasswordValidatorCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // For this password validator, we will always be able to successfully apply
    // the new configuration.
    currentConfig = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
@@ -184,7 +184,7 @@
    // Just accept the new configuration as-is.
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
@@ -29,7 +29,6 @@
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -37,18 +36,18 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageDescriptor.Arg3;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.std.server.LogPublisherCfg;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ServerContext;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.StaticUtils;
/**
@@ -262,10 +261,7 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(C config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    config.addChangeListener((ConfigurationChangeListener) this);
@@ -278,18 +274,18 @@
      catch(ConfigException e)
      {
        LocalizedLogger.getLoggerForThisClass().traceException(e);
        messages.add(e.getMessageObject());
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.addMessage(e.getMessageObject());
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
      catch (Exception e)
      {
        LocalizedLogger.getLoggerForThisClass().traceException(e);
        messages.add(ERR_CONFIG_LOGGER_CANNOT_CREATE_LOGGER.get(
        ccr.addMessage(ERR_CONFIG_LOGGER_CANNOT_CREATE_LOGGER.get(
            config.dn(), stackTraceToSingleLineString(e)));
        resultCode = DirectoryServer.getServerErrorResultCode();
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      }
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private P findLogPublisher(DN dn)
@@ -310,10 +306,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(C config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    P logPublisher = findLogPublisher(config.dn());
    if(logPublisher == null)
@@ -336,7 +329,7 @@
        String className = config.getJavaClass();
        if(!className.equals(logPublisher.getClass().getName()))
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
      }
      else
@@ -346,7 +339,7 @@
      }
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
@@ -365,9 +358,7 @@
  @Override
  public ConfigChangeResult applyConfigurationDelete(C config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final ConfigChangeResult ccr = new ConfigChangeResult();
    P logPublisher = findLogPublisher(config.dn());
    if(logPublisher != null)
@@ -376,10 +367,10 @@
    }
    else
    {
      resultCode = ResultCode.NO_SUCH_OBJECT;
      ccr.setResultCode(ResultCode.NO_SUCH_OBJECT);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
  private boolean isJavaClassAcceptable(C config,
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
@@ -51,7 +51,6 @@
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.*;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.AddressMask;
import org.forgerock.opendj.ldap.ByteString;
@@ -1027,7 +1026,7 @@
      // Rebuild the filter using the new configuration and criteria.
      buildFilters();
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -1065,7 +1064,7 @@
      // Rebuild the filter using the new configuration and criteria.
      buildFilters();
      configuration.addChangeListener(this);
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -1079,7 +1078,7 @@
    {
      // Rebuild the filter using the new configuration and criteria.
      buildFilters();
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -1093,7 +1092,7 @@
    {
      // Rebuild the filter using the new configuration and criteria.
      buildFilters();
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FileNumberRetentionPolicy.java
@@ -38,7 +38,6 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.forgerock.opendj.ldap.ResultCode;
/**
@@ -82,15 +81,9 @@
  public ConfigChangeResult applyConfigurationChange(
      FileCountLogRetentionPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    this.numFiles = config.getNumberOfFiles();
    this.config = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FixedTimeRotationPolicy.java
@@ -25,7 +25,6 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.loggers;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
@@ -35,13 +34,10 @@
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.FixedTimeLogRotationPolicyCfg;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.TimeThread;
/**
 * This class implements a rotation policy based on fixed
 * day/time of day.
 * This class implements a rotation policy based on fixed day/time of day.
 */
public class FixedTimeRotationPolicy implements
    RotationPolicy<FixedTimeLogRotationPolicyCfg>,
@@ -86,10 +82,7 @@
  public ConfigChangeResult applyConfigurationChange(
      FixedTimeLogRotationPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    rotationTimes = new int[config.getTimeOfDay().size()];
@@ -101,7 +94,7 @@
    Arrays.sort(rotationTimes);
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/FreeDiskSpaceRetentionPolicy.java
@@ -41,7 +41,6 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class implements a retention policy based on the free disk space
@@ -88,15 +87,10 @@
  public ConfigChangeResult applyConfigurationChange(
      FreeDiskSpaceLogRetentionPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    this.freeDiskSpace = config.getFreeDiskSpace();
    this.config = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/MultifileTextWriter.java
@@ -27,27 +27,30 @@
package org.opends.server.loggers;
import org.opends.server.api.DirectoryThread;
import org.opends.server.api.ServerShutdownListener;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.FilePermission;
import org.opends.server.admin.std.server.SizeLimitLogRotationPolicyCfg;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.util.TimeThread;
import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
import static org.opends.messages.LoggerMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import java.io.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.Calendar;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.SizeLimitLogRotationPolicyCfg;
import org.opends.server.api.DirectoryThread;
import org.opends.server.api.ServerShutdownListener;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.FilePermission;
import org.opends.server.util.TimeThread;
/**
 * A MultiFileTextWriter is a specialized TextWriter which supports publishing
@@ -349,6 +352,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
      SizeLimitLogRotationPolicyCfg config, List<LocalizableMessage> unacceptableReasons)
  {
@@ -359,6 +363,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
      SizeLimitLogRotationPolicyCfg config)
  {
@@ -390,8 +395,7 @@
    sizeLimit = newSizeLimit;
    return new ConfigChangeResult(ResultCode.SUCCESS, false,
                                  new ArrayList<LocalizableMessage>());
    return new ConfigChangeResult();
  }
  /**
@@ -414,6 +418,7 @@
     * the run method of the rotaterThread. It wakes up periodically and checks
     * whether the file needs to be rotated based on the rotation policy.
     */
    @Override
    public void run()
    {
      while(!isShuttingDown())
@@ -474,6 +479,7 @@
   *
   * @return  The human-readable name for this shutdown listener.
   */
  @Override
  public String getShutdownListenerName()
  {
    return "MultifileTextWriter Thread " + name;
@@ -486,6 +492,7 @@
   *
   * @param  reason  The human-readable reason for the shutdown.
   */
  @Override
  public void processServerShutdown(LocalizableMessage reason)
  {
    stopRequested = true;
@@ -525,6 +532,7 @@
  /**
   * Shutdown the text writer.
   */
  @Override
  public void shutdown()
  {
    processServerShutdown(null);
@@ -546,6 +554,7 @@
   *
   * @param record the log record to write.
   */
  @Override
  public void writeRecord(String record)
  {
    // Assume each character is 1 byte ASCII
@@ -597,6 +606,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public void flush()
  {
    try
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRetentionPolicy.java
@@ -28,7 +28,6 @@
import static org.opends.messages.LoggerMessages.*;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -39,7 +38,6 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class implements a retention policy based on the amount of
@@ -60,6 +58,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public void initializeLogRetentionPolicy(
      SizeLimitLogRetentionPolicyCfg config)
  {
@@ -73,6 +72,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
      SizeLimitLogRetentionPolicyCfg config,
      List<LocalizableMessage> unacceptableReasons)
@@ -84,23 +84,20 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
      SizeLimitLogRetentionPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    this.size = config.getDiskSpaceUsed();
    this.config = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public File[] deleteFiles(FileNamingPolicy fileNamingPolicy)
      throws DirectoryException
  {
@@ -148,6 +145,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return "Size Based Retention Policy " + config.dn().toString();
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/SizeBasedRotationPolicy.java
@@ -32,16 +32,12 @@
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.config.server.ConfigException;
import java.util.List;
import java.util.ArrayList;
/**
 * This class implements a rotation policy based on the size of the
 * file.
 * This class implements a rotation policy based on the size of the file.
 */
public class SizeBasedRotationPolicy implements
    RotationPolicy<SizeLimitLogRotationPolicyCfg>,
@@ -79,16 +75,10 @@
  public ConfigChangeResult applyConfigurationChange(
      SizeLimitLogRotationPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    sizeLimit = config.getFileSizeLimit();
    currentConfig = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
@@ -101,9 +91,7 @@
  public boolean rotateFile(RotatableLogFile writer)
  {
    long fileSize = writer.getBytesWritten();
    return fileSize >= sizeLimit;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
@@ -26,31 +26,30 @@
 */
package org.opends.server.loggers;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.FileBasedAccessLogPublisherCfgDefn.*;
import org.opends.server.admin.std.meta.FileBasedAccessLogPublisherCfgDefn.LogFormat;
import org.opends.server.admin.std.server.FileBasedAccessLogPublisherCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.api.ExtendedOperationHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.*;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.util.TimeThread;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class provides the implementation of the access logger used by the
 * directory server.
@@ -111,10 +110,7 @@
  public ConfigChangeResult applyConfigurationChange(
      final FileBasedAccessLogPublisherCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    final File logFile = getFileForPath(config.getLogFile());
    final FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
@@ -203,7 +199,7 @@
        if ((cfg.isAsynchronous() && config.isAsynchronous())
            && (cfg.getQueueSize() != config.getQueueSize()))
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
        if (!config.getLogRecordTimeFormat().equals(timeStampFormat))
@@ -219,12 +215,12 @@
    }
    catch (final Exception e)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
          config.dn(), stackTraceToSingleLineString(e)));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
@@ -33,7 +33,6 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
@@ -44,7 +43,6 @@
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.Base64;
import org.opends.server.util.StaticUtils;
import org.opends.server.util.TimeThread;
@@ -59,11 +57,8 @@
{
  private TextWriter writer;
  private FileBasedAuditLogPublisherCfg cfg;
  /**
   * {@inheritDoc}
   */
@@ -71,10 +66,7 @@
  public ConfigChangeResult applyConfigurationChange(
      FileBasedAuditLogPublisherCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    File logFile = getFileForPath(config.getLogFile());
    FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
@@ -145,7 +137,7 @@
        if ((cfg.isAsynchronous() && config.isAsynchronous())
            && (cfg.getQueueSize() != config.getQueueSize()))
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
        cfg = config;
@@ -153,12 +145,12 @@
    }
    catch (Exception e)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
          config.dn(), stackTraceToSingleLineString(e)));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
@@ -28,7 +28,6 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -47,7 +46,6 @@
import org.opends.server.types.DirectoryException;
import org.opends.server.types.FilePermission;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.TimeThread;
import static org.opends.messages.ConfigMessages.*;
@@ -235,10 +233,7 @@
  public ConfigChangeResult applyConfigurationChange(
      FileBasedDebugLogPublisherCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    addTraceSettings(null, getDefaultSettings(config));
    DebugLogger.updateTracerSettings();
@@ -310,7 +305,7 @@
        if((currentConfig.isAsynchronous() && config.isAsynchronous()) &&
            (currentConfig.getQueueSize() != config.getQueueSize()))
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
        currentConfig = config;
@@ -318,12 +313,12 @@
    }
    catch(Exception e)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
          config.dn(), stackTraceToSingleLineString(e)));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private TraceSettings getDefaultSettings(FileBasedDebugLogPublisherCfg config)
@@ -363,16 +358,11 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(DebugTargetCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    addTraceSettings(config.getDebugScope(), new TraceSettings(config));
    DebugLogger.updateTracerSettings();
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
@@ -381,16 +371,11 @@
  @Override
  public ConfigChangeResult applyConfigurationDelete(DebugTargetCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    removeTraceSettings(config.getDebugScope());
    DebugLogger.updateTracerSettings();
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -33,7 +33,6 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@@ -42,7 +41,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.messages.Severity;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
@@ -296,9 +294,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(FileBasedErrorLogPublisherCfg config)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    setDefaultSeverities(config.getDefaultSeverity());
@@ -310,8 +306,8 @@
        int equalPos = overrideSeverity.indexOf('=');
        if (equalPos < 0)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(overrideSeverity));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(overrideSeverity));
        } else
        {
          String category = overrideSeverity.substring(0, equalPos);
@@ -348,8 +344,8 @@
          }
          catch(Exception e)
          {
            resultCode = DirectoryServer.getServerErrorResultCode();
            messages.add(WARN_ERROR_LOGGER_INVALID_CATEGORY.get(category));
            ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
            ccr.addMessage(WARN_ERROR_LOGGER_INVALID_CATEGORY.get(category));
          }
        }
      }
@@ -419,7 +415,7 @@
            && config.isAsynchronous()
            && currentConfig.getQueueSize() != config.getQueueSize())
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
        currentConfig = config;
@@ -427,12 +423,12 @@
    }
    catch(Exception e)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
          config.dn(), stackTraceToSingleLineString(e)));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private void setDefaultSeverities(Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs)
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java
@@ -41,10 +41,10 @@
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.util.Utils;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.FileBasedHTTPAccessLogPublisherCfg;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ServerContext;
import org.opends.server.types.ConfigChangeResult;
@@ -52,7 +52,6 @@
import org.opends.server.types.DirectoryException;
import org.opends.server.types.FilePermission;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.TimeThread;
/**
@@ -120,10 +119,7 @@
  public ConfigChangeResult applyConfigurationChange(
      final FileBasedHTTPAccessLogPublisherCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    final File logFile = getFileForPath(config.getLogFile());
    final FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
@@ -216,7 +212,7 @@
        if (cfg.isAsynchronous() && config.isAsynchronous()
            && cfg.getQueueSize() != config.getQueueSize())
        {
          adminActionRequired = true;
          ccr.setAdminActionRequired(true);
        }
        if (!config.getLogRecordTimeFormat().equals(timeStampFormat))
@@ -230,20 +226,20 @@
        LocalizableMessage errorMessage = validateLogFormat(logFormatFields);
        if (errorMessage != null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          adminActionRequired = true;
          messages.add(errorMessage);
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.setAdminActionRequired(true);
          ccr.addMessage(errorMessage);
        }
      }
    }
    catch (final Exception e)
    {
      resultCode = DirectoryServer.getServerErrorResultCode();
      messages.add(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
      ccr.addMessage(ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
          config.dn(), stackTraceToSingleLineString(e)));
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TimeLimitRotationPolicy.java
@@ -31,11 +31,7 @@
import org.opends.server.admin.std.server.TimeLimitLogRotationPolicyCfg;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import java.util.List;
import java.util.ArrayList;
/**
 * This class implements a fixed time based rotation policy.
@@ -67,20 +63,12 @@
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  public ConfigChangeResult applyConfigurationChange(
      TimeLimitLogRotationPolicyCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    timeInterval = config.getRotationInterval();
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return new ConfigChangeResult();
  }
@@ -88,7 +76,7 @@
   * This method indicates if the log file should be
   * rotated or not.
   *
   * @param writer The mutli file text writer written the log file.
   * @param writer The multi file text writer written the log file.
   * @return true if the file should be rotated, false otherwise.
   */
  public boolean rotateFile(RotatableLogFile writer)
@@ -100,4 +88,3 @@
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/loggers/TraceSettings.java
@@ -27,18 +27,15 @@
package org.opends.server.loggers;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.DebugTargetCfg;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
/**
 * This class encapsulates the trace settings in effect at a given traceing
 * scope.
 * This class encapsulates the trace settings in effect at a given tracing scope.
 */
public class TraceSettings implements
    ConfigurationChangeListener<DebugTargetCfg>
@@ -205,11 +202,7 @@
   */
  public ConfigChangeResult applyConfigurationChange(DebugTargetCfg config)
  {
    // Default result code.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages =
        new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // We can assume that the target scope did not change since its the
    // naming attribute. Changing it would result in a modify DN.
@@ -223,7 +216,7 @@
    this.currentConfig = config;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/AttributeCleanupPlugin.java
@@ -131,7 +131,7 @@
      }
      /* Update was successful, no restart required. */
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
    finally
    {
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/ChangeNumberControlPlugin.java
@@ -47,7 +47,6 @@
import org.opends.server.replication.protocol.OperationContext;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.Control;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.PostOperationAddOperation;
import org.opends.server.types.operation.PostOperationDeleteOperation;
import org.opends.server.types.operation.PostOperationModifyDNOperation;
@@ -294,7 +293,7 @@
                                 ChangeNumberControlPluginCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/EntryUUIDPlugin.java
@@ -44,7 +44,6 @@
import org.opends.server.api.plugin.PluginType;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.PreOperationAddOperation;
import static org.opends.messages.PluginMessages.*;
@@ -273,7 +272,7 @@
                                 EntryUUIDPluginCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/LDAPADListPlugin.java
@@ -44,7 +44,6 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryConfig;
import org.opends.server.types.ObjectClass;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.PreParseSearchOperation;
import org.forgerock.i18n.slf4j.LocalizedLogger;
@@ -273,7 +272,7 @@
                                      configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/LastModPlugin.java
@@ -45,7 +45,6 @@
import org.opends.server.api.plugin.PluginType;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.PreOperationAddOperation;
import org.opends.server.types.operation.PreOperationModifyDNOperation;
import org.opends.server.types.operation.PreOperationModifyOperation;
@@ -346,7 +345,7 @@
                                 LastModPluginCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/PasswordPolicyImportPlugin.java
@@ -34,7 +34,6 @@
import static org.opends.server.schema.SchemaConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -693,10 +692,7 @@
  public ConfigChangeResult applyConfigurationChange(
                                 PasswordPolicyImportPluginCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Get the set of default password storage schemes for auth password
    // attributes.
@@ -722,9 +718,8 @@
                  AUTH_PASSWORD_SCHEME_NAME_SALTED_SHA_1);
        if (defaultAuthSchemes[0] == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PLUGIN_PWIMPORT_NO_DEFAULT_AUTH_SCHEMES.get(
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PLUGIN_PWIMPORT_NO_DEFAULT_AUTH_SCHEMES.get(
                  AUTH_PASSWORD_SCHEME_NAME_SALTED_SHA_1));
        }
      }
@@ -739,13 +734,13 @@
             DirectoryServer.getPasswordStorageScheme(schemeDN);
        if (defaultAuthSchemes[i] == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PLUGIN_PWIMPORT_NO_SUCH_DEFAULT_AUTH_SCHEME.get(schemeDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PLUGIN_PWIMPORT_NO_SUCH_DEFAULT_AUTH_SCHEME.get(schemeDN));
        }
        else if (! defaultAuthSchemes[i].supportsAuthPasswordSyntax())
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PLUGIN_PWIMPORT_INVALID_DEFAULT_AUTH_SCHEME.get(schemeDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PLUGIN_PWIMPORT_INVALID_DEFAULT_AUTH_SCHEME.get(schemeDN));
        }
        i++;
      }
@@ -774,9 +769,8 @@
                  toLowerCase(STORAGE_SCHEME_NAME_SALTED_SHA_1));
        if (defaultUserSchemes[0] == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PLUGIN_PWIMPORT_NO_DEFAULT_USER_SCHEMES.get(
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PLUGIN_PWIMPORT_NO_DEFAULT_USER_SCHEMES.get(
                  STORAGE_SCHEME_NAME_SALTED_SHA_1));
        }
      }
@@ -791,20 +785,19 @@
             DirectoryServer.getPasswordStorageScheme(schemeDN);
        if (defaultUserSchemes[i] == null)
        {
          resultCode = DirectoryServer.getServerErrorResultCode();
          messages.add(ERR_PLUGIN_PWIMPORT_INVALID_DEFAULT_USER_SCHEME.get(schemeDN));
          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
          ccr.addMessage(ERR_PLUGIN_PWIMPORT_INVALID_DEFAULT_USER_SCHEME.get(schemeDN));
        }
        i++;
      }
    }
    if (resultCode == ResultCode.SUCCESS)
    if (ccr.getResultCode() == ResultCode.SUCCESS)
    {
      defaultAuthPasswordSchemes = defaultAuthSchemes;
      defaultUserPasswordSchemes = defaultUserSchemes;
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
@@ -27,13 +27,18 @@
 */
package org.opends.server.plugins;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.protocols.internal.Requests.*;
import static org.opends.server.schema.SchemaConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -67,7 +72,6 @@
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.protocols.internal.SearchRequest;
import static org.opends.server.protocols.internal.Requests.*;
import org.opends.server.types.*;
import org.opends.server.types.operation.PostOperationDeleteOperation;
import org.opends.server.types.operation.PostOperationModifyDNOperation;
@@ -75,11 +79,6 @@
import org.opends.server.types.operation.PreOperationModifyOperation;
import org.opends.server.types.operation.SubordinateModifyDNOperation;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.schema.SchemaConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class implements a Directory Server post operation plugin that performs
 * Referential Integrity processing on successful delete and modify DN
@@ -203,9 +202,7 @@
  public ConfigChangeResult applyConfigurationChange(
          ReferentialIntegrityPluginCfg newConfiguration)
  {
    ResultCode         resultCode          = ResultCode.SUCCESS;
    boolean            adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    //Load base DNs from new configuration.
    LinkedHashSet<DN> newConfiguredBaseDNs = new LinkedHashSet<DN>();
@@ -259,10 +256,8 @@
    String newLogFileName=newConfiguration.getLogFile();
    if(logFileName != null && !logFileName.equals(newLogFileName))
    {
      adminActionRequired=true;
      messages.add(
           INFO_PLUGIN_REFERENT_LOGFILE_CHANGE_REQUIRES_RESTART.get(logFileName,
                newLogFileName));
      ccr.setAdminActionRequired(true);
      ccr.addMessage(INFO_PLUGIN_REFERENT_LOGFILE_CHANGE_REQUIRES_RESTART.get(logFileName, newLogFileName));
    }
    //Switch to the new lists.
@@ -274,10 +269,12 @@
    //change. The change might start or stop the background processing thread.
    long newInterval=newConfiguration.getUpdateInterval();
    if(newConfiguration.isEnabled() && newInterval != interval)
      processIntervalChange(newInterval, messages);
    {
      processIntervalChange(newInterval, ccr.getMessages());
    }
    currentConfiguration = newConfiguration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
@@ -528,7 +525,7 @@
  }
  /**
   * Process the specifed new interval value. This processing depends on what
   * Process the specified new interval value. This processing depends on what
   * the current interval value is and new value will be. The values have been
   * checked for equality at this point and are not equal.
   *
@@ -545,10 +542,9 @@
   *
   * @param msgs An array list of messages that thread stop and start messages
   *             can be added to.
   *
   */
  private void processIntervalChange(long newInterval,
                                     ArrayList<LocalizableMessage> msgs) {
  private void processIntervalChange(long newInterval, List<LocalizableMessage> msgs)
  {
    if(interval == 0) {
      DirectoryServer.registerShutdownListener(this);
      interval=newInterval;
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/SambaPasswordPlugin.java
@@ -655,7 +655,7 @@
    // No validation required and no restart required.
    config = newConfig;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/SevenBitCleanPlugin.java
@@ -511,7 +511,7 @@
                                 SevenBitCleanPluginCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/UniqueAttributePlugin.java
@@ -768,7 +768,7 @@
                                 UniqueAttributePluginCfg newConfiguration)
  {
    currentConfiguration = newConfiguration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/plugins/profiler/ProfilerPlugin.java
@@ -25,36 +25,28 @@
 *      Portions Copyright 2014 ForgeRock AS
 */
package org.opends.server.plugins.profiler;
import org.forgerock.i18n.LocalizableMessage;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.PluginCfgDefn;
import org.opends.server.admin.std.server.PluginCfg;
import org.opends.server.admin.std.server.ProfilerPluginCfg;
import org.opends.server.api.plugin.DirectoryServerPlugin;
import org.opends.server.api.plugin.PluginType;
import org.opends.server.api.plugin.PluginResult;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.api.plugin.PluginType;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryConfig;
import org.opends.server.types.DN;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.DirectoryConfig;
import org.opends.server.util.TimeThread;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.PluginMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a Directory Server startup plugin that will register
 * itself as a configurable component that can allow for a simple sample-based
@@ -240,6 +232,7 @@
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isConfigurationChangeAcceptable(
                      ProfilerPluginCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
@@ -289,12 +282,11 @@
   * @return Returns information about the result of changing the
   *         configuration.
   */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 ProfilerPluginCfg configuration)
  {
    ResultCode        resultCode          = ResultCode.SUCCESS;
    boolean           adminActionRequired = false;
    ArrayList<LocalizableMessage> messages            = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    currentConfig = configuration;
@@ -312,11 +304,11 @@
                 new ProfilerThread(configuration.getProfileSampleInterval());
            profilerThread.start();
            messages.add(INFO_PLUGIN_PROFILER_STARTED_PROFILING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_STARTED_PROFILING.get(configEntryDN));
          }
          else
          {
            messages.add(INFO_PLUGIN_PROFILER_ALREADY_PROFILING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_ALREADY_PROFILING.get(configEntryDN));
          }
        }
        break;
@@ -328,13 +320,13 @@
        {
          if (profilerThread == null)
          {
            messages.add(INFO_PLUGIN_PROFILER_NOT_RUNNING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_NOT_RUNNING.get(configEntryDN));
          }
          else
          {
            profilerThread.stopProfiling();
            messages.add(INFO_PLUGIN_PROFILER_STOPPED_PROFILING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_STOPPED_PROFILING.get(configEntryDN));
            String filename =
                 getFileForPath(
@@ -345,16 +337,15 @@
            {
              profilerThread.writeCaptureData(filename);
              messages.add(INFO_PLUGIN_PROFILER_WROTE_PROFILE_DATA.get(configEntryDN, filename));
              ccr.addMessage(INFO_PLUGIN_PROFILER_WROTE_PROFILE_DATA.get(configEntryDN, filename));
            }
            catch (Exception e)
            {
              logger.traceException(e);
              messages.add(ERR_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA.get(configEntryDN, filename,
                      stackTraceToSingleLineString(e)));
              resultCode = DirectoryConfig.getServerErrorResultCode();
              ccr.addMessage(ERR_PLUGIN_PROFILER_CANNOT_WRITE_PROFILE_DATA.get(
                  configEntryDN, filename, stackTraceToSingleLineString(e)));
              ccr.setResultCode(DirectoryConfig.getServerErrorResultCode());
            }
            profilerThread = null;
@@ -369,13 +360,13 @@
        {
          if (profilerThread == null)
          {
            messages.add(INFO_PLUGIN_PROFILER_NOT_RUNNING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_NOT_RUNNING.get(configEntryDN));
          }
          else
          {
            profilerThread.stopProfiling();
            messages.add(INFO_PLUGIN_PROFILER_STOPPED_PROFILING.get(configEntryDN));
            ccr.addMessage(INFO_PLUGIN_PROFILER_STOPPED_PROFILING.get(configEntryDN));
            profilerThread = null;
          }
@@ -383,7 +374,6 @@
        break;
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/LDIFConnectionHandler.java
@@ -54,7 +54,6 @@
import org.opends.server.types.LDIFExportConfig;
import org.opends.server.types.LDIFImportConfig;
import org.opends.server.types.Operation;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.AddChangeRecordEntry;
import org.opends.server.util.ChangeRecordEntry;
import org.opends.server.util.DeleteChangeRecordEntry;
@@ -69,8 +68,6 @@
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines an LDIF connection handler, which can be used to watch for
 * new LDIF files to be placed in a specified directory.  If a new LDIF file is
@@ -82,9 +79,7 @@
       implements ConfigurationChangeListener<LDIFConnectionHandlerCfg>,
                  AlertGenerator
{
  /**
   * The debug log tracer for this class.
   */
  /** The debug log tracer for this class. */
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
@@ -623,7 +618,7 @@
    File newLDIFDirectory = new File(configuration.getLDIFDirectory());
    this.ldifDirectory = newLDIFDirectory;
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/http/HTTPConnectionHandler.java
@@ -26,6 +26,11 @@
 */
package org.opends.server.protocols.http;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
@@ -54,6 +59,8 @@
import org.forgerock.json.resource.Resources;
import org.forgerock.json.resource.Router;
import org.forgerock.json.resource.servlet.HttpServlet;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.opendj.rest2ldap.AuthorizationPolicy;
import org.forgerock.opendj.rest2ldap.Rest2LDAP;
@@ -73,22 +80,15 @@
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
import org.opends.server.admin.std.server.HTTPConnectionHandlerCfg;
import org.opends.server.api.*;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.extensions.NullKeyManagerProvider;
import org.opends.server.extensions.NullTrustManagerProvider;
import org.opends.server.loggers.HTTPAccessLogger;
import org.opends.server.monitors.ClientConnectionMonitorProvider;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.SelectableCertificateKeyManager;
import org.opends.server.util.StaticUtils;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a connection handler that will be used for communicating
 * with clients over HTTP. The connection handler is responsible for
@@ -212,14 +212,12 @@
  public ConfigChangeResult applyConfigurationChange(
      HTTPConnectionHandlerCfg config)
  {
    // Create variables to include in the response.
    boolean adminActionRequired = false;
    List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    if (anyChangeRequiresRestart(config))
    {
      adminActionRequired = true;
      messages.add(ERR_CONNHANDLER_CONFIG_CHANGES_REQUIRE_RESTART.get("HTTP"));
      ccr.setAdminActionRequired(true);
      ccr.addMessage(ERR_CONNHANDLER_CONFIG_CHANGES_REQUIRE_RESTART.get("HTTP"));
    }
    // Reconfigure SSL if needed.
@@ -230,9 +228,9 @@
    catch (DirectoryException e)
    {
      logger.traceException(e);
      messages.add(e.getMessageObject());
      return new ConfigChangeResult(e.getResultCode(), adminActionRequired,
          messages);
      ccr.setResultCode(e.getResultCode());
      ccr.addMessage(e.getMessageObject());
      return ccr;
    }
    if (config.isEnabled() && this.currentConfig.isEnabled() && isListening())
@@ -255,8 +253,7 @@
    this.currentConfig = config;
    this.enabled = this.currentConfig.isEnabled();
    return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
        messages);
    return ccr;
  }
  private boolean anyChangeRequiresRestart(HTTPConnectionHandlerCfg newCfg)
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/jmx/JmxConnectionHandler.java
@@ -26,9 +26,12 @@
 */
package org.opends.server.protocols.jmx;
import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.types.HostPort.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
@@ -36,22 +39,20 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
import org.opends.server.admin.std.server.JMXConnectionHandlerCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.api.ConnectionHandler;
import org.opends.server.api.ServerShutdownListener;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.HostPort;
import org.opends.server.types.InitializationException;
import org.opends.server.util.StaticUtils;
import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.types.HostPort.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class defines a connection handler that will be used for
 * communicating with administrative clients over JMX. The connection
@@ -75,10 +76,6 @@
  public static final String TRUST_MANAGER_ARRAY_KEY =
    "org.opends.server.protocol.jmx.ssl.trust.manager.array";
  /** The fully-qualified name of this class. */
  private static final String CLASS_NAME =
    "org.opends.server.protocols.jmx.JMXConnectionHandler";
  /** The list of active client connection. */
  private final List<ClientConnection> connectionList;
@@ -115,9 +112,7 @@
  @Override
  public ConfigChangeResult applyConfigurationChange(
      JMXConnectionHandlerCfg config) {
    // Create variables to include in the response.
    ResultCode resultCode = ResultCode.SUCCESS;
    final List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Determine whether or not the RMI connection needs restarting.
    boolean rmiConnectorRestart = false;
@@ -166,8 +161,8 @@
      }
      catch (RuntimeException e)
      {
        resultCode = DirectoryServer.getServerErrorResultCode();
        messages.add(LocalizableMessage.raw(e.getMessage()));
        ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
        ccr.addMessage(LocalizableMessage.raw(e.getMessage()));
      }
    }
@@ -181,8 +176,7 @@
      System.setProperty(key, value);
    }
    // Return configuration result.
    return new ConfigChangeResult(resultCode, false, messages);
    return ccr;
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/protocols/ldap/LDAPConnectionHandler.java
@@ -45,13 +45,15 @@
import javax.net.ssl.SSLEngine;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.AddressMask;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
import org.opends.server.admin.std.server.LDAPConnectionHandlerCfg;
import org.opends.server.api.*;
import org.opends.server.api.plugin.PluginResult;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.PluginConfigManager;
import org.opends.server.core.QueueingStrategy;
@@ -59,10 +61,8 @@
import org.opends.server.extensions.NullKeyManagerProvider;
import org.opends.server.extensions.NullTrustManagerProvider;
import org.opends.server.extensions.TLSByteChannel;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.monitors.ClientConnectionMonitorProvider;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.SelectableCertificateKeyManager;
import org.opends.server.util.StaticUtils;
@@ -306,10 +306,7 @@
  public ConfigChangeResult applyConfigurationChange(
      LDAPConnectionHandlerCfg config)
  {
    // Create variables to include in the response.
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Note that the following properties cannot be modified:
    //
@@ -344,9 +341,9 @@
    catch (DirectoryException e)
    {
      logger.traceException(e);
      messages.add(e.getMessageObject());
      return new ConfigChangeResult(e.getResultCode(), adminActionRequired,
          messages);
      ccr.setResultCode(e.getResultCode());
      ccr.addMessage(e.getMessageObject());
      return ccr;
    }
    if (config.isAllowLDAPV2())
@@ -358,7 +355,7 @@
      DirectoryServer.deregisterSupportedLDAPVersion(2, this);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  private void configureSSL(LDAPConnectionHandlerCfg config)
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ExternalChangelogDomain.java
@@ -83,7 +83,7 @@
    domain.setEclIncludes(domain.getServerId(),
        configuration.getECLInclude(),
        configuration.getECLIncludeForDeletes());
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
@@ -107,7 +107,7 @@
    this.isEnabled = configuration.isEnabled();
    domain.changeConfig(configuration.getECLInclude(),
        configuration.getECLIncludeForDeletes());
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  private ConfigChangeResult setDomain(ExternalChangelogDomainCfg configuration)
@@ -124,7 +124,9 @@
    }
    catch (Exception e)
    {
      return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false);
      final ConfigChangeResult ccr = new ConfigChangeResult();
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
      return ccr;
    }
  }
@@ -162,8 +164,7 @@
  public ConfigChangeResult applyConfigurationDelete(
      ExternalChangelogDomainCfg configuration)
  {
    // nothing to do
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java
@@ -41,7 +41,6 @@
import org.opends.server.replication.plugin.LDAPReplicationDomain.*;
import org.opends.server.types.*;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.replication.plugin.LDAPReplicationDomain.*;
@@ -499,6 +498,6 @@
  public ConfigChangeResult applyConfigurationChange(
    FractionalLDIFImportPluginCfg configuration)
  {
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -26,6 +26,17 @@
 */
package org.opends.server.replication.plugin;
import static org.forgerock.opendj.ldap.ResultCode.*;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.protocols.internal.Requests.*;
import static org.opends.server.replication.plugin.EntryHistorical.*;
import static org.opends.server.replication.protocol.OperationContext.*;
import static org.opends.server.replication.service.ReplicationMonitor.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
@@ -91,17 +102,6 @@
import org.opends.server.util.TimeThread;
import org.opends.server.workflowelement.localbackend.LocalBackendModifyOperation;
import static org.forgerock.opendj.ldap.ResultCode.*;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.protocols.internal.Requests.*;
import static org.opends.server.replication.plugin.EntryHistorical.*;
import static org.opends.server.replication.protocol.OperationContext.*;
import static org.opends.server.replication.service.ReplicationMonitor.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 *  This class implements the bulk part of the Directory Server side
 *  of the replication code.
@@ -3850,16 +3850,16 @@
    solveConflictFlag = isSolveConflict(configuration);
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      storeECLConfiguration(configuration);
    }
    catch(Exception e)
    {
      return new ConfigChangeResult(ResultCode.OTHER, false);
      ccr.setResultCode(ResultCode.OTHER);
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return ccr;
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
@@ -26,6 +26,11 @@
 */
package org.opends.server.replication.plugin;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.replication.plugin.ReplicationRepairRequestControl.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
@@ -77,11 +82,6 @@
import org.opends.server.types.operation.PreOperationModifyDNOperation;
import org.opends.server.types.operation.PreOperationModifyOperation;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.replication.plugin.ReplicationRepairRequestControl.*;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * This class is used to load the Replication code inside the JVM
 * and to trigger initialization of the replication.
@@ -126,7 +126,7 @@
  private static int replayThreadNumber = 10;
  /**
   * enum that symbolizes the state of the multimaster replication.
   * Enum that symbolizes the state of the multimaster replication.
   */
  private static enum State
  {
@@ -375,6 +375,7 @@
  public ConfigChangeResult applyConfigurationAdd(
     ReplicationDomainCfg configuration)
  {
    ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      LDAPReplicationDomain rd = createNewDomain(configuration);
@@ -385,13 +386,13 @@
          rd.shutdown();
        }
      }
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
    } catch (ConfigException e)
    {
      // we should never get to this point because the configEntry has
      // already been validated in isConfigurationAddAcceptable()
      return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false);
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
    }
    return ccr;
  }
  /** {@inheritDoc} */
@@ -753,7 +754,7 @@
  {
    deleteDomain(configuration.getBaseDN());
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /** {@inheritDoc} */
@@ -815,7 +816,7 @@
    connectionTimeoutMS = (int) Math.min(configuration.getConnectionTimeout(),
        Integer.MAX_VALUE);
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /** {@inheritDoc} */
@@ -896,14 +897,20 @@
      }
    }
    // if state is STOPPING, then we need to return from this method
    final LDAPReplicationDomain domain = getDomain(baseDN);
    return domain != null && domain.isECLEnabled();
  }
  private static LDAPReplicationDomain getDomain(DN baseDN)
  {
    for (LDAPReplicationDomain domain : domains.values())
    {
      if (domain.isECLEnabled() && domain.getBaseDN().equals(baseDN))
      if (domain.getBaseDN().equals(baseDN))
      {
        return true;
        return domain;
      }
    }
    return false;
    return null;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/ReplicationServerListener.java
@@ -31,7 +31,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.std.server.ReplicationServerCfg;
@@ -82,17 +81,18 @@
  @Override
  public ConfigChangeResult applyConfigurationAdd(ReplicationServerCfg cfg)
  {
    final ConfigChangeResult ccr = new ConfigChangeResult();
    try
    {
      replicationServer = new ReplicationServer(cfg, dsrsShutdownSync);
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
    }
    catch (ConfigException e)
    {
      // we should never get to this point because the configEntry has
      // already been validated in configAddisAcceptable
      return new ConfigChangeResult(ResultCode.CONSTRAINT_VIOLATION, false);
      ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
    }
    return ccr;
  }
  /** {@inheritDoc} */
@@ -124,7 +124,7 @@
    {
      replicationServer.remove();
    }
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
  /** {@inheritDoc} */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -26,6 +26,10 @@
 */
package org.opends.server.replication.server;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.util.StaticUtils.*;
import java.io.IOException;
import java.net.*;
import java.util.*;
@@ -60,10 +64,6 @@
import org.opends.server.replication.service.DSRSShutdownSync;
import org.opends.server.types.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.util.StaticUtils.*;
/**
 * ReplicationServer Listener. This singleton is the main object of the
 * replication server. It waits for the incoming connections and create listener
@@ -869,12 +869,10 @@
  public ConfigChangeResult applyConfigurationChange(
      ReplicationServerCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    final ConfigChangeResult ccr = new ConfigChangeResult();
    // Some of those properties change don't need specific code.
    // They will be applied for next connections. Some others have immediate
    // effect
    // They will be applied for next connections. Some others have immediate effect
    final Set<HostPort> oldRSAddresses = getConfiguredRSAddresses();
    final ReplicationServerCfg oldConfig = this.config;
@@ -897,7 +895,7 @@
      catch (ChangelogException e)
      {
        logger.traceException(e);
        resultCode = ResultCode.OPERATIONS_ERROR;
        ccr.setResultCode(ResultCode.OPERATIONS_ERROR);
      }
    }
@@ -962,9 +960,9 @@
    final String newDir = config.getReplicationDBDirectory();
    if (newDir != null && !newDir.equals(oldConfig.getReplicationDBDirectory()))
    {
      adminActionRequired = true;
      ccr.setAdminActionRequired(true);
    }
    return new ConfigChangeResult(resultCode, adminActionRequired);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
@@ -1491,7 +1491,7 @@
    currentConfig = configuration;
    stripMinimumUpperBound = configuration.isStripSyntaxMinUpperBound();
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
@@ -1508,7 +1508,7 @@
  /**
   * Boolean that indicates that the minimum upper bound value should be
   * stripped from the Attrbute Type Syntax Description.
   * stripped from the Attribute Type Syntax Description.
   *
   * @return True if the minimum upper bound value should be stripped.
   */
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
@@ -41,8 +41,6 @@
import org.opends.server.core.DirectoryServer;
import org.forgerock.opendj.ldap.ByteSequence;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.io.ASN1;
import org.forgerock.opendj.ldap.DecodeException;
import org.forgerock.opendj.io.ASN1Reader;
@@ -148,7 +146,7 @@
      CertificateAttributeSyntaxCfg configuration)
  {
    this.config = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java
@@ -26,7 +26,6 @@
 */
package org.opends.server.schema;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -40,7 +39,6 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.CoreSchema;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.schema.Schema;
@@ -192,9 +190,7 @@
  public ConfigChangeResult applyConfigurationChange(
      CollationMatchingRuleCfg configuration)
  {
    ResultCode resultCode = ResultCode.SUCCESS;
    boolean adminActionRequired = false;
    ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
    final ConfigChangeResult ccr = new ConfigChangeResult();
    if (!configuration.isEnabled()
        || currentConfig.isEnabled() != configuration.isEnabled())
@@ -204,7 +200,7 @@
      // 2. There is a change in the enable status
      // i.e. (disable->enable or enable->disable). In this case, the
      // ConfigManager will have already created the new Factory object.
      return new ConfigChangeResult(resultCode, adminActionRequired, messages);
      return ccr;
    }
    // Since we have come here it means that this Factory is enabled and
@@ -239,11 +235,11 @@
    {
      LocalizableMessage message =
          WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR.get(configuration.dn(), de.getMessageObject());
      adminActionRequired = true;
      messages.add(message);
      ccr.setAdminActionRequired(true);
      ccr.addMessage(message);
    }
    currentConfig = configuration;
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
    return ccr;
  }
  /**
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java
@@ -39,16 +39,12 @@
import org.opends.server.core.DirectoryServer;
import org.forgerock.opendj.ldap.ByteSequence;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.SchemaMessages.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import static org.opends.server.schema.PrintableString.*;
import static org.opends.server.schema.SchemaConstants.*;
/**
 * This class defines the country string attribute syntax, which should be a
 * two-character ISO 3166 country code.  However, for maintainability, it will
@@ -156,7 +152,7 @@
      CountryStringAttributeSyntaxCfg configuration)
  {
    this.config = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java
@@ -32,7 +32,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.DirectoryStringAttributeSyntaxCfg;
import org.forgerock.opendj.ldap.schema.MatchingRule;
@@ -330,7 +329,7 @@
    currentConfig = configuration;
    allowZeroLengthValues = configuration.isAllowZeroLengthValues();
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java
@@ -40,9 +40,6 @@
import org.opends.server.core.DirectoryServer;
import org.forgerock.opendj.ldap.ByteSequence;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.SchemaMessages.*;
import org.forgerock.i18n.LocalizableMessage;
@@ -290,7 +287,7 @@
              JPEGAttributeSyntaxCfg configuration)
  {
    this.config = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
@@ -41,7 +41,6 @@
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.ByteSequence;
import static org.opends.messages.SchemaMessages.*;
@@ -372,7 +371,7 @@
    currentConfig = configuration;
    strictMode = configuration.isStrictFormat();
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/ConfigChangeResult.java
@@ -66,20 +66,6 @@
  }
  /**
   * Creates a new config change result object with the provided information.
   *
   * @param  resultCode           The result code for this config change result.
   * @param  adminActionRequired  Indicates whether administrative
   *                              action is required for one or more
   *                              of the changes to take effect.
   */
  public ConfigChangeResult(ResultCode resultCode,
                            boolean adminActionRequired)
  {
    this(resultCode, adminActionRequired, new ArrayList<LocalizableMessage>());
  }
  /**
   * Creates a new config change result object with the provided
   * information.
   *
@@ -111,13 +97,10 @@
    return resultCode;
  }
  /**
   * Specifies the result code for this config change result.
   *
   * @param  resultCode  The result code for this config change
   *                     result.
   * @param  resultCode  The result code for this config change result.
   */
  public void setResultCode(ResultCode resultCode)
  {
@@ -125,6 +108,21 @@
  }
  /**
   * Sets the provided result code for this config change result if the current result code is
   * success.
   *
   * @param newResultCode
   *          The new result code for this config change result.
   */
  public void setResultCodeIfSuccess(ResultCode newResultCode)
  {
    if (getResultCode() == ResultCode.SUCCESS)
    {
      setResultCode(newResultCode);
    }
  }
  /**
   * Indicates whether administrative action is required before one or
   * more of the changes will take effect.
   *
@@ -143,8 +141,7 @@
   *
   * @param  adminActionRequired  Specifies whether administrative
   *                              action is required before one or
   *                              more of the changes will take
   *                              effect.
   *                              more of the changes will take effect.
   */
  public void setAdminActionRequired(boolean adminActionRequired)
  {
opendj-sdk/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPClassLoaderProvider.java
@@ -47,7 +47,6 @@
import org.opends.server.admin.std.server.SNMPConnectionHandlerCfg;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.util.StaticUtils;
import org.forgerock.util.Reject;
@@ -178,11 +177,8 @@
            logger.traceException(ex);
        }
        // Check if the security file
        // If security file have changed, changeConfiguration not
        // Supported.
        return new ConfigChangeResult(ResultCode.SUCCESS, false);
        // If security file have changed, changeConfiguration not supported.
        return new ConfigChangeResult();
    }
    /**
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationServerTest.java
@@ -48,7 +48,6 @@
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.forgerock.opendj.ldap.ResultCode;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
@@ -73,7 +72,7 @@
    @Override
    public ConfigChangeResult applyConfigurationChange(
        TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -103,7 +102,7 @@
    @Override
    public ConfigChangeResult applyConfigurationDelete(
        TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/ConstraintTest.java
@@ -72,7 +72,7 @@
    /** {@inheritDoc} */
    @Override
    public ConfigChangeResult applyConfigurationAdd(TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -98,7 +98,7 @@
    @Override
    public ConfigChangeResult applyConfigurationDelete(
        TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -124,7 +124,7 @@
    @Override
    public ConfigChangeResult applyConfigurationChange(
        TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/admin/server/DefaultBehaviorTest.java
@@ -45,14 +45,11 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.forgerock.opendj.ldap.ResultCode;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
 * Test cases for default behavior on the server-side.
 */
@@ -82,7 +79,7 @@
     * {@inheritDoc}
     */
    public ConfigChangeResult applyConfigurationAdd(TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
      return new ConfigChangeResult();
    }
@@ -139,9 +136,8 @@
    /**
     * {@inheritDoc}
     */
    public ConfigChangeResult applyConfigurationChange(
        TestChildCfg configuration) {
      return new ConfigChangeResult(ResultCode.SUCCESS, false);
    public ConfigChangeResult applyConfigurationChange(TestChildCfg configuration) {
      return new ConfigChangeResult();
    }
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DummyAlertHandler.java
@@ -26,21 +26,17 @@
 */
package org.opends.server.extensions;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.AlertHandlerCfg;
import org.opends.server.api.AlertGenerator;
import org.opends.server.api.AlertHandler;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.InitializationException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.i18n.LocalizableMessage;
/**
 * This class implements a Directory Server alert handler that only provides a
@@ -50,28 +46,21 @@
       implements AlertHandler<AlertHandlerCfg>,
                  ConfigurationChangeListener<AlertHandlerCfg>
{
  // The current configuration for this alert handler.
  /** The current configuration for this alert handler. */
  private AlertHandlerCfg currentConfig;
  // The number of times this alert handler has been invoked.
  /** The number of times this alert handler has been invoked. */
  private static AtomicInteger alertCount = new AtomicInteger(0);
  /**
   * Creates a new instance of this SMTP alert handler.
   */
  /** Creates a new instance of this SMTP alert handler. */
  public DummyAlertHandler()
  {
    super();
    // All initialization should be done in the initializeAlertHandler method.
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void initializeAlertHandler(AlertHandlerCfg configuration)
       throws ConfigException, InitializationException
  {
@@ -79,50 +68,36 @@
    currentConfig = configuration;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public AlertHandlerCfg getAlertHandlerConfiguration()
  {
    return currentConfig;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationAcceptable(AlertHandlerCfg configuration,
                                           List<LocalizableMessage> unacceptableReasons)
  {
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void finalizeAlertHandler()
  {
    // No action is required.
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public void sendAlertNotification(AlertGenerator generator, String alertType,
                                    LocalizableMessage alertMessage)
  {
    alertCount.incrementAndGet();
  }
  /**
   * Retrieves the number of times that this alert handler has been invoked.
   *
@@ -133,28 +108,20 @@
    return alertCount.get();
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public boolean isConfigurationChangeAcceptable(AlertHandlerCfg configuration,
                      List<LocalizableMessage> unacceptableReasons)
  {
    return true;
  }
  /**
   * {@inheritDoc}
   */
  /** {@inheritDoc} */
  @Override
  public ConfigChangeResult applyConfigurationChange(
                                 AlertHandlerCfg configuration)
  {
    currentConfig = configuration;
    return new ConfigChangeResult(ResultCode.SUCCESS, false);
    return new ConfigChangeResult();
  }
}