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

Violette Roche-Montane
14.23.2014 f2314152ff2aab895431959df995cf94f227fd0f
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.

2 files modified
1 files added
232 ■■■■■ changed files
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/ReturnCode.java 45 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java 182 ●●●●● patch | view | raw | blame | history
opendj-sdk/opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties 5 ●●●● patch | view | raw | blame | history
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;
opendj-sdk/opendj-cli/src/main/java/com/forgerock/opendj/cli/TabSeparatedTablePrinter.java
New file
@@ -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();
    }
}
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