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

Gaetan Boismal
26.05.2014 5faf552c080a4537085878bb38a2d83a2cf160f5
[OPENDJ-1478] CR-5392 Make it easier to add compatibility options to schemas
3 files modified
38 ■■■■■ changed files
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java 10 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java 17 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java 11 ●●●● patch | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java
@@ -30,13 +30,15 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.config.server.ConfigurationChangeListener;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.schema.SchemaBuilder;
import org.forgerock.opendj.server.config.server.CoreSchemaCfg;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.types.InitializationException;
import static org.forgerock.opendj.ldap.schema.SchemaOptions.*;
/**
 * Provides the core schema, which includes core matching rules and syntaxes.
 */
@@ -78,7 +80,11 @@
   */
  private void updateSchemaFromConfiguration(final SchemaBuilder schemaBuilder, final CoreSchemaCfg configuration)
  {
    schemaBuilder.allowZeroLengthDirectoryStrings(configuration.isAllowZeroLengthValuesDirectoryString());
    schemaBuilder
      .setOption(ALLOW_ZERO_LENGTH_DIRECTORY_STRINGS, configuration.isAllowZeroLengthValuesDirectoryString())
      .setOption(STRICT_FORMAT_FOR_COUNTRY_STRINGS, configuration.isStrictFormatCountryString())
      .setOption(STRIP_UPPER_BOUND_FOR_ATTRIBUTE_TYPE,
          configuration.isStripSyntaxMinUpperBoundAttributeTypeDescription());
    // TODO : add the missing methods in schema builder for those properties
    // schemaBuilder.allowMalformedJPEGPhotos(configuration.)
    // schemaBuilder.allowMalformedNamesAndOptions(configuration.)
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
@@ -50,11 +50,11 @@
import org.opends.server.util.ChangeOperationType;
import org.opends.server.util.StaticUtils;
import static org.opends.messages.ConfigMessages.INFO_CONFIG_FILE_HEADER;
import static org.opends.messages.ToolMessages.ERR_UPGRADE_CORRUPTED_TEMPLATE;
import static org.opends.messages.ToolMessages.ERR_UPGRADE_UNKNOWN_OC_ATT;
import static org.opends.server.tools.upgrade.FileManager.deleteRecursively;
import static org.opends.server.tools.upgrade.FileManager.rename;
import static org.forgerock.opendj.ldap.schema.CoreSchema.*;
import static org.forgerock.opendj.ldap.schema.SchemaOptions.*;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.tools.upgrade.FileManager.*;
import static org.opends.server.tools.upgrade.Installation.*;
import static org.opends.server.util.ChangeOperationType.*;
@@ -825,10 +825,9 @@
   * @return A schema which may used in the upgrade context.
   */
  final static Schema getUpgradeSchema() {
    final SchemaBuilder sb =
        new SchemaBuilder(Schema.getCoreSchema())
        .defaultMatchingRule(CoreSchema.getCaseExactMatchingRule())
        .defaultSyntax(CoreSchema.getDirectoryStringSyntax());
    final SchemaBuilder sb = new SchemaBuilder(Schema.getCoreSchema())
        .setOption(DEFAULT_MATCHING_RULE_OID, getCaseExactMatchingRule().getOID())
        .setOption(DEFAULT_SYNTAX_OID, getDirectoryStringSyntax().getOID());
    // Adds ds-cfg-enabled / boolean syntax
    sb.addAttributeType("( 1.3.6.1.4.1.26027.1.1.2 NAME 'ds-cfg-enabled'"
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java
@@ -25,10 +25,6 @@
 */
package org.opends.server.schema;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import static org.opends.server.TestCaseUtils.*;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.schema.SchemaBuilder;
import org.forgerock.opendj.server.config.server.CoreSchemaCfg;
@@ -36,6 +32,11 @@
import org.opends.server.core.CoreTestCase;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.*;
import static org.forgerock.opendj.ldap.schema.SchemaOptions.*;
import static org.mockito.Mockito.*;
import static org.opends.server.TestCaseUtils.*;
@SuppressWarnings("javadoc")
public class CoreSchemaProviderTestCase extends CoreTestCase
{
@@ -63,7 +64,7 @@
    CoreSchemaProvider provider = new CoreSchemaProvider();
    provider.initialize(coreSchemaCfg, schemaBuilder, mock(SchemaUpdater.class));
    assertThat(schemaBuilder.toSchema().allowZeroLengthDirectoryStrings()).isTrue();
    assertThat(schemaBuilder.toSchema().getOption(ALLOW_ZERO_LENGTH_DIRECTORY_STRINGS)).isTrue();
  }
  @Test