From f2314152ff2aab895431959df995cf94f227fd0f Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Fri, 14 Feb 2014 08:23:06 +0000
Subject: [PATCH] minor commit for OPENDJ-1343 Migrate dsconfig / OPENDJ-1303 "opendj-cli" - added TabSeparatedTablePrinter.java - added return codes used by tools in opendj3. - added new messages needed by DSConfig.
---
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java | 182 +++++++++++++++++++++++++++++++++++++++++++++
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java | 45 +++++++++++
opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties | 5 +
3 files changed, 230 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java
index 2369fc8..81a4605 100644
--- a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java
@@ -92,13 +92,56 @@
*/
JAVA_VERSION_INCOMPATIBLE(8),
/**
+ * The LDAP result code for operations that fail because a defined constraint
+ * has been violated.
+ */
+ CONSTRAINT_VIOLATION(19),
+ /**
+ * The LDAP result code for operations that fail because a targeted entry does
+ * not exist.
+ */
+ NO_SUCH_OBJECT(32),
+ /**
+ * The LDAP result code for operations that fail because the client does not
+ * have permission to perform the requested operation.
+ */
+ INSUFFICIENT_ACCESS_RIGHTS(50),
+ /**
+ * The LDAP result code for operations that fail because the requested
+ * operation would have resulted in an entry that conflicts with one that
+ * already exists.
+ */
+ ENTRY_ALREADY_EXISTS(68),
+ /**
+ * The LDAP result code for use in cases in which none of the other defined
+ * result codes are appropriate.
+ */
+ OTHER(80),
+ /**
+ * The client-side result code that indicates that a previously-established
+ * connection to the server was lost. This is for client-side use only and
+ * should never be transferred over protocol.
+ */
+ CLIENT_SIDE_SERVER_DOWN(81),
+ /**
+ * The client-side result code that indicates that the client was not able to
+ * establish a connection to the server. This is for client-side use only and
+ * should never be transferred over protocol.
+ */
+ CLIENT_SIDE_CONNECT_ERROR(91),
+ /**
* The client-side result code that indicates that there was a problem with one or more of the parameters provided
* by the user.
* <PRE>
* Code value of 89.
* </PRE>
*/
- CLIENT_SIDE_PARAM_ERROR(89);
+ CLIENT_SIDE_PARAM_ERROR(89),
+
+ /**
+ * TODO to review.
+ */
+ TODO(99);
private int returnCode;
diff --git a/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java
new file mode 100644
index 0000000..3e6dfe1
--- /dev/null
+++ b/opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java
@@ -0,0 +1,182 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ * Portions Copyright 2014 ForgeRock AS
+ */
+package com.forgerock.opendj.cli;
+
+import java.io.BufferedWriter;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Writer;
+
+/**
+ * An interface for creating a tab-separated formatted table.
+ * <p>
+ * This table printer will replace any tab, line-feeds, or carriage return control characters encountered in a cell with
+ * a single space.
+ */
+public final class TabSeparatedTablePrinter extends TablePrinter {
+
+ /**
+ * Table serializer implementation.
+ */
+ private final class Serializer extends TableSerializer {
+
+ /** The current column being output. */
+ private int column = 0;
+
+ /**
+ * Counts the number of separators that should be output the next time a non-empty cell is displayed. The tab
+ * separators are not displayed immediately so that we can avoid displaying unnecessary trailing separators.
+ */
+ private int requiredSeparators = 0;
+
+ /** Private constructor. */
+ private Serializer() {
+ // No implementation required.
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void addCell(String s) {
+ // Avoid printing tab separators for trailing empty cells.
+ if (s.length() == 0) {
+ requiredSeparators++;
+ } else {
+ for (int i = 0; i < requiredSeparators; i++) {
+ writer.print('\t');
+ }
+ requiredSeparators = 1;
+ }
+
+ // Replace all new-lines and tabs with a single space.
+ writer.print(s.replaceAll("[\\t\\n\\r]", " "));
+ column++;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void addHeading(String s) {
+ if (displayHeadings) {
+ addCell(s);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void endHeader() {
+ if (displayHeadings) {
+ writer.println();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void endRow() {
+ writer.println();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void endTable() {
+ writer.flush();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void startHeader() {
+ column = 0;
+ requiredSeparators = 0;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void startRow() {
+ column = 0;
+ requiredSeparators = 0;
+ }
+ }
+
+ /** Indicates whether or not the headings should be output. */
+ private boolean displayHeadings = false;
+
+ /** The output destination. */
+ private PrintWriter writer = null;
+
+ /**
+ * Creates a new tab separated table printer for the specified output stream. Headings will not be displayed by
+ * default.
+ *
+ * @param stream
+ * The stream to output tables to.
+ */
+ public TabSeparatedTablePrinter(OutputStream stream) {
+ this(new BufferedWriter(new OutputStreamWriter(stream)));
+ }
+
+ /**
+ * Creates a new tab separated table printer for the specified writer. Headings will not be displayed by default.
+ *
+ * @param writer
+ * The writer to output tables to.
+ */
+ public TabSeparatedTablePrinter(Writer writer) {
+ this.writer = new PrintWriter(writer);
+ }
+
+ /**
+ * Specify whether or not table headings should be displayed.
+ *
+ * @param displayHeadings
+ * <code>true</code> if table headings should be displayed.
+ */
+ public void setDisplayHeadings(boolean displayHeadings) {
+ this.displayHeadings = displayHeadings;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected TableSerializer getSerializer() {
+ return new Serializer();
+ }
+
+}
diff --git a/opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties b/opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties
index c521b3b..03373d4 100755
--- a/opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties
+++ b/opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties
@@ -421,6 +421,10 @@
INFO_TIME_LIMIT_PLACEHOLDER={timeLimit}
INFO_TARGETDN_PLACEHOLDER={targetDN}
INFO_KEYSTORE_PWD_FILE_PLACEHOLDER={keyStorePasswordFile}
+INFO_PATH_PLACEHOLDER={path}
+INFO_NAME_PLACEHOLDER={name}
+INFO_PROPERTY_PLACEHOLDER={property}
+INFO_UNIT_PLACEHOLDER={unit}
INFO_PSEARCH_PLACEHOLDER=ps[:changetype[:changesonly[:entrychgcontrols]]]
ERR_CANNOT_READ_TRUSTSTORE=Cannot access trust store '%s'. Verify \
that the provided trust store exists and that you have read access rights to it
@@ -488,7 +492,6 @@
data based on a definition in a template file
INFO_CONSTANT_PLACEHOLDER={name=value}
INFO_SEED_PLACEHOLDER={seed}
-INFO_PATH_PLACEHOLDER={path}
INFO_BATCH_FILE_PATH_PLACEHOLDER={batchFilePath}
INFO_MAKELDIF_DESCRIPTION_CONSTANT=A constant that overrides the value \
set in the template file
--
Gitblit v1.10.0