From ec6fcea7eb3b1013db8b26ff65327d3ab24077c9 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 09 Sep 2016 09:45:26 +0000
Subject: [PATCH] OPENDJ-3089 Several minor fixes from the PR
---
opendj-server-legacy/src/main/java/org/opends/server/util/SchemaUtils.java | 51 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 45 insertions(+), 6 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/SchemaUtils.java b/opendj-server-legacy/src/main/java/org/opends/server/util/SchemaUtils.java
index 650808d..18289c4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/SchemaUtils.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/SchemaUtils.java
@@ -15,11 +15,15 @@
*/
package org.opends.server.util;
+import static org.opends.messages.ConfigMessages.ERR_CONFIG_SCHEMA_CANNOT_LIST_FILES;
+import static org.opends.server.util.StaticUtils.getExceptionMessage;
import static org.opends.messages.SchemaMessages.*;
import static org.opends.server.util.ServerConstants.SCHEMA_PROPERTY_FILENAME;
import static org.opends.server.schema.SchemaConstants.SYNTAX_AUTH_PASSWORD_OID;
import static org.opends.server.schema.SchemaConstants.SYNTAX_USER_PASSWORD_OID;
+import java.io.File;
+import java.io.FilenameFilter;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -36,7 +40,9 @@
import org.forgerock.opendj.ldap.schema.SchemaElement;
import org.opends.server.core.ServerContext;
import org.opends.server.types.DirectoryException;
+import org.opends.server.types.InitializationException;
+import com.forgerock.opendj.util.OperatingSystem;
import com.forgerock.opendj.util.SubstringReader;
/** Utility methods related to schema. */
@@ -59,6 +65,19 @@
NOT_A_PASSWORD
}
+ /** A file filter implementation that accepts only LDIF files. */
+ public static class SchemaFileFilter implements FilenameFilter
+ {
+ private static final String LDIF_SUFFIX = ".ldif";
+
+ @Override
+ public boolean accept(File directory, String filename)
+ {
+ return OperatingSystem.isWindows() ?
+ filename.toLowerCase().endsWith(LDIF_SUFFIX) : filename.endsWith(LDIF_SUFFIX);
+ }
+ }
+
/**
* Checks if the provided attribute type contains a password.
*
@@ -212,6 +231,28 @@
}
/**
+ * Returns the list of schema files contained in the provided schema directory.
+ *
+ * @param schemaDirectory
+ * The directory containing schema files
+ * @return the schema files
+ * @throws InitializationException
+ * If the files can't be retrieved
+ */
+ public static File[] getSchemaFiles(File schemaDirectory) throws InitializationException
+ {
+ try
+ {
+ return schemaDirectory.listFiles(new SchemaUtils.SchemaFileFilter());
+ }
+ catch (Exception e)
+ {
+ throw new InitializationException(
+ ERR_CONFIG_SCHEMA_CANNOT_LIST_FILES.get(schemaDirectory, getExceptionMessage(e)), e);
+ }
+ }
+
+ /**
* Adds the provided schema file to the provided schema element definition.
*
* @param definition
@@ -286,9 +327,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- // TODO : write the correct message = Error when trying to parse the schema file from a schema
- // element definition
- throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, LocalizableMessage.raw(""));
+ throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
+ LocalizableMessage.raw("Error when trying to parse the schema file from a schema element definition"));
}
}
@@ -417,9 +457,8 @@
* @return the OID corresponding to the definition
* @throws DirectoryException
* If the parsing of the definition fails
- *
- * */
- public static String parseOID(String definition, Arg1<Object> parsingErrorMsg) throws DirectoryException
+ */
+ private static String parseOID(String definition, Arg1<Object> parsingErrorMsg) throws DirectoryException
{
try
{
--
Gitblit v1.10.0