Bump actions/cache from 3.0.2 to 3.0.3
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 2169c2d..24151bd 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,47 +1,47 @@
-# 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.
-
-name: Java CI
-
-on: [push, pull_request]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-    continue-on-error: ${{ matrix.experimental }}
-    strategy:
-      matrix:
-        java: [ 8, 11, 17 ]
-        experimental: [false]
-#        include:
-#          - java: 18-ea
-#            experimental: true
-        
-    steps:
-    - uses: actions/checkout@v3
-    - uses: actions/cache@v3.0.2
-      with:
-        path: ~/.m2/repository
-        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-        restore-keys: |
-          ${{ runner.os }}-maven-
-    - name: Set up JDK ${{ matrix.java }}
-      uses: actions/setup-java@v3
-      with:
-        distribution: 'temurin'
-        java-version: ${{ matrix.java }}
-    - name: Build with Maven
-      run: mvn -V --file pom.xml --no-transfer-progress
+# 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.

+

+name: Java CI

+

+on: [push, pull_request]

+

+jobs:

+  build:

+

+    runs-on: ubuntu-latest

+    continue-on-error: ${{ matrix.experimental }}

+    strategy:

+      matrix:

+        java: [ 8, 11, 17 ]

+        experimental: [false]

+#        include:

+#          - java: 18-ea

+#            experimental: true

+        

+    steps:

+    - uses: actions/checkout@v3

+    - uses: actions/cache@v3.0.3

+      with:

+        path: ~/.m2/repository

+        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}

+        restore-keys: |

+          ${{ runner.os }}-maven-

+    - name: Set up JDK ${{ matrix.java }}

+      uses: actions/setup-java@v3

+      with:

+        distribution: 'temurin'

+        java-version: ${{ matrix.java }}

+    - name: Build with Maven

+      run: mvn -V --file pom.xml --no-transfer-progress

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3701ceb..6754bc3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,407 +1,407 @@
-<?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.6" date="tbd" description="New features and bug fixes">
-      <!-- FIX -->
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 417-423] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 446-450] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 474-478] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION
-      </action>
-      <action type="update" dev="ggregory" due-to="Arturo Bernal">
-        Use EMPTY_STRING_ARRAY constant. #102.
-      </action>
-      <!-- ADD -->
-      <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
-        Add github/codeql-action.
-      </action>
-      <!-- UPDATES -->
-      <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">
-        Bump actions/cache from 2.1.7 to 3.0.2 #97.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Bump actions/setup-java from 2 to 3.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">
-        Bump spotbugs from 4.5.3 to 4.7.0 #96, #107.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #98.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump commons-parent from 52 to 53 #100.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #103.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump maven-javadoc-plugin from 3.3.2 to 3.4.0 #105.
-      </action>
-    </release>
-    <release version="1.5.0" date="10-23-2021" 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.16.0, #44, #54, #67, #92.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump actions/checkout from 2.3.1 to 3 #46, #72, #78, #93.
-      </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.3 #68, #86, #90.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump actions/cache from 2 to 2.1.7 #64, #65, #81.
-      </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.5.3 #70, #88.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump spotbugs-maven-plugin from 4.4.1 to 4.5.3.0 #71, #85, #87.
-      </action>
-      <action type="update" dev="ggregory" due-to="Dependabot">
-        Bump maven-javadoc-plugin from 3.3.1 to 3.3.2, #91.
-      </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>
+<?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.6" date="tbd" description="New features and bug fixes">

+      <!-- FIX -->

+      <action type="update" dev="ggregory" due-to="Gary Gregory">

+        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 417-423] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION

+      </action>

+      <action type="update" dev="ggregory" due-to="Gary Gregory">

+        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 446-450] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION

+      </action>

+      <action type="update" dev="ggregory" due-to="Gary Gregory">

+        Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 474-478] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION

+      </action>

+      <action type="update" dev="ggregory" due-to="Arturo Bernal">

+        Use EMPTY_STRING_ARRAY constant. #102.

+      </action>

+      <!-- ADD -->

+      <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

+        Add github/codeql-action.

+      </action>

+      <!-- UPDATES -->

+      <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">

+        Bump actions/cache from 2.1.7 to 3.0.3 #97.

+      </action>

+      <action type="update" dev="ggregory" due-to="Gary Gregory">

+        Bump actions/setup-java from 2 to 3.

+      </action>

+      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">

+        Bump spotbugs from 4.5.3 to 4.7.0 #96, #107.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump spotbugs-maven-plugin from 4.5.3.0 to 4.6.0.0 #98.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump commons-parent from 52 to 53 #100.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #103.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump maven-javadoc-plugin from 3.3.2 to 3.4.0 #105.

+      </action>

+    </release>

+    <release version="1.5.0" date="10-23-2021" 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.16.0, #44, #54, #67, #92.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump actions/checkout from 2.3.1 to 3 #46, #72, #78, #93.

+      </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.3 #68, #86, #90.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump actions/cache from 2 to 2.1.7 #64, #65, #81.

+      </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.5.3 #70, #88.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump spotbugs-maven-plugin from 4.4.1 to 4.5.3.0 #71, #85, #87.

+      </action>

+      <action type="update" dev="ggregory" due-to="Dependabot">

+        Bump maven-javadoc-plugin from 3.3.1 to 3.3.2, #91.

+      </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>