From 5faf552c080a4537085878bb38a2d83a2cf160f5 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Wed, 26 Nov 2014 11:05:12 +0000
Subject: [PATCH] [OPENDJ-1478] CR-5392 Make it easier to add compatibility options to schemas

---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java                                 |   10 ++++++++--
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java |   11 ++++++-----
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java                                |   17 ++++++++---------
 3 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java
index 35bc87c..936af7d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CoreSchemaProvider.java
+++ b/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.)
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
index f557369..f992c79 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
+++ b/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'"
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java
index 4117844..f543d9a 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CoreSchemaProviderTestCase.java
+++ b/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

--
Gitblit v1.10.0