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

Jean-Noël Rouvignac
28.43.2016 ef1b8f111ca1931d63fedf977498da7f5188f7e9
SchemaConfigManager.java: overwrite any X-SCHEMA-FILE read from file
1 files modified
50 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java 50 ●●●●● patch | view | raw | blame | history
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
  {