From ef1b8f111ca1931d63fedf977498da7f5188f7e9 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 28 Jun 2016 09:43:32 +0000
Subject: [PATCH] SchemaConfigManager.java: overwrite any X-SCHEMA-FILE read from file
---
opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java | 50 +++++++++++++++++++++++++++++---------------------
1 files changed, 29 insertions(+), 21 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
index a47679c..65c996f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
@@ -328,6 +328,19 @@
return Collections.emptyList();
}
+ private static List<Modification> createAddModifications(Entry entry, AttributeType... attrTypes)
+ {
+ List<Modification> mods = new ArrayList<>(entry.getAttributeCount());
+ for (AttributeType attrType : attrTypes)
+ {
+ for (Attribute a : entry.getAllAttributes(AttributeDescription.create(attrType)))
+ {
+ mods.add(new Modification(ModificationType.ADD, Converters.toAttribute(a)));
+ }
+ }
+ return mods;
+ }
+
/**
* Loads the contents of the specified schema file into the provided schema.
*
@@ -460,54 +473,49 @@
return builder.addSchema(schemaEntry, overwrite, new SchemaBuilderHook() {
@Override
public void beforeAddSyntax(Syntax.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddObjectClass(ObjectClass.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddNameForm(NameForm.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddMatchingRuleUse(MatchingRuleUse.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddMatchingRule(MatchingRule.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddDitStructureRule(DITStructureRule.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddDitContentRule(DITContentRule.Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
@Override
public void beforeAddAttribute(Builder builder) {
- builder.extraProperties(SCHEMA_PROPERTY_FILENAME, Collections.singletonList(schemaFile));
+ builder.removeExtraProperty(SCHEMA_PROPERTY_FILENAME)
+ .extraProperties(SCHEMA_PROPERTY_FILENAME, schemaFile);
}
}).toSchema();
}
});
}
- private static List<Modification> createAddModifications(Entry entry, AttributeType... attrTypes)
- {
- List<Modification> mods = new ArrayList<>(entry.getAttributeCount());
- for (AttributeType attrType : attrTypes)
- {
- for (Attribute a : entry.getAllAttributes(AttributeDescription.create(attrType)))
- {
- mods.add(new Modification(ModificationType.ADD, Converters.toAttribute(a)));
- }
- }
- return mods;
- }
-
private static void reportError(boolean failOnError, Exception e,
LocalizableMessage message) throws ConfigException
{
--
Gitblit v1.10.0