From b430878cf353d7dec499f98c58aa7d91c8266265 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Thu, 10 Mar 2016 15:49:16 +0000
Subject: [PATCH] OPENDJ-2754 Add wrapColumn option to makeldif
---
opendj-sdk/opendj-ldap-toolkit/src/test/resources/expected_output_80_column.ldif | 14 ++++
opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java | 45 +++++++++++----
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java | 10 +++
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties | 5 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties | 20 ++++++
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties | 20 ++++++
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties | 3 +
opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties | 5 +
13 files changed, 135 insertions(+), 12 deletions(-)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
index 93ae75e..a150056 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
@@ -20,6 +20,7 @@
import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.cli.Utils.filterExitCode;
+import static com.forgerock.opendj.ldap.tools.ToolsMessages.INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER;
import static org.forgerock.util.Utils.closeSilently;
import java.io.BufferedWriter;
@@ -80,6 +81,7 @@
StringArgument ldifFile;
StringArgument resourcePath;
StringArgument constants;
+ IntegerArgument wrapColumn;
try {
resourcePath =
StringArgument.builder(OPTION_LONG_RESOURCE_PATH)
@@ -114,6 +116,15 @@
.description(INFO_MAKELDIF_DESCRIPTION_HELP.get())
.buildAndAddToParser(argParser);
+ wrapColumn =
+ IntegerArgument.builder("wrapColumn")
+ .shortIdentifier('w')
+ .description(INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN.get())
+ .lowerBound(0)
+ .defaultValue(0)
+ .valuePlaceholder(INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER.get())
+ .buildAndAddToParser(argParser);
+
argParser.setUsageArgument(showUsage, getOutputStream());
} catch (ArgumentException ae) {
errPrintln(ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage()));
@@ -132,12 +143,12 @@
return 0;
}
final String templatePath = argParser.getTrailingArguments().get(0);
- return run(templatePath, resourcePath, ldifFile, randomSeed, constants);
+ return run(templatePath, resourcePath, ldifFile, randomSeed, constants, wrapColumn);
}
/** Run Make LDIF with provided arguments. */
- private int run(final String templatePath, final StringArgument resourcePath,
- final StringArgument ldifFile, final IntegerArgument randomSeedArg, final StringArgument constants) {
+ private int run(final String templatePath, final StringArgument resourcePath, final StringArgument ldifFile,
+ final IntegerArgument randomSeedArg, final StringArgument constants, final IntegerArgument wrapColumn) {
LDIFEntryWriter writer = null;
try (EntryGenerator generator = createGenerator(templatePath, resourcePath, randomSeedArg, constants)) {
if (generator == null) {
@@ -150,15 +161,14 @@
}
}
- if (ldifFile.isPresent()) {
- try {
- writer = new LDIFEntryWriter(new BufferedWriter(new FileWriter(new File(ldifFile.getValue()))));
- } catch (IOException e) {
- errPrintln(ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get(ldifFile.getValue(), e.getMessage()));
- return EXIT_CODE_FAILURE;
- }
- } else {
- writer = new LDIFEntryWriter(getOutputStream());
+ try {
+ writer = createLdifWriter(ldifFile, wrapColumn);
+ } catch (final IOException e) {
+ errPrintln(ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get(ldifFile.getValue(), e.getMessage()));
+ return EXIT_CODE_FAILURE;
+ } catch (final ArgumentException e) {
+ errPrintln(ERR_ERROR_PARSING_ARGS.get(e.getMessageObject()));
+ return EXIT_CODE_FAILURE;
}
if (!generateEntries(generator, writer, ldifFile)) {
@@ -173,6 +183,17 @@
}
}
+ private LDIFEntryWriter createLdifWriter(final StringArgument ldifFile, final IntegerArgument wrapColumn)
+ throws IOException, ArgumentException {
+ final LDIFEntryWriter writer;
+ if (ldifFile.isPresent()) {
+ writer = new LDIFEntryWriter(new BufferedWriter(new FileWriter(ldifFile.getValue())));
+ } else {
+ writer = new LDIFEntryWriter(getOutputStream());
+ }
+ return writer.setWrapColumn(wrapColumn.getIntValue());
+ }
+
static EntryGenerator createGenerator(final String templatePath, final StringArgument resourcePath,
final IntegerArgument randomSeedArg, final StringArgument constants,
final boolean generateBranches, final ConsoleApplication app) {
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
index ad61aba..eb1b3ca 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
@@ -323,6 +323,9 @@
processing : %s
ERR_CONSTANT_ARG_CANNOT_DECODE=Unable to parse a constant argument \
expecting name=value but got %s
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Maximum length of an output line \
+ (0 for no wrapping)
+INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER={wrapColumn}
#
# AddRate Tool
#
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties
new file mode 100644
index 0000000..906f8c3
--- /dev/null
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties
@@ -0,0 +1,20 @@
+#
+# The contents of this file are subject to the terms of the Common Development and
+# Distribution License (the License). You may not use this file except in compliance with the
+# License.
+#
+# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+# specific language governing permission and limitations under the License.
+#
+# When distributing Covered Software, include this CDDL Header Notice in each file and include
+# the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+# Header, with the fields enclosed by brackets [] replaced by your own identifying
+# information: "Portions Copyright [year] [name of copyright owner]".
+#
+# Copyright 2016 ForgeRock AS.
+#
+
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Columna in la qual s'envoltaran les l\u00ednies incorrectes (0 per no envoltar)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties
index be888c1..e95c476 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Spalte, in der lange Zeile umgebrochen werden sollen (0 f\u00fcr keinen Zeilenumbruch)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties
index be888c1..0a3db36 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Columna en la que ajustar l\u00edneas largas (0 para ning\u00fan ajuste)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties
index be888c1..4a8219b 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Taille maximum d'une ligne dans le fichier de sortie (0 = pas de limite)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties
index be888c1..c140f67 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u9577\u3044\u884c\u3092\u6298\u308a\u8fd4\u3059\u6841 (0 \u306f\u6298\u308a\u8fd4\u3057\u306a\u3057)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties
index be888c1..782e4f2 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\uae34 \ud589\uc744 \ub798\ud551\ud560 \uc5f4(0 = \ub798\ud551 \uc548 \ud568)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties
new file mode 100644
index 0000000..219edc7
--- /dev/null
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties
@@ -0,0 +1,20 @@
+#
+# The contents of this file are subject to the terms of the Common Development and
+# Distribution License (the License). You may not use this file except in compliance with the
+# License.
+#
+# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+# specific language governing permission and limitations under the License.
+#
+# When distributing Covered Software, include this CDDL Header Notice in each file and include
+# the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+# Header, with the fields enclosed by brackets [] replaced by your own identifying
+# information: "Portions Copyright [year] [name of copyright owner]".
+#
+# Copyright 2016 ForgeRock AS.
+#
+
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Kolumna na kt\u00f3rej zawijane b\u0119d\u0105 d\u0142ugie linie (0 aby wy\u0142\u0105czy\u0107 zawijanie)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties
index be888c1..cde850c 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u5bf9\u8f83\u957f\u7684\u884c\u8fdb\u884c\u6362\u884c\u7684\u5217\uff080 \u8868\u793a\u4e0d\u6362\u884c\uff09
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties
index be888c1..2a61a7f 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties
@@ -11,4 +11,9 @@
# information: "Portions Copyright [year] [name of copyright owner]".
#
# Copyright 2009 Sun Microsystems, Inc.
+# Portions Copyright 2016 ForgeRock AS.
+#
+# MakeLDIF tool
+#
+INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u8981\u5c0d\u9577\u53e5\u63db\u884c\u7684\u6b04 (0 \u8868\u793a\u4e0d\u63db\u884c)
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java b/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
index 3fa67de..8018c2e 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
@@ -134,6 +134,16 @@
}
/** See OPENDJ-2505 and OPENDJ-2754 */
+ @Test
+ public void testMakeLDIFSupportsLineFoldingAndLineWrapping() throws Exception {
+ final Path tempOutputFile = Paths.get(TEST_RESOURCE_PATH, TEMP_OUTPUT_FILE);
+ run(args("-o", tempOutputFile.toString(), "-w", "80", VALID_TEMPLATE_FILE_PATH),
+ SUCCESS, INFO_MAKELDIF_PROCESSING_COMPLETE.get(2));
+ assertFilesAreEquals(TEMP_OUTPUT_FILE, "expected_output_80_column.ldif");
+ Files.delete(tempOutputFile);
+ }
+
+ private void assertFilesAreEquals(final String outputFile, final String expectedOutputFileName) throws IOException {
assertThat(Files.readAllBytes(Paths.get(TEST_RESOURCE_PATH, outputFile))).isEqualTo(
Files.readAllBytes(Paths.get(TEST_RESOURCE_PATH, expectedOutputFileName)));
}
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/test/resources/expected_output_80_column.ldif b/opendj-sdk/opendj-ldap-toolkit/src/test/resources/expected_output_80_column.ldif
new file mode 100644
index 0000000..45e611c
--- /dev/null
+++ b/opendj-sdk/opendj-ldap-toolkit/src/test/resources/expected_output_80_column.ldif
@@ -0,0 +1,14 @@
+dn: dc=example,dc=com
+dc: example
+
+dn: coretokenid=tokenId,dc=example,dc=com
+coretokenid: tokenId
+objectClass: top
+objectClass: frCoreToken
+coretokenstring08: /myrealm
+coretokenstring07: Bearer
+coretokenobject: {"redirectURI":["http://fake.com"],"acr":[],"clientID":["client
+ OIDC"],"lineFoldingTest":["This line should have been correctly folded"],"token
+ Name":["refresh_token"],"authModules":["LDAP"],"realm":["/myrealm"],"id":["fake
+ id"],"userName":["johndoe"],"tokenType":["Bearer"]}
+
--
Gitblit v1.10.0