blob: 1a939ca52321571ee3bd36f227d5d6400e64a2ed [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Apache Commons CLI Release Notes</title>
</properties>
<body>
<release version="1.5.0" date="tba" description="New features and bug fixes (Java 7).">
<!-- FIX -->
<action type="fix" dev="ggregory" due-to="Gary Gregory">
Fix NPE in DefaultParser.isLongOption(String).
</action>
<action type="fix" dev="britter" due-to="Krishna Mohan Rao Kandunoori" issue="CLI-279">
@param or @return lines should end with a period in CommandLine.java
</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">
Replace deprecated FindBugs with SpotBugs.
</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">
Replace CLIRR with JApiCmp.
</action>
<action type="fix" dev="ggregory" due-to="Elliotte Rusty Harold">
Option Javadocs grammar nits #55.
</action>
<action type="fix" dev="ggregory" due-to="Arturo Bernal, Gary Gregory">
Minor Improvements #57, #61.
</action>
<action type="fix" dev="ggregory" due-to="stoty" issue="CLI-254">
Input "test" gets parsed as test, quotes die #58.
</action>
<action type="fix" dev="ggregory" due-to="MrQubo, Gary Gregory" issue="CLI-287">
Allow whitespace-only header and footer #26.
</action>
<!-- ADD -->
<action type="add" dev="chtompki" due-to="Rubin Simons" issue="CLI-217">
Accommodate toggling partial matching in DefaultParser.
</action>
<action type="add" dev="britter" due-to="Béla Schaum" issue="CLI-274">
Option parser type EXISTING_FILE_VALUE not check file existing
</action>
<action type="add" dev="britter" due-to="Christoph Läubrich" issue="CLI-271">
CommandLine.getXXX and CommandLine.hasXXX should accept an Option as a parameter
</action>
<action type="add" dev="ggregory" due-to="Jason Dillon" issue="CLI-276">
Adjust access-modifier of checkRequiredOptions() to protected.
</action>
<action type="add" dev="ggregory" due-to="Alex Nordlund" issue="CLI-282">
TypeHandler should throw ParseException for an unsupported class.
</action>
<action type="add" dev="ggregory" due-to="Waldemar Sojka, Gary Gregory">
Added setter for Builder.option #33.
</action>
<action type="add" dev="ggregory" due-to="Waldemar Sojka, Gary Gregory">
Add Option unit tests #76.
</action>
<!-- UPDATE -->
<action type="update" dev="ggregory" issue="CLI-294">
Update Java from version 5 to 7.
</action>
<action type="update" dev="ggregory" due-to="Mincong Huang">
Docs: Replace OptionBuilder in usage page #30.
</action>
<action type="update" dev="ggregory" due-to="dengliming">
Remove deprecated sudo setting. #36.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">
Bump junit:junit from 4.12 to 4.13.2, #53, #60.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump commons-parent from 48 to 52.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump maven-pmd-plugin from 3.12.0 to 3.15.0, #44, #54, #67.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump actions/checkout from v2.3.1 to v2.3.5 #46, #72.
</action>
<action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
Bump actions/setup-java from v1.4.2 to v2 #50.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump maven-antrun-plugin from 1.7 to 3.0.0 #43.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">
Bump maven-checkstyle-plugin from 2.15 to 3.1.2 #41.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">
Bump checkstyle to 9.0.1 #68.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump actions/cache from 2 to 2.1.6 #64, #65.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">
Bump commons.animal-sniffer.version 1.19 -> 1.20.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">
Bump maven-bundle-plugin 5.1.1 -> 5.1.2.
</action>
<action type="update" dev="ggregory" due-to="Gary Gregory">
Bump biz.aQute.bndlib.version 5.1.2 -> 6.0.0.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump spotbugs from 4.4.1 to 4.4.2 #70.
</action>
<action type="update" dev="ggregory" due-to="Dependabot">
Bump spotbugs-maven-plugin from 4.4.1 to 4.4.2.2 #71.
</action>
</release>
<release version="1.4" date="2017-03-09" description="New features and bug fixes">
<action type="add" dev="rfscholte" issue="CLI-269">
Introduce CommandLine.Builder
</action>
<action type="fix" dev="britter" issue="CLI-265" due-to="Martin Sandiford">
Optional argument picking up next regular option as its argument
</action>
<action type="add" dev="britter" issue="CLI-267" due-to="Ricardo Ribeiro">
Add an addRequiredOption method to Options
</action>
<action type="fix" dev="britter" issue="CLI-266" due-to="Ravi Teja">
HelpFormatter.setOptionComparator(null) doesn't display the values in inserted order
</action>
</release>
<release version="1.3.1" date="2015-06-17" description="Bug fix release for 1.3">
<action type="fix" dev="britter" issue="CLI-252" due-to="Simon Harrer">
LongOpt falsely detected as ambiguous
</action>
</release>
<release version="1.3" date="2015-05-09" description="This is a feature and maintenance bug fix release.">
<action type="fix" dev="djones" issue="CLI-248">
Fixed broken Javadoc links on Introduction page.
</action>
<action type="fix" dev="tn" issue="CLI-234" due-to="Greg Thomas">
Fixed code example in javadoc of "Option#Builder#valueSeparator(char)".
</action>
<action type="fix" dev="tn" issue="CLI-241" due-to="Beluga Behr">
Clarified behavior of "OptionValidator#validateOption(String)" in case of null input.
</action>
<action type="update" dev="tn" issue="CLI-240" due-to="Beluga Behr">
Small cleanup of Option class.
</action>
<action type="update" dev="tn" issue="CLI-231" due-to="Duncan Jones">
Removed DoubleCheckedLocking test from checkstyle configuration.
</action>
<action type="update" dev="tn" issue="CLI-230">
Options.getRequiredOptions() now returns an unmodifiable list.
</action>
<action type="add" dev="tn" issue="CLI-224" due-to="Duncan Jones, Brian Blount">
Added new fluent API to create Option instances via builder class Option.Builder.
This replaces the now deprecated OptionBuilder.
</action>
<action type="update" dev="tn" issue="CLI-218" due-to="Sven">
Clarify javadoc for CommandLine.getOptionValue() that the first specified
argument will be returned.
</action>
<action type="add" dev="tn" issue="CLI-214" due-to="Alexandru Mocanu">
Added new method Options.addOption(String, String).
</action>
<action type="update" dev="tn" issue="CLI-227" due-to="Duncan Jones">
Changed unit tests to junit 4 annotation style.
</action>
<action type="fix" dev="ebourg" issue="CLI-202">
Default options will now work correctly with required options that are missing.
</action>
<action type="fix" dev="ebourg" issue="CLI-203">
Default options will now work correctly together with option groups.
</action>
<action type="update" dev="ebourg" issue="CLI-209" due-to="Thomas Herre">
The javadoc of OptionBuilder now states that the class is not thread-safe.
</action>
<action type="add" dev="ebourg" issue="CLI-169" due-to="J. Lewis Muir">
HelpFormatter now supports setting the displayed separator of long options.
</action>
<action type="update" dev="ebourg" issue="CLI-197" due-to="Anders Larsson">
Improve description of parameter "stopAtNonOption" in method
CommandLine.parse(Options, String[], boolean).
</action>
<action type="fix" dev="ebourg" issue="CLI-204">
Passing default values for not defined options to a parser will now trigger
a ParseException instead of a NullPointerException.
</action>
<action type="fix" dev="ebourg" issue="CLI-205">
HelpFormatter.setArgName(String) now correctly sets the argument name.
</action>
<action type="fix" dev="ebourg" issue="CLI-201">
Default properties provided as input to the Parser.parse() methods are now
correctly processed.
</action>
<action type="fix" dev="ebourg" issue="CLI-215" due-to="Manuel Müller">
CommandLine.getParsedOptionValue() now returns a String object if no
option type has been explicitly set.
</action>
<action type="update" dev="ggregory" issue="CLI-200" due-to="Gerard Weatherby">
Fixed typo in javadoc of class CommandLine.
</action>
<action type="update" dev="ebourg" issue="CLI-223" due-to="Gerard Weatherby">
Source code now uses generic types instead of raw types where possible.
</action>
<action type="update" dev="ebourg" issue="CLI-220" due-to="Joe Casadonte">
Corrected javadoc for return type of MissingOptionException.getMissingOptions().
</action>
<action type="fix" dev="ebourg" issue="CLI-212" due-to="Per Cederberg">
HelpFormatter now prints command-line options in the same order as they
have been added.
</action>
<action type="fix" dev="ebourg" issue="CLI-186" due-to="Kristoff Kiefer">
Standard help text now shows mandatory arguments also for the first option.
</action>
<action type="fix" dev="ebourg" issue="CLI-207" due-to="Uri Moszkowicz">
HelpFormatter does not strip anymore leading whitespace in the footer text.
</action>
<action type="fix" dev="ebourg" issue="CLI-185" due-to="Einar M R Rosenvinge">
Strip quotes contained in argument values only if there is exactly one at the
beginning and one at the end.
</action>
<action type="fix" dev="ebourg" issue="CLI-184">
Negative numerical arguments take precedence over numerical options (only supported
by the new DefaultParser).
</action>
<action type="fix" dev="ebourg" issue="CLI-193" due-to="Travis McLeskey">
Fix possible StringIndexOutOfBoundsException in HelpFormatter.
</action>
<action type="add" dev="ebourg" issue="CLI-161,CLI-167,CLI-181">
A new parser is available: DefaultParser. It combines the features of the GnuParser and the PosixParser.
It also provides additional features like partial matching for the long options, and long options without
separator (i.e like the JVM memory settings: -Xmx512m). This new parser deprecates the previous ones.
</action>
<action type="fix" dev="ebourg" issue="CLI-183">
OptionGroups no longer throw an AlreadySelectedException when reused for several parsings.
</action>
<action type="fix" dev="ebourg" issue="CLI-182">
OptionGroup now selects properly an option with no short name.
</action>
<action type="add" dev="ebourg" issue="CLI-160">
PosixParser now supports partial long options (--ver instead of --version).
</action>
</release>
<release version="1.2" date="2009-03-19" description="This is a maintenance release containing bug fixes.">
<action type="fix" dev="joehni" issue="CLI-177">
OptionBuilder is now reseted if an IllegalArgumentException occurs in create().
</action>
<action type="remove" dev="bayard">
Ant build system removed.
</action>
<action type="fix" dev="ebourg" issue="CLI-154">
Incomplete usage documentation about Java property option.
</action>
<action type="fix" dev="bayard" issue="CLI-170">
TypeHandler prints messages to stderr.
</action>
<action type="fix" dev="bayard" issue="CLI-162">
Infinite loop in the wrapping code of HelpFormatter.
</action>
<action type="fix" dev="sgoeschl">
Fixing some minor javadoc issues.
</action>
<action type="fix" dev="ebourg" issue="CLI-137">
The number of arguments defined for an option specifies the arguments per occurrence of the option
and not for all occurrences. This was a major regression in CLI 1.1 which prevented the use of repeated options.
</action>
<action type="add" dev="ebourg">
Added a getOptionProperties() method in the CommandLine class to retrieve easily the key/value pairs
specified with options like -Dkey1=value1 -Dkey2=value2.
</action>
<action type="update" dev="ebourg" issue="CLI-157">
GnuParser now supports long options with an '=' sign (ie. --foo=bar and -foo=bar)
</action>
<action type="fix" dev="ebourg" issue="CLI-164">
PosixParser no longer ignores unrecognized short options.
</action>
<action type="fix" dev="ebourg" issue="CLI-163">
PosixParser no longer stops the bursting process of a token if stopAtNonOption is enabled and a non option
character is encountered.
</action>
<action type="fix" dev="ebourg" issue="CLI-165">
PosixParser no longer keeps processing the tokens after an unrecognized long option
when stopAtNonOption is enabled.
</action>
<action type="fix" dev="ebourg" issue="CLI-156">
Required options are properly checked if an Options instance is used twice to parse a command line.
</action>
<action type="update" dev="bayard" issue="CLI-155">
The ordering of options can be defined in help messages.
</action>
<action type="fix" dev="bayard" issue="CLI-151" due-to="Dan Armbrust">
The line wrapping in HelpFormatter now works properly. This caused CLI-162, and thus there was a feature change
for the HelpFormatter in that it is strict on width now rather than what seemed to be lenience before. Text without
whitespace will be cut off to fit in the spacing, and an IllegalStateException will be thrown if it is impossible
to output the information due to spacing constraints.
</action>
<action type="fix" dev="bayard" issue="CLI-149">
The message of MissingOptionException has been improved.
</action>
<action type="update" dev="ebourg" issue="CLI-86">
The exceptions have been enhanced with methods to retrieve easily the related options.
</action>
<action type="fix" dev="bayard" issue="CLI-141" due-to="Henning Schmiedehausen, Bjorn Townsend">
Option.toString() now reports arguments properly.
</action>
<action type="update" dev="bayard" issue="CLI-142" due-to="Henning Schmiedehausen">
The Parser class has been changed to be more easily extendable.
</action>
<action type="update" dev="bayard" issue="CLI-140">
The following classes are now serializable: Option, OptionGroup, CommandLine and Options.
</action>
<action type="remove" dev="ebourg">
OptionValidator is no longer public, its methods were all private.
</action>
</release>
<release version="1.1" date="2007-07-08" description="This is a maintenance release containing bug fixes.">
<action type="fix" issue="CLI-2">Wrong usage summary. </action>
<action type="fix" issue="CLI-5">Dependecy on commons-lang-2.0 but commons-lang-1.0 is obtained. </action>
<action type="fix" issue="CLI-8">Line separator as first char for helpformatter (footer) throws exception. </action>
<action type="fix" issue="CLI-13">CommandLine.getOptionValue() behaves contrary to docs. </action>
<action type="fix" issue="CLI-21">clone method in Option should use super.clone(). </action>
<action type="fix" issue="CLI-23">Passing properties in Parser does not work for options with a single argument. </action>
<action type="fix" issue="CLI-26">Only long options without short option seems to be noticed. </action>
<action type="fix" issue="CLI-28">Infinite Loop in Command-Line processing. </action>
<action type="fix" issue="CLI-29">Options should not be able to be added more than once. </action>
<action type="fix" issue="CLI-35">HelpFormatter doesn't sort options properly. </action>
<action type="fix" issue="CLI-38">HelpFormatter doesn't function correctly for options with only LongOpt. </action>
<action type="fix" issue="CLI-44">Document enhancement. </action>
<action type="fix" issue="CLI-45">Documentation errors. </action>
<action type="fix" issue="CLI-51">Parameter value "-something" misinterpreted as a parameter. </action>
<action type="fix" issue="CLI-56">clone() method doesn't fully clone contents. </action>
<action type="fix" issue="CLI-59">No Javadoc for HelpFormatter!. </action>
<action type="fix" issue="CLI-65">Parser breaks up command line parms into single characters. </action>
<action type="fix" issue="CLI-67">Missing arguments in HelpFormatter.renderOptions(..). </action>
<action type="fix" issue="CLI-69">Error parsing option arguments. </action>
<action type="fix" issue="CLI-71">A weakness of parser. </action>
<action type="add" issue="CLI-78">Setting description of a Option. </action>
<action type="fix" issue="CLI-129">CLI_1_BRANCH build.xml doesn't work. </action>
<action type="fix" issue="CLI-130">Remove the Commons Lang dependency. </action>
<action type="fix" issue="CLI-131">Options class returns options in random order. </action>
<action type="fix" issue="CLI-132">MissingOptionException should contain a useful error message. </action>
<action type="fix" issue="CLI-133">NullPointerException in Util.stripLeadingHyphens when passed a null argument. </action>
<action type="fix" issue="CLI-134">1.1 is not backwards compatible because it adds methods to the CommandLineParser interface. </action>
<action type="fix" issue="CLI-135">Backwards compatibility between 1.1 and 1.0 broken due to Option.addValue removal. </action>
</release>
<release version="1.0" date="2002-11-06" description="Initial release"/>
</body>
</document>