OPENDJ-2582 Fix dsconfig --version
Generalize the way that tool version and revision are computed and move
it to opendj-cli module.
Server's DSConfig class will then be able to use
ToolVersionHandler.newToolVersionHandler("opendj-config")
1 files deleted
1 files added
12 files modified
| New file |
| | |
| | | /* |
| | | * 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 2015-2016 ForgeRock AS. |
| | | */ |
| | | package com.forgerock.opendj.cli; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.net.URL; |
| | | import java.util.Enumeration; |
| | | import java.util.jar.Attributes; |
| | | import java.util.jar.Manifest; |
| | | |
| | | /** Class that prints the version of the SDK to System.out. */ |
| | | public final class ToolVersionHandler implements VersionHandler { |
| | | |
| | | /** |
| | | * Returns a {@link VersionHandler} which should be used by OpenDJ SDK tools. |
| | | * <p> |
| | | * The printed version and SCM revision will be the one of the opendj-core module. |
| | | * @return A {@link VersionHandler} which should be used by OpenDJ SDK tools. |
| | | */ |
| | | public static VersionHandler newSdkVersionHandler() { |
| | | return newToolVersionHandler("opendj-core"); |
| | | } |
| | | |
| | | /** |
| | | * Returns a {@link VersionHandler} which should be used to print version and SCM revision of a module. |
| | | * <p> |
| | | * The printed version and SCM revision will be read from the module MANIFEST.MF file. |
| | | * @param moduleName |
| | | * Name of the module which uniquely identify the URL of the MANIFEST.MF file. |
| | | * @return A {@link VersionHandler} which should be used by OpenDJ SDK tools. |
| | | */ |
| | | public static VersionHandler newToolVersionHandler(final String moduleName) { |
| | | return new ToolVersionHandler(moduleName); |
| | | } |
| | | |
| | | private final String moduleName; |
| | | |
| | | private ToolVersionHandler(final String moduleName) { |
| | | this.moduleName = moduleName; |
| | | } |
| | | |
| | | @Override |
| | | public void printVersion() { |
| | | System.out.println(getVersion()); |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return getClass().getSimpleName() + "(" + getVersion() + ")"; |
| | | } |
| | | |
| | | private String getVersion() { |
| | | try { |
| | | final Enumeration<URL> manifests = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF"); |
| | | while (manifests.hasMoreElements()) { |
| | | final URL manifestUrl = manifests.nextElement(); |
| | | if (manifestUrl.toString().contains(moduleName)) { |
| | | try (InputStream manifestStream = manifestUrl.openStream()) { |
| | | final Attributes attrs = new Manifest(manifestStream).getMainAttributes(); |
| | | return attrs.getValue("Bundle-Version") + " (revision " + attrs.getValue("SCM-Revision") + ")"; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } catch (IOException e) { |
| | | throw new RuntimeException("IOException while determining opendj tool version", e); |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.MultiColumnPrinter.column; |
| | | import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler; |
| | | import static java.util.concurrent.TimeUnit.*; |
| | | import static com.forgerock.opendj.cli.CommonArguments.*; |
| | | |
| | |
| | | final LocalizableMessage toolDescription = INFO_ADDRATE_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(AddRate.class.getName(), toolDescription, false, true, 1, 1, "template-file-path"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_ADDRATE.get()); |
| | | argParser.setDocToolDescriptionSupplement(SUPPLEMENT_DESCRIPTION_RATE_TOOLS.get()); |
| | | |
| | |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | import static com.forgerock.opendj.cli.MultiColumnPrinter.column; |
| | | import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler; |
| | | import static com.forgerock.opendj.cli.Utils.*; |
| | | import static com.forgerock.opendj.ldap.tools.ToolsMessages.*; |
| | | import static com.forgerock.opendj.ldap.tools.Utils.*; |
| | |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(AuthRate.class.getName(), toolDescription, false, true, 0, 0, |
| | | "[filter format string] [attributes ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_AUTHRATE.get()); |
| | | argParser.setDocToolDescriptionSupplement(SUPPLEMENT_DESCRIPTION_RATE_TOOLS.get()); |
| | | |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | 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.cli.Utils.readBytesFromFile; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDAPCOMPARE_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = new ArgumentParser( |
| | | LDAPCompare.class.getName(), toolDescription, false, true, 1, 0, "attribute:value [DN ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDAPCOMPARE.get()); |
| | | |
| | | ConnectionFactoryProvider connectionFactoryProvider; |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | 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.Utils.printErrorMessage; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDAPMODIFY_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(LDAPModify.class.getName(), toolDescription, false); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDAPMODIFY.get()); |
| | | |
| | | ConnectionFactoryProvider connectionFactoryProvider; |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.CliMessages.INFO_FILE_PLACEHOLDER; |
| | | 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.cli.CommonArguments.*; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDAPPWMOD_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(LDAPPasswordModify.class.getName(), toolDescription, false); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDAPPASSWORDMODIFY.get()); |
| | | |
| | | ConnectionFactoryProvider connectionFactoryProvider; |
| | |
| | | import com.forgerock.opendj.util.StaticUtils; |
| | | |
| | | import static com.forgerock.opendj.cli.CliMessages.INFO_NUM_ENTRIES_PLACEHOLDER; |
| | | import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler; |
| | | import static com.forgerock.opendj.ldap.tools.Utils.printErrorMessage; |
| | | import static com.forgerock.opendj.ldap.tools.Utils.printPasswordPolicyResults; |
| | | import static org.forgerock.util.Utils.*; |
| | |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(LDAPSearch.class.getName(), toolDescription, false, true, 0, 0, |
| | | "[filter] [attributes ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDAPSEARCH.get()); |
| | | |
| | | ConnectionFactoryProvider connectionFactoryProvider; |
| | |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_OUTPUT_LDIF_FILENAME; |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_SHORT_OUTPUT_LDIF_FILENAME; |
| | | 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.cli.CommonArguments.*; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDIFDIFF_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = new ArgumentParser( |
| | | LDIFDiff.class.getName(), toolDescription, false, true, 2, 2, "source target"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDIFDIFF.get()); |
| | | |
| | | final BooleanArgument showUsage; |
| | |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_OUTPUT_LDIF_FILENAME; |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_SHORT_OUTPUT_LDIF_FILENAME; |
| | | 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 org.forgerock.util.Utils.closeSilently; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDIFMODIFY_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = new ArgumentParser( |
| | | LDIFModify.class.getName(), toolDescription, false, true, 1, 2, "source [changes]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDIFMODIFY.get()); |
| | | |
| | | final BooleanArgument continueOnError; |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | 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.cli.CommonArguments.*; |
| | |
| | | final LocalizableMessage toolDescription = INFO_LDIFSEARCH_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = new ArgumentParser( |
| | | LDIFSearch.class.getName(), toolDescription, false, true, 1, 0, "source [filter] [attributes ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_LDIFSEARCH.get()); |
| | | |
| | | final BooleanArgument showUsage; |
| | |
| | | package com.forgerock.opendj.ldap.tools; |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | 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 org.forgerock.util.Utils.closeSilently; |
| | |
| | | final LocalizableMessage toolDescription = INFO_MAKELDIF_TOOL_DESCRIPTION.get(); |
| | | final ArgumentParser argParser = new ArgumentParser(MakeLDIF.class.getName(), toolDescription, |
| | | false, true, 1, 1, "template-file-path"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_MAKELDIF.get()); |
| | | argParser.setDocToolDescriptionSupplement(SUPPLEMENT_DESCRIPTION_MAKELDIF.get()); |
| | | |
| | |
| | | import com.forgerock.opendj.cli.StringArgument; |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler; |
| | | import static com.forgerock.opendj.cli.Utils.*; |
| | | import static com.forgerock.opendj.ldap.tools.ToolsMessages.*; |
| | | import static com.forgerock.opendj.cli.CommonArguments.*; |
| | |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(ModRate.class.getName(), toolDescription, false, true, 1, 0, |
| | | "[(attribute:value format string) ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_MODRATE.get()); |
| | | argParser.setDocToolDescriptionSupplement(SUPPLEMENT_DESCRIPTION_RATE_TOOLS.get()); |
| | | |
| | |
| | | |
| | | import static com.forgerock.opendj.cli.ArgumentConstants.*; |
| | | import static com.forgerock.opendj.cli.MultiColumnPrinter.column; |
| | | import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler; |
| | | import static com.forgerock.opendj.cli.Utils.*; |
| | | import static com.forgerock.opendj.ldap.tools.ToolsMessages.*; |
| | | import static com.forgerock.opendj.cli.CommonArguments.*; |
| | |
| | | final ArgumentParser argParser = |
| | | new ArgumentParser(SearchRate.class.getName(), toolDescription, false, true, 1, 0, |
| | | "[filter format string] [attributes ...]"); |
| | | argParser.setVersionHandler(new SdkVersionHandler()); |
| | | argParser.setVersionHandler(newSdkVersionHandler()); |
| | | argParser.setShortToolDescription(REF_SHORT_DESC_SEARCHRATE.get()); |
| | | argParser.setDocToolDescriptionSupplement(SUPPLEMENT_DESCRIPTION_RATE_TOOLS.get()); |
| | | |