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