This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-cli.git


The following commit(s) were added to refs/heads/master by this push:
     new c9698e62 [CLI-333] org.apache.commons.cli.Option.Builder implements 
Supplier<Option>
c9698e62 is described below

commit c9698e622f3e0d2fe1d304056b28c24ff7d02e81
Author: Gary D. Gregory <[email protected]>
AuthorDate: Tue Jul 29 10:52:03 2025 -0400

    [CLI-333] org.apache.commons.cli.Option.Builder implements
    Supplier<Option>
---
 src/changes/changes.xml                            |   3 +-
 src/main/java/org/apache/commons/cli/Option.java   |  15 ++-
 .../apache/commons/cli/PatternOptionBuilder.java   |   4 +-
 .../apache/commons/cli/AbstractParserTestCase.java |   8 +-
 .../org/apache/commons/cli/CommandLineTest.java    |  66 +++++------
 .../org/apache/commons/cli/DefaultParserTest.java  |  44 ++++----
 .../org/apache/commons/cli/HelpFormatterTest.java  |  77 ++++++-------
 .../java/org/apache/commons/cli/OptionTest.java    |  63 ++++++-----
 .../java/org/apache/commons/cli/OptionsTest.java   |  54 ++++-----
 .../java/org/apache/commons/cli/SolrCliTest.java   | 122 ++++++++++-----------
 .../org/apache/commons/cli/SolrCreateToolTest.java |  84 +++++++-------
 .../java/org/apache/commons/cli/ValueTest.java     |   2 +-
 .../org/apache/commons/cli/bug/BugCLI252Test.java  |   4 +-
 .../org/apache/commons/cli/bug/BugCLI265Test.java  |   8 +-
 .../org/apache/commons/cli/bug/BugCLI266Test.java  |  51 ++++-----
 .../org/apache/commons/cli/bug/BugCLI312Test.java  |   8 +-
 .../org/apache/commons/cli/bug/BugCLI325Test.java  |   7 +-
 .../apache/commons/cli/help/HelpFormatterTest.java | 100 ++++++++---------
 .../commons/cli/help/OptionFormatterTest.java      |  54 ++++-----
 19 files changed, 384 insertions(+), 390 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 86c04543..4524d670 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -41,7 +41,8 @@
       <action type="add" issue="CLI-339" dev="ggregory" due-to="Claude Warren, 
Gary Gregory">Help formatter extension in the new package #314.</action>
       <action type="add" dev="ggregory" due-to="Gary 
Gregory">CommandLine.Builder implements Supplier&lt;CommandLine&gt;.</action>
       <action type="add" dev="ggregory" due-to="Gary 
Gregory">DefaultParser.Builder implements 
Supplier&lt;DefaultParser&gt;.</action>
-      <action type="add" issue="CLI-340" dev="ggregory" due-to="Claude Warren, 
Gary Gregory">Add CommandLine.getParsedOptionValues() #334.</action> 
+      <action type="add" issue="CLI-340" dev="ggregory" due-to="Claude Warren, 
Gary Gregory">Add CommandLine.getParsedOptionValues() #334.</action>
+      <action type="add" issue="CLI-333" dev="ggregory" due-to="Claude Warren, 
Gary Gregory">org.apache.commons.cli.Option.Builder implements 
Supplier&lt;Option&gt;.</action>
       <!-- UPDATE -->
       <action type="update" dev="ggregory" due-to="Gary Gregory, 
Dependabot">Bump org.apache.commons:commons-parent from 72 to 85 #302, #304, 
#310, #315, #320, #327, #371.</action>
       <action type="update" dev="ggregory" due-to="Gary Gregory, 
Dependabot">[test] Bump commons-io:commons-io from 2.16.1 to 2.20.0 #309, 
#337.</action>
diff --git a/src/main/java/org/apache/commons/cli/Option.java 
b/src/main/java/org/apache/commons/cli/Option.java
index e725fa3c..3ee0133b 100644
--- a/src/main/java/org/apache/commons/cli/Option.java
+++ b/src/main/java/org/apache/commons/cli/Option.java
@@ -23,6 +23,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.function.Supplier;
 
 /**
  * Describes a single command-line option. It maintains information regarding 
the short-name of the option, the long-name, if any exists, a flag indicating if
@@ -51,7 +52,7 @@ public class Option implements Cloneable, Serializable {
      *
      * @since 1.3
      */
-    public static final class Builder {
+    public static final class Builder implements Supplier<Option> {
 
         /** The default type. */
         private static final Class<String> DEFAULT_TYPE = String.class;
@@ -128,8 +129,20 @@ public class Option implements Cloneable, Serializable {
          *
          * @return the new {@link Option}.
          * @throws IllegalArgumentException if neither {@code opt} or {@code 
longOpt} has been set.
+         * @deprecated Use {@link #get()}.
          */
+        @Deprecated
         public Option build() {
+            return get();
+        }
+
+        /**
+         * Constructs an Option with the values declared by this {@link 
Builder}.
+         *
+         * @return the new {@link Option}.
+         * @throws IllegalArgumentException if neither {@code opt} or {@code 
longOpt} has been set.
+         */
+        public Option get() {
             if (option == null && longOption == null) {
                 throw new IllegalArgumentException("Either opt or longOpt must 
be specified");
             }
diff --git a/src/main/java/org/apache/commons/cli/PatternOptionBuilder.java 
b/src/main/java/org/apache/commons/cli/PatternOptionBuilder.java
index dc11c697..e62ce40b 100644
--- a/src/main/java/org/apache/commons/cli/PatternOptionBuilder.java
+++ b/src/main/java/org/apache/commons/cli/PatternOptionBuilder.java
@@ -191,7 +191,7 @@ public class PatternOptionBuilder {
                             .required(required)
                             .type(type)
                             .converter(converter)
-                            .build();
+                            .get();
                     // @formatter:on
                     // we have a previous one to deal with
                     options.addOption(option);
@@ -213,7 +213,7 @@ public class PatternOptionBuilder {
         }
 
         if (opt != Char.SP) {
-            final Option option = 
Option.builder(String.valueOf(opt)).hasArg(type != 
null).required(required).type(type).build();
+            final Option option = 
Option.builder(String.valueOf(opt)).hasArg(type != 
null).required(required).type(type).get();
 
             // we have a final one to deal with
             options.addOption(option);
diff --git a/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java 
b/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java
index e71ae503..b3e05683 100644
--- a/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java
+++ b/src/test/java/org/apache/commons/cli/AbstractParserTestCase.java
@@ -87,8 +87,8 @@ public abstract class AbstractParserTestCase {
     void testAmbiguousLongWithoutEqualSingleDash2() throws Exception {
         final String[] args = { "-b", "-foobar" };
         final Options options = new Options();
-        
options.addOption(Option.builder().longOpt("foo").option("f").optionalArg(true).build());
-        
options.addOption(Option.builder().longOpt("bar").option("b").optionalArg(false).build());
+        
options.addOption(Option.builder().longOpt("foo").option("f").optionalArg(true).get());
+        
options.addOption(Option.builder().longOpt("bar").option("b").optionalArg(false).get());
         final CommandLine cl = parser.parse(options, args);
         assertTrue(cl.hasOption("b"));
         assertTrue(cl.hasOption("f"));
@@ -380,7 +380,7 @@ public abstract class AbstractParserTestCase {
     @Test
     void testOptionalArgsOptionDotBuilder() throws Exception {
         final Options options = new Options();
-        
options.addOption(Option.builder("i").numberOfArgs(2).optionalArg(true).build());
+        
options.addOption(Option.builder("i").numberOfArgs(2).optionalArg(true).get());
         final Properties properties = new Properties();
 
         CommandLine cmd = parse(parser, options, new String[] { "-i" }, 
properties);
@@ -400,7 +400,7 @@ public abstract class AbstractParserTestCase {
         assertArrayEquals(new String[] { "paper", "scissors" }, 
cmd.getOptionValues("i"));
         assertArrayEquals(new String[] { "rock" }, cmd.getArgs());
 
-        
options.addOption(Option.builder("j").numberOfArgs(3).optionalArg(true).build());
+        
options.addOption(Option.builder("j").numberOfArgs(3).optionalArg(true).get());
         cmd = parse(parser, options, new String[] { "-j" }, properties);
     }
 
diff --git a/src/test/java/org/apache/commons/cli/CommandLineTest.java 
b/src/test/java/org/apache/commons/cli/CommandLineTest.java
index 30125df7..6de605a5 100644
--- a/src/test/java/org/apache/commons/cli/CommandLineTest.java
+++ b/src/test/java/org/apache/commons/cli/CommandLineTest.java
@@ -43,8 +43,8 @@ class CommandLineTest {
 
     private static Stream<Arguments> createHasOptionParameters() throws 
ParseException {
         final List<Arguments> lst = new ArrayList<>();
-        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().optionalArg(true).build();
-        final Option optU = 
Option.builder("U").longOpt("you").optionalArg(true).build();
+        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().optionalArg(true).get();
+        final Option optU = 
Option.builder("U").longOpt("you").optionalArg(true).get();
         final OptionGroup optionGroup = new 
OptionGroup().addOption(optT).addOption(optU);
 
         final String[] foobar = { "foo", "bar" };
@@ -75,8 +75,8 @@ class CommandLineTest {
 
     private static Stream<Arguments> createOptionValueParameters() throws 
ParseException {
         final List<Arguments> lst = new ArrayList<>();
-        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().optionalArg(true).build();
-        final Option optU = 
Option.builder("U").longOpt("you").optionalArg(true).build();
+        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().optionalArg(true).get();
+        final Option optU = 
Option.builder("U").longOpt("you").optionalArg(true).get();
         final OptionGroup optionGroup = new 
OptionGroup().addOption(optT).addOption(optU);
 
         // T set
@@ -106,8 +106,8 @@ class CommandLineTest {
 
     private static Stream<Arguments> createOptionValuesParameters() throws 
ParseException {
         final List<Arguments> lst = new ArrayList<>();
-        final Option optT = 
Option.builder().option("T").longOpt("tee").numberOfArgs(2).deprecated().optionalArg(true).build();
-        final Option optU = 
Option.builder("U").longOpt("you").numberOfArgs(2).optionalArg(true).build();
+        final Option optT = 
Option.builder().option("T").longOpt("tee").numberOfArgs(2).deprecated().optionalArg(true).get();
+        final Option optU = 
Option.builder("U").longOpt("you").numberOfArgs(2).optionalArg(true).get();
         final OptionGroup optionGroup = new 
OptionGroup().addOption(optT).addOption(optU);
 
         final String[] foobar = { "foo", "bar" };
@@ -138,8 +138,8 @@ class CommandLineTest {
 
     private static Stream<Arguments> createParsedOptionValueParameters() 
throws ParseException {
         final List<Arguments> lst = new ArrayList<>();
-        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().type(Integer.class).optionalArg(true).build();
-        final Option optU = 
Option.builder("U").longOpt("you").type(Integer.class).optionalArg(true).build();
+        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().type(Integer.class).optionalArg(true).get();
+        final Option optU = 
Option.builder("U").longOpt("you").type(Integer.class).optionalArg(true).get();
         final OptionGroup optionGroup = new 
OptionGroup().addOption(optT).addOption(optU);
         final Integer expected = Integer.valueOf(1);
 
@@ -170,8 +170,8 @@ class CommandLineTest {
 
     private static Stream<Arguments> createParsedOptionValuesParameters() 
throws ParseException {
         final List<Arguments> lst = new ArrayList<>();
-        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().type(Integer.class).optionalArg(true).hasArgs().build();
-        final Option optU = 
Option.builder("U").longOpt("you").type(Integer.class).optionalArg(true).hasArgs().build();
+        final Option optT = 
Option.builder().option("T").longOpt("tee").deprecated().type(Integer.class).optionalArg(true).hasArgs().get();
+        final Option optU = 
Option.builder("U").longOpt("you").type(Integer.class).optionalArg(true).hasArgs().get();
         final OptionGroup optionGroup = new 
OptionGroup().addOption(optT).addOption(optU);
         final Integer[] expected = {1, 2};
 
@@ -234,8 +234,8 @@ class CommandLineTest {
     void testBadGetParsedOptionValue() throws Exception {
 
         final Options options = new Options();
-        
options.addOption(Option.builder("i").hasArg().type(Number.class).build());
-        options.addOption(Option.builder("c").hasArg().converter(s -> 
Count.valueOf(s.toUpperCase())).build());
+        
options.addOption(Option.builder("i").hasArg().type(Number.class).get());
+        options.addOption(Option.builder("c").hasArg().converter(s -> 
Count.valueOf(s.toUpperCase())).get());
 
         final CommandLineParser parser = new DefaultParser();
         final CommandLine cmd = parser.parse(options, new String[] {"-i", 
"foo", "-c", "bar"});
@@ -250,7 +250,7 @@ class CommandLineTest {
         final CommandLine cmd = CommandLine.builder()
                 .addArg("foo")
                 .addArg("bar")
-                .addOption(Option.builder("T").build())
+                .addOption(Option.builder("T").get())
                 .build();
         // @formatter:on
         assertEquals("foo", cmd.getArgs()[0]);
@@ -264,7 +264,7 @@ class CommandLineTest {
         final CommandLine cmd = CommandLine.builder()
                 .addArg("foo")
                 .addArg("bar")
-                .addOption(Option.builder("T").build())
+                .addOption(Option.builder("T").get())
                 .get();
         // @formatter:on
         assertEquals("foo", cmd.getArgs()[0]);
@@ -276,7 +276,7 @@ class CommandLineTest {
     void testBuilderNullArgs() {
         final CommandLine.Builder builder = CommandLine.builder();
         builder.addArg(null).addArg(null);
-        builder.addOption(Option.builder("T").build());
+        builder.addOption(Option.builder("T").get());
         final CommandLine cmd = builder.build();
 
         assertEquals(0, cmd.getArgs().length);
@@ -302,8 +302,8 @@ class CommandLineTest {
         final String[] args = {"-Dparam1=value1", "-Dparam2=value2", 
"-Dparam3", "-Dparam4=value4", "-D", "--property", "foo=bar"};
 
         final Options options = new Options();
-        
options.addOption(Option.builder("D").valueSeparator().optionalArg(true).numberOfArgs(2).build());
-        
options.addOption(Option.builder().valueSeparator().numberOfArgs(2).longOpt("property").build());
+        
options.addOption(Option.builder("D").valueSeparator().optionalArg(true).numberOfArgs(2).get());
+        
options.addOption(Option.builder().valueSeparator().numberOfArgs(2).longOpt("property").get());
 
         final Parser parser = new GnuParser();
         final CommandLine cl = parser.parse(options, args);
@@ -324,8 +324,8 @@ class CommandLineTest {
         final String[] args = {"-Dparam1=value1", "-Dparam2=value2", 
"-Dparam3", "-Dparam4=value4", "-D", "--property", "foo=bar"};
 
         final Options options = new Options();
-        final Option optionD = 
Option.builder("D").valueSeparator().numberOfArgs(2).optionalArg(true).build();
-        final Option optionProperty = 
Option.builder().valueSeparator().numberOfArgs(2).longOpt("property").build();
+        final Option optionD = 
Option.builder("D").valueSeparator().numberOfArgs(2).optionalArg(true).get();
+        final Option optionProperty = 
Option.builder().valueSeparator().numberOfArgs(2).longOpt("property").get();
         options.addOption(optionD);
         options.addOption(optionProperty);
 
@@ -392,8 +392,8 @@ class CommandLineTest {
         final List<Option> handler = new ArrayList<>();
         final CommandLine commandLine = 
DefaultParser.builder().setDeprecatedHandler(handler::add).get().parse(options, 
args);
         final Supplier<String> thinger = () -> "thing";
-        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
         final OptionGroup nullGroup = null;
 
         // test char option
@@ -497,8 +497,8 @@ class CommandLineTest {
         final Options options = new Options().addOptionGroup(optionGroup);
         final List<Option> handler = new ArrayList<>();
         final CommandLine commandLine = 
DefaultParser.builder().setDeprecatedHandler(handler::add).get().parse(options, 
args);
-        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
         final OptionGroup nullGroup = null;
 
         // test char option arg
@@ -542,8 +542,8 @@ class CommandLineTest {
         final List<Option> handler = new ArrayList<>();
         final CommandLine commandLine = 
DefaultParser.builder().setDeprecatedHandler(handler::add).get().parse(options, 
args);
         final Supplier<Integer> thinger = () -> 2;
-        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
         final OptionGroup nullGroup = null;
         final Integer thing = 2;
 
@@ -636,8 +636,8 @@ class CommandLineTest {
         final List<Option> handler = new ArrayList<>();
         final CommandLine commandLine = 
DefaultParser.builder().setDeprecatedHandler(handler::add).get().parse(options, 
args);
         final Supplier<Integer[]> thinger = () -> new Integer[]{2, 3};
-        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
         final OptionGroup nullGroup = null;
         final Integer[] thing = {2, 3};
 
@@ -741,8 +741,8 @@ class CommandLineTest {
         final Options options = new Options().addOptionGroup(optionGroup);
         final List<Option> handler = new ArrayList<>();
         final CommandLine commandLine = 
DefaultParser.builder().setDeprecatedHandler(handler::add).get().parse(options, 
args);
-        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+        final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
         final OptionGroup nullGroup = null;
 
         // test char option arg
@@ -893,8 +893,8 @@ class CommandLineTest {
         try {
             System.setOut(new PrintStream(baos));
 
-            final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().build())
-                    
.addOption(Option.builder().option("p").longOpt("part").hasArg().build());
+            final OptionGroup otherGroup = new 
OptionGroup().addOption(Option.builder("o").longOpt("other").hasArg().get())
+                    
.addOption(Option.builder().option("p").longOpt("part").hasArg().get());
             final OptionGroup nullGroup = null;
 
             // test char option
@@ -1008,8 +1008,8 @@ class CommandLineTest {
     @Test
     void testNullOption() throws Exception {
         final Options options = new Options();
-        final Option optI = 
Option.builder("i").hasArg().type(Number.class).build();
-        final Option optF = Option.builder("f").hasArg().build();
+        final Option optI = 
Option.builder("i").hasArg().type(Number.class).get();
+        final Option optF = Option.builder("f").hasArg().get();
         options.addOption(optI);
         options.addOption(optF);
         final CommandLineParser parser = new DefaultParser();
diff --git a/src/test/java/org/apache/commons/cli/DefaultParserTest.java 
b/src/test/java/org/apache/commons/cli/DefaultParserTest.java
index 59093fec..c162323f 100644
--- a/src/test/java/org/apache/commons/cli/DefaultParserTest.java
+++ b/src/test/java/org/apache/commons/cli/DefaultParserTest.java
@@ -176,14 +176,14 @@ class DefaultParserTest extends AbstractParserTestCase {
     void testDeprecated() throws ParseException {
         final Set<Option> handler = new HashSet<>();
         parser = 
DefaultParser.builder().setDeprecatedHandler(handler::add).build();
-        final Option opt1 = Option.builder().option("d1").deprecated().build();
+        final Option opt1 = Option.builder().option("d1").deprecated().get();
         // @formatter:off
         final Option opt2 = 
Option.builder().option("d2").deprecated(DeprecatedAttributes.builder()
-                .setForRemoval(true)
-                .setSince("1.0")
-                .setDescription("Do this instead.").get()).build();
+        .setForRemoval(true)
+        .setSince("1.0")
+        .setDescription("Do this instead.").get()).get();
         // @formatter:on
-        final Option opt3 = Option.builder().option("a").build();
+        final Option opt3 = Option.builder().option("a").get();
         // @formatter:off
         final CommandLine cl = parser.parse(new Options()
                 .addOption(opt1)
@@ -203,9 +203,9 @@ class DefaultParserTest extends AbstractParserTestCase {
 
     @Test
     void testLegacyStopAtNonOption() throws ParseException {
-        final Option a = 
Option.builder().option("a").longOpt("first-letter").build();
-        final Option b = 
Option.builder().option("b").longOpt("second-letter").build();
-        final Option c = 
Option.builder().option("c").longOpt("third-letter").build();
+        final Option a = 
Option.builder().option("a").longOpt("first-letter").get();
+        final Option b = 
Option.builder().option("b").longOpt("second-letter").get();
+        final Option c = 
Option.builder().option("c").longOpt("third-letter").get();
 
         final Options options = new Options();
         options.addOption(a);
@@ -244,10 +244,10 @@ class DefaultParserTest extends AbstractParserTestCase {
 
     @Test
     void testParseIgnoreHappyPath() throws ParseException {
-        final Option a = 
Option.builder().option("a").longOpt("first-letter").build();
-        final Option b = 
Option.builder().option("b").longOpt("second-letter").build();
-        final Option c = 
Option.builder().option("c").longOpt("third-letter").build();
-        final Option d = 
Option.builder().option("d").longOpt("fourth-letter").build();
+        final Option a = 
Option.builder().option("a").longOpt("first-letter").get();
+        final Option b = 
Option.builder().option("b").longOpt("second-letter").get();
+        final Option c = 
Option.builder().option("c").longOpt("third-letter").get();
+        final Option d = 
Option.builder().option("d").longOpt("fourth-letter").get();
 
         final Options baseOptions = new Options();
         baseOptions.addOption(a);
@@ -293,9 +293,9 @@ class DefaultParserTest extends AbstractParserTestCase {
 
     @Test
     void testParseIgnoreNonHappyPath() throws ParseException {
-        final Option a = 
Option.builder().option("a").longOpt("first-letter").build();
-        final Option b = 
Option.builder().option("b").longOpt("second-letter").build();
-        final Option c = 
Option.builder().option("c").longOpt("third-letter").build();
+        final Option a = 
Option.builder().option("a").longOpt("first-letter").get();
+        final Option b = 
Option.builder().option("b").longOpt("second-letter").get();
+        final Option c = 
Option.builder().option("c").longOpt("third-letter").get();
 
         final Options baseOptions = new Options();
         baseOptions.addOption(a);
@@ -326,10 +326,10 @@ class DefaultParserTest extends AbstractParserTestCase {
 
     @Test
     void testParseSkipHappyPath() throws ParseException {
-        final Option a = 
Option.builder().option("a").longOpt("first-letter").build();
-        final Option b = 
Option.builder().option("b").longOpt("second-letter").build();
-        final Option c = 
Option.builder().option("c").longOpt("third-letter").build();
-        final Option d = 
Option.builder().option("d").longOpt("fourth-letter").build();
+        final Option a = 
Option.builder().option("a").longOpt("first-letter").get();
+        final Option b = 
Option.builder().option("b").longOpt("second-letter").get();
+        final Option c = 
Option.builder().option("c").longOpt("third-letter").get();
+        final Option d = 
Option.builder().option("d").longOpt("fourth-letter").get();
 
         final Options baseOptions = new Options();
         baseOptions.addOption(a);
@@ -375,9 +375,9 @@ class DefaultParserTest extends AbstractParserTestCase {
 
     @Test
     void testParseSkipNonHappyPath() throws ParseException {
-        final Option a = 
Option.builder().option("a").longOpt("first-letter").build();
-        final Option b = 
Option.builder().option("b").longOpt("second-letter").build();
-        final Option c = 
Option.builder().option("c").longOpt("third-letter").build();
+        final Option a = 
Option.builder().option("a").longOpt("first-letter").get();
+        final Option b = 
Option.builder().option("b").longOpt("second-letter").get();
+        final Option c = 
Option.builder().option("c").longOpt("third-letter").get();
 
         final Options baseOptions = new Options();
         baseOptions.addOption(a);
diff --git a/src/test/java/org/apache/commons/cli/HelpFormatterTest.java 
b/src/test/java/org/apache/commons/cli/HelpFormatterTest.java
index de8c288f..d9b59775 100644
--- a/src/test/java/org/apache/commons/cli/HelpFormatterTest.java
+++ b/src/test/java/org/apache/commons/cli/HelpFormatterTest.java
@@ -52,9 +52,8 @@ class HelpFormatterTest {
     static Stream<Arguments> deprecatedOptionsProvider() {
         final List<Arguments> lst = new ArrayList<>();
         Option option = Option.builder("a").longOpt("aaa").desc("dddd dddd 
dddd")
-                
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now")
-                        .setDescription("Why why why").get())
-                .build();
+        
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now")
+                .setDescription("Why why why").get()).get();
 
         HelpFormatter hf = HelpFormatter.builder().get();
         lst.add(Arguments.of(hf, option, "[Deprecated] dddd dddd dddd"));
@@ -69,9 +68,8 @@ class HelpFormatterTest {
         lst.add(Arguments.of(hf, option, "dddd dddd dddd [Deprecated for 
removal since now: Why why why]"));
 
         option = Option.builder("a").longOpt("aaa")
-                
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now")
-                        .setDescription("Why why why").get())
-                .build();
+        
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now")
+                .setDescription("Why why why").get()).get();
 
         hf = HelpFormatter.builder().get();
         lst.add(Arguments.of(hf, option, "[Deprecated]"));
@@ -141,7 +139,7 @@ class HelpFormatterTest {
 
     @Test
     void testDefaultArgName() {
-        final Option option = 
Option.builder("f").hasArg().required(true).build();
+        final Option option = 
Option.builder("f").hasArg().required(true).get();
 
         final Options options = new Options();
         options.addOption(option);
@@ -297,8 +295,8 @@ class HelpFormatterTest {
     void testHelpWithLongOptSeparator() {
         final Options options = new Options();
         options.addOption("f", true, "the file");
-        options.addOption(Option.builder("s").longOpt("size").desc("the 
size").hasArg().argName("SIZE").build());
-        options.addOption(Option.builder().longOpt("age").desc("the 
age").hasArg().build());
+        options.addOption(Option.builder("s").longOpt("size").desc("the 
size").hasArg().argName("SIZE").get());
+        options.addOption(Option.builder().longOpt("age").desc("the 
age").hasArg().get());
 
         final HelpFormatter formatter = new HelpFormatter();
         assertEquals(HelpFormatter.DEFAULT_LONG_OPT_SEPARATOR, 
formatter.getLongOptSeparator());
@@ -372,31 +370,26 @@ class HelpFormatterTest {
         final Option trackerRun = new Option("t", "tracker", false, "Create 
NLT cache entries only for tracker items");
         //@formatter:off
         final Option timeLimit = Option.builder("l")
-                .longOpt("limit")
-                .hasArg()
-                .valueSeparator()
-                .desc("Set time limit for execution, in mintues")
-                .build();
+        .longOpt("limit")
+        .hasArg()
+        .valueSeparator()
+        .desc("Set time limit for execution, in mintues").get();
         final Option age = Option.builder("a").longOpt("age")
-                .hasArg()
-                .valueSeparator()
-                .desc("Age (in days) of cache item before being recomputed")
-                .build();
+        .hasArg()
+        .valueSeparator()
+        .desc("Age (in days) of cache item before being recomputed").get();
         final Option server = Option.builder("s").longOpt("server")
-                .hasArg()
-                .valueSeparator()
-                .desc("The NLT server address")
-                .build();
+        .hasArg()
+        .valueSeparator()
+        .desc("The NLT server address").get();
         final Option numResults = Option.builder("r").longOpt("results")
-                .hasArg()
-                .valueSeparator()
-                .desc("Number of results per item")
-                .build();
+        .hasArg()
+        .valueSeparator()
+        .desc("Number of results per item").get();
         final Option configFile = Option.builder().longOpt("config")
-                .hasArg()
-                .valueSeparator()
-                .desc("Use the specified configuration file")
-                .build();
+        .hasArg()
+        .valueSeparator()
+        .desc("Use the specified configuration file").get();
         //@formatter:on
 
         final Options mOptions = new Options();
@@ -522,8 +515,8 @@ class HelpFormatterTest {
         final String [] expected = {"usage: Command syntax", "Header", 
"Options            Since   Description",
                 "  -n,--no-since    -          Description for n", "  
-W,--with-since  1.19.0     Descripton for W", "footer"};
         final Options options = new Options()
-                
.addOption(Option.builder("W").longOpt("with-since").since("1.19.0").desc("Descripton
 for W").build())
-                
.addOption(Option.builder("n").longOpt("no-since").desc("Description for 
n").build());
+                
.addOption(Option.builder("W").longOpt("with-since").since("1.19.0").desc("Descripton
 for W").get())
+                
.addOption(Option.builder("n").longOpt("no-since").desc("Description for 
n").get());
 
         final HelpFormatter formatter = 
HelpFormatter.builder().setShowSince(true).get();
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -536,9 +529,9 @@ class HelpFormatterTest {
     @Test
     void testPrintOptionGroupUsage() {
         final OptionGroup group = new OptionGroup();
-        group.addOption(Option.builder("a").build());
-        group.addOption(Option.builder("b").build());
-        group.addOption(Option.builder("c").build());
+        group.addOption(Option.builder("a").get());
+        group.addOption(Option.builder("b").get());
+        group.addOption(Option.builder("c").get());
 
         final Options options = new Options();
         options.addOptionGroup(group);
@@ -613,9 +606,9 @@ class HelpFormatterTest {
     @Test
     void testPrintRequiredOptionGroupUsage() {
         final OptionGroup group = new OptionGroup();
-        group.addOption(Option.builder("a").build());
-        group.addOption(Option.builder("b").build());
-        group.addOption(Option.builder("c").build());
+        group.addOption(Option.builder("a").get());
+        group.addOption(Option.builder("b").get());
+        group.addOption(Option.builder("c").get());
         group.setRequired(true);
 
         final Options options = new Options();
@@ -686,8 +679,8 @@ class HelpFormatterTest {
         final String[] expected = {"Options            Since   Description", " 
 -n,--no-since    -          Description for n",
             "  -W,--with-since  1.19.0     Descripton for W"};
         final Options options = new Options()
-                
.addOption(Option.builder("W").longOpt("with-since").since("1.19.0").desc("Descripton
 for W").build())
-                
.addOption(Option.builder("n").longOpt("no-since").desc("Description for 
n").build());
+                
.addOption(Option.builder("W").longOpt("with-since").since("1.19.0").desc("Descripton
 for W").get())
+                
.addOption(Option.builder("n").longOpt("no-since").desc("Description for 
n").get());
         final HelpFormatter formatter = 
HelpFormatter.builder().setShowSince(true).get();
 
         final StringBuffer sb = new StringBuffer();
@@ -808,8 +801,8 @@ class HelpFormatterTest {
     void testUsageWithLongOptSeparator() {
         final Options options = new Options();
         options.addOption("f", true, "the file");
-        options.addOption(Option.builder("s").longOpt("size").desc("the 
size").hasArg().argName("SIZE").build());
-        options.addOption(Option.builder().longOpt("age").desc("the 
age").hasArg().build());
+        options.addOption(Option.builder("s").longOpt("size").desc("the 
size").hasArg().argName("SIZE").get());
+        options.addOption(Option.builder().longOpt("age").desc("the 
age").hasArg().get());
 
         final HelpFormatter formatter = new HelpFormatter();
         formatter.setLongOptSeparator("=");
diff --git a/src/test/java/org/apache/commons/cli/OptionTest.java 
b/src/test/java/org/apache/commons/cli/OptionTest.java
index 01a24ff7..d902a881 100644
--- a/src/test/java/org/apache/commons/cli/OptionTest.java
+++ b/src/test/java/org/apache/commons/cli/OptionTest.java
@@ -108,23 +108,28 @@ class OptionTest {
     }
 
     @Test
-    void testBuilderEmpty() {
+    void testBuilderDeprecatedBuildEmpty() {
         assertThrows(IllegalArgumentException.class, () -> 
Option.builder().build());
     }
 
+    @Test
+    void testBuilderEmpty() {
+        assertThrows(IllegalArgumentException.class, () -> 
Option.builder().get());
+    }
+
     @Test
     void testBuilderInsufficientParams1() {
-        assertThrows(IllegalArgumentException.class, () -> 
Option.builder().desc("desc").build());
+        assertThrows(IllegalArgumentException.class, () -> 
Option.builder().desc("desc").get());
     }
 
     @Test
     void testBuilderInsufficientParams2() {
-        assertThrows(IllegalArgumentException.class, () -> 
Option.builder(null).desc("desc").build());
+        assertThrows(IllegalArgumentException.class, () -> 
Option.builder(null).desc("desc").get());
     }
 
     @Test
     void testBuilderInvalidOptionName0() {
-        assertThrows(IllegalArgumentException.class, () -> 
Option.builder().option(null).build());
+        assertThrows(IllegalArgumentException.class, () -> 
Option.builder().option(null).get());
         assertThrows(IllegalArgumentException.class, () -> 
Option.builder().option(""));
         assertThrows(IllegalArgumentException.class, () -> 
Option.builder().option(" "));
     }
@@ -153,53 +158,53 @@ class OptionTest {
     void testBuilderMethods() {
         final char defaultSeparator = (char) 0;
 
-        checkOption(Option.builder("a").desc("desc").build(), "a", "desc", 
null, Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class, 
null,
+        checkOption(Option.builder("a").desc("desc").get(), "a", "desc", null, 
Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class, null,
                 null, null);
-        checkOption(Option.builder("a").desc("desc").build(), "a", "desc", 
null, Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class, 
null,
+        checkOption(Option.builder("a").desc("desc").get(), "a", "desc", null, 
Option.UNINITIALIZED, null, false, false, defaultSeparator, String.class, null,
                 null, null);
-        checkOption(Option.builder("a").desc("desc").longOpt("aaa").build(), 
"a", "desc", "aaa", Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").longOpt("aaa").get(), 
"a", "desc", "aaa", Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 String.class, null, null, null);
-        checkOption(Option.builder("a").desc("desc").hasArg(true).build(), 
"a", "desc", null, 1, null, false, false, defaultSeparator, String.class, null, 
null,
+        checkOption(Option.builder("a").desc("desc").hasArg(true).get(), "a", 
"desc", null, 1, null, false, false, defaultSeparator, String.class, null, null,
                 null);
-        checkOption(Option.builder("a").desc("desc").hasArg(false).build(), 
"a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").hasArg(false).get(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 String.class, null, null, null);
-        checkOption(Option.builder("a").desc("desc").hasArg(true).build(), 
"a", "desc", null, 1, null, false, false, defaultSeparator, String.class, null, 
null,
+        checkOption(Option.builder("a").desc("desc").hasArg(true).get(), "a", 
"desc", null, 1, null, false, false, defaultSeparator, String.class, null, null,
                 null);
-        checkOption(Option.builder("a").desc("desc").numberOfArgs(3).build(), 
"a", "desc", null, 3, null, false, false, defaultSeparator, String.class, null,
+        checkOption(Option.builder("a").desc("desc").numberOfArgs(3).get(), 
"a", "desc", null, 3, null, false, false, defaultSeparator, String.class, null,
                 null, null);
-        checkOption(Option.builder("a").desc("desc").required(true).build(), 
"a", "desc", null, Option.UNINITIALIZED, null, true, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").required(true).get(), 
"a", "desc", null, Option.UNINITIALIZED, null, true, false, defaultSeparator,
                 String.class, null, null, null);
-        checkOption(Option.builder("a").desc("desc").required(false).build(), 
"a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").required(false).get(), 
"a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 String.class, null, null, null);
 
-        checkOption(Option.builder("a").desc("desc").argName("arg1").build(), 
"a", "desc", null, Option.UNINITIALIZED, "arg1", false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").argName("arg1").get(), 
"a", "desc", null, Option.UNINITIALIZED, "arg1", false, false, defaultSeparator,
                 String.class, null, null, null);
-        
checkOption(Option.builder("a").desc("desc").optionalArg(false).build(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").optionalArg(false).get(), 
"a", "desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 String.class, null, null, null);
-        
checkOption(Option.builder("a").desc("desc").optionalArg(true).build(), "a", 
"desc", null, 1, null, false, true, defaultSeparator, String.class, null,
+        checkOption(Option.builder("a").desc("desc").optionalArg(true).get(), 
"a", "desc", null, 1, null, false, true, defaultSeparator, String.class, null,
                 null, null);
-        
checkOption(Option.builder("a").desc("desc").valueSeparator(':').build(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, ':',
+        
checkOption(Option.builder("a").desc("desc").valueSeparator(':').get(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, ':',
                 String.class, null, null, null);
-        
checkOption(Option.builder("a").desc("desc").type(Integer.class).build(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        
checkOption(Option.builder("a").desc("desc").type(Integer.class).get(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 Integer.class, null, null, null);
-        checkOption(Option.builder("a").desc("desc").type(null).build(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
+        checkOption(Option.builder("a").desc("desc").type(null).get(), "a", 
"desc", null, Option.UNINITIALIZED, null, false, false, defaultSeparator,
                 String.class, null, null, null);
-        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).build(),
 "a", "desc", null, Option.UNINITIALIZED, null, false, false,
+        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).get(),
 "a", "desc", null, Option.UNINITIALIZED, null, false, false,
                 defaultSeparator, Integer.class, null, null, null);
         // Deprecated
-        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated().build(),
 "a", "desc", null, Option.UNINITIALIZED, null, false,
+        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated().get(),
 "a", "desc", null, Option.UNINITIALIZED, null, false,
                 false, defaultSeparator, Integer.class, "", false, "");
-        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated(DeprecatedAttributes.builder().get()).build(),
 "a", "desc", null,
+        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated(DeprecatedAttributes.builder().get()).get(),
 "a", "desc", null,
                 Option.UNINITIALIZED, null, false, false, defaultSeparator, 
Integer.class, "", false, "");
-        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated(DeprecatedAttributes.builder().setDescription("X").get()).build(),
+        
checkOption(Option.builder().option("a").desc("desc").type(Integer.class).deprecated(DeprecatedAttributes.builder().setDescription("X").get()).get(),
                 "a", "desc", null, Option.UNINITIALIZED, null, false, false, 
defaultSeparator, Integer.class, "X", false, "");
         checkOption(
                 Option.builder().option("a").desc("desc").type(Integer.class)
-                        
.deprecated(DeprecatedAttributes.builder().setDescription("X").setForRemoval(true).get()).build(),
+                
.deprecated(DeprecatedAttributes.builder().setDescription("X").setForRemoval(true).get()).get(),
                 "a", "desc", null, Option.UNINITIALIZED, null, false, false, 
defaultSeparator, Integer.class, "X", true, "");
         checkOption(
                 Option.builder().option("a").desc("desc").type(Integer.class)
-                        
.deprecated(DeprecatedAttributes.builder().setDescription("X").setForRemoval(true).setSince("2.0").get()).build(),
+                
.deprecated(DeprecatedAttributes.builder().setDescription("X").setForRemoval(true).setSince("2.0").get()).get(),
                 "a", "desc", null, Option.UNINITIALIZED, null, false, false, 
defaultSeparator, Integer.class, "X", true, "2.0");
     }
 
@@ -295,9 +300,9 @@ class OptionTest {
 
     @Test
     void testHashCode() {
-        assertNotEquals(Option.builder("test").build().hashCode(), 
Option.builder("test2").build().hashCode());
-        assertNotEquals(Option.builder("test").build().hashCode(), 
Option.builder().longOpt("test").build().hashCode());
-        assertNotEquals(Option.builder("test").build().hashCode(), 
Option.builder("test").longOpt("long test").build().hashCode());
+        assertNotEquals(Option.builder("test").get().hashCode(), 
Option.builder("test2").get().hashCode());
+        assertNotEquals(Option.builder("test").get().hashCode(), 
Option.builder().longOpt("test").get().hashCode());
+        assertNotEquals(Option.builder("test").get().hashCode(), 
Option.builder("test").longOpt("long test").get().hashCode());
     }
 
     @Test
@@ -310,7 +315,7 @@ class OptionTest {
 
     @Test
     void testSerialization() throws IOException, ClassNotFoundException {
-        final Option option = 
Option.builder("o").type(TypeHandlerTest.Instantiable.class).build();
+        final Option option = 
Option.builder("o").type(TypeHandlerTest.Instantiable.class).get();
         assertEquals(Converter.DEFAULT, option.getConverter());
         Option roundtrip = roundTrip(option);
         assertEquals(Converter.DEFAULT, roundtrip.getConverter());
diff --git a/src/test/java/org/apache/commons/cli/OptionsTest.java 
b/src/test/java/org/apache/commons/cli/OptionsTest.java
index 01ab716d..b0cf553a 100644
--- a/src/test/java/org/apache/commons/cli/OptionsTest.java
+++ b/src/test/java/org/apache/commons/cli/OptionsTest.java
@@ -47,17 +47,17 @@ class OptionsTest {
     void testAddConflictingOptions() {
         final Options options1 = new Options();
         final OptionGroup group1 = new OptionGroup();
-        group1.addOption(Option.builder("a").build());
-        group1.addOption(Option.builder("b").build());
+        group1.addOption(Option.builder("a").get());
+        group1.addOption(Option.builder("b").get());
         options1.addOptionGroup(group1);
-        options1.addOption(Option.builder("x").build());
-        options1.addOption(Option.builder("y").build());
+        options1.addOption(Option.builder("x").get());
+        options1.addOption(Option.builder("y").get());
         final Options options2 = new Options();
         final OptionGroup group2 = new OptionGroup();
-        group2.addOption(Option.builder("x").type(Integer.class).build());
-        group2.addOption(Option.builder("b").type(Integer.class).build());
+        group2.addOption(Option.builder("x").type(Integer.class).get());
+        group2.addOption(Option.builder("b").type(Integer.class).get());
         options2.addOptionGroup(group2);
-        options2.addOption(Option.builder("c").build());
+        options2.addOption(Option.builder("c").get());
         assertThrows(IllegalArgumentException.class, () -> 
options1.addOptions(options2));
     }
 
@@ -65,19 +65,19 @@ class OptionsTest {
     void testAddNonConflictingOptions() {
         final Options options1 = new Options();
         final OptionGroup group1 = new OptionGroup();
-        group1.addOption(Option.builder("a").build());
-        group1.addOption(Option.builder("b").build());
+        group1.addOption(Option.builder("a").get());
+        group1.addOption(Option.builder("b").get());
         options1.addOptionGroup(group1);
-        options1.addOption(Option.builder("x").build());
-        options1.addOption(Option.builder("y").build());
+        options1.addOption(Option.builder("x").get());
+        options1.addOption(Option.builder("y").get());
 
         final Options options2 = new Options();
         final OptionGroup group2 = new OptionGroup();
-        group2.addOption(Option.builder("c").type(Integer.class).build());
-        group2.addOption(Option.builder("d").type(Integer.class).build());
+        group2.addOption(Option.builder("c").type(Integer.class).get());
+        group2.addOption(Option.builder("d").type(Integer.class).get());
         options2.addOptionGroup(group2);
-        options1.addOption(Option.builder("e").build());
-        options1.addOption(Option.builder("f").build());
+        options1.addOption(Option.builder("e").get());
+        options1.addOption(Option.builder("f").get());
 
         final Options underTest = new Options();
         underTest.addOptions(options1);
@@ -96,13 +96,13 @@ class OptionsTest {
         final Options options = new Options();
 
         final OptionGroup group1 = new OptionGroup();
-        group1.addOption(Option.builder("a").build());
-        group1.addOption(Option.builder("b").build());
+        group1.addOption(Option.builder("a").get());
+        group1.addOption(Option.builder("b").get());
 
         options.addOptionGroup(group1);
 
-        options.addOption(Option.builder("X").build());
-        options.addOption(Option.builder("y").build());
+        options.addOption(Option.builder("X").get());
+        options.addOption(Option.builder("y").get());
 
         final Options underTest = new Options();
         underTest.addOptions(options);
@@ -116,13 +116,13 @@ class OptionsTest {
         final Options options = new Options();
 
         final OptionGroup group1 = new OptionGroup();
-        group1.addOption(Option.builder("a").build());
-        group1.addOption(Option.builder("b").build());
+        group1.addOption(Option.builder("a").get());
+        group1.addOption(Option.builder("b").get());
 
         options.addOptionGroup(group1);
 
-        options.addOption(Option.builder("X").build());
-        options.addOption(Option.builder("y").build());
+        options.addOption(Option.builder("X").get());
+        options.addOption(Option.builder("y").get());
 
         assertThrows(IllegalArgumentException.class, () -> 
options.addOptions(options));
     }
@@ -130,11 +130,11 @@ class OptionsTest {
     @Test
     void testDeprecated() {
         final Options options = new Options();
-        options.addOption(Option.builder().option("a").build());
-        options.addOption(Option.builder().option("b").deprecated().build());
+        options.addOption(Option.builder().option("a").get());
+        options.addOption(Option.builder().option("b").deprecated().get());
         options.addOption(Option.builder().option("c")
-                
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("2.0").setDescription("Use
 X.").get()).build());
-        
options.addOption(Option.builder().option("d").deprecated().longOpt("longD").hasArgs().build());
+        
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("2.0").setDescription("Use
 X.").get()).get());
+        
options.addOption(Option.builder().option("d").deprecated().longOpt("longD").hasArgs().get());
         // toString()
         assertTrue(options.getOption("a").toString().startsWith("[ Option a"));
         assertTrue(options.getOption("b").toString().startsWith("[ Option b"));
diff --git a/src/test/java/org/apache/commons/cli/SolrCliTest.java 
b/src/test/java/org/apache/commons/cli/SolrCliTest.java
index 76ec6dce..ab5f8871 100644
--- a/src/test/java/org/apache/commons/cli/SolrCliTest.java
+++ b/src/test/java/org/apache/commons/cli/SolrCliTest.java
@@ -36,106 +36,98 @@ class SolrCliTest {
     public static final Option OPTION_ZKHOST_DEPRECATED =
     // @formatter:off
         Option.builder("zkHost")
-            .longOpt("zkHost")
-            .deprecated(
-                DeprecatedAttributes.builder()
-                    .setForRemoval(true)
-                    .setSince("9.6")
-                    .setDescription("Use --zk-host instead")
-                    .get())
-            .argName("HOST")
-            .hasArg()
-            .required(false)
-            .desc("Zookeeper connection string; unnecessary if ZK_HOST is 
defined in solr.in.sh; otherwise, defaults to "
-                    + ZK_HOST
-                    + '.')
-            .build();
+    .longOpt("zkHost")
+    .deprecated(
+        DeprecatedAttributes.builder()
+            .setForRemoval(true)
+            .setSince("9.6")
+            .setDescription("Use --zk-host instead")
+            .get())
+    .argName("HOST")
+    .hasArg()
+    .required(false)
+    .desc("Zookeeper connection string; unnecessary if ZK_HOST is defined in 
solr.in.sh; otherwise, defaults to "
+            + ZK_HOST
+            + '.').get();
     // @formatter:on
 
     public static final Option OPTION_ZKHOST =
     // @formatter:off
         Option.builder("z")
-            .longOpt("zk-host")
-            .argName("HOST")
-            .hasArg()
-            .required(false)
-            .desc("Zookeeper connection string; unnecessary if ZK_HOST is 
defined in solr.in.sh; otherwise, defaults to "
-                    + ZK_HOST
-                    + '.')
-            .build();
+    .longOpt("zk-host")
+    .argName("HOST")
+    .hasArg()
+    .required(false)
+    .desc("Zookeeper connection string; unnecessary if ZK_HOST is defined in 
solr.in.sh; otherwise, defaults to "
+            + ZK_HOST
+            + '.').get();
     // @formatter:on
 
     public static final Option OPTION_SOLRURL_DEPRECATED =
     // @formatter:off
         Option.builder("solrUrl")
-            .longOpt("solrUrl")
-            .deprecated(
-                DeprecatedAttributes.builder()
-                    .setForRemoval(true)
-                    .setSince("9.6")
-                    .setDescription("Use --solr-url instead")
-                    .get())
-            .argName("HOST")
-            .hasArg()
-            .required(false)
-            .desc("Base Solr URL, which can be used to determine the zk-host 
if that's not known; defaults to: "
-                    + getDefaultSolrUrl()
-                    + '.')
-            .build();
+    .longOpt("solrUrl")
+    .deprecated(
+        DeprecatedAttributes.builder()
+            .setForRemoval(true)
+            .setSince("9.6")
+            .setDescription("Use --solr-url instead")
+            .get())
+    .argName("HOST")
+    .hasArg()
+    .required(false)
+    .desc("Base Solr URL, which can be used to determine the zk-host if that's 
not known; defaults to: "
+            + getDefaultSolrUrl()
+            + '.').get();
     // @formatter:on
 
     public static final Option OPTION_SOLRURL =
     // @formatter:off
         Option.builder("url")
-            .longOpt("solr-url")
-            .argName("HOST")
-            .hasArg()
-            .required(false)
-            .desc("Base Solr URL, which can be used to determine the zk-host 
if that's not known; defaults to: "
-                    + getDefaultSolrUrl()
-                    + '.')
-            .build();
+    .longOpt("solr-url")
+    .argName("HOST")
+    .hasArg()
+    .required(false)
+    .desc("Base Solr URL, which can be used to determine the zk-host if that's 
not known; defaults to: "
+            + getDefaultSolrUrl()
+            + '.').get();
     // @formatter:on
 
     public static final Option OPTION_VERBOSE =
     // @formatter:off
         Option.builder("v")
-            .longOpt("verbose")
-            .argName("verbose")
-            .required(false)
-            .desc("Enable more verbose command output.")
-            .build();
+    .longOpt("verbose")
+    .argName("verbose")
+    .required(false)
+    .desc("Enable more verbose command output.").get();
     // @formatter:on
 
     public static final Option OPTION_HELP =
     // @formatter:off
         Option.builder("h")
-            .longOpt("help")
-            .required(false)
-            .desc("Print this message.")
-            .build();
+    .longOpt("help")
+    .required(false)
+    .desc("Print this message.").get();
     // @formatter:on
 
     public static final Option OPTION_RECURSE =
     // @formatter:off
         Option.builder("r")
-            .longOpt("recurse")
-            .argName("recurse")
-            .hasArg()
-            .required(false)
-            .desc("Recurse (true|false), default is false.")
-            .build();
+    .longOpt("recurse")
+    .argName("recurse")
+    .hasArg()
+    .required(false)
+    .desc("Recurse (true|false), default is false.").get();
     // @formatter:on
 
     public static final Option OPTION_CREDENTIALS =
     // @formatter:off
         Option.builder("u")
-            .longOpt("credentials")
-            .argName("credentials")
-            .hasArg()
-            .required(false)
-            .desc("Credentials in the format username:password. Example: 
--credentials solr:SolrRocks")
-            .build();
+    .longOpt("credentials")
+    .argName("credentials")
+    .hasArg()
+    .required(false)
+    .desc("Credentials in the format username:password. Example: --credentials 
solr:SolrRocks").get();
     // @formatter:on
 
     private static String getDefaultSolrUrl() {
diff --git a/src/test/java/org/apache/commons/cli/SolrCreateToolTest.java 
b/src/test/java/org/apache/commons/cli/SolrCreateToolTest.java
index be2e6524..a80c39c4 100644
--- a/src/test/java/org/apache/commons/cli/SolrCreateToolTest.java
+++ b/src/test/java/org/apache/commons/cli/SolrCreateToolTest.java
@@ -32,48 +32,48 @@ class SolrCreateToolTest {
     private List<Option> getOptions() {
         // @formatter:off
         return Arrays.asList(
-            SolrCliTest.OPTION_ZKHOST,
-            SolrCliTest.OPTION_SOLRURL,
-            SolrCliTest.OPTION_ZKHOST_DEPRECATED,
-            SolrCliTest.OPTION_SOLRURL,
-            Option.builder("c")
-                .longOpt("name")
-                .argName("NAME")
-                .hasArg()
-                .required(true)
-                .desc("Name of collection or core to create.")
-                .build(),
-            Option.builder("s")
-                .longOpt("shards")
-                .argName("#")
-                .hasArg()
-                .required(false)
-                .desc("Number of shards; default is 1.")
-                .build(),
-            Option.builder("rf")
-                .longOpt("replication-factor")
-                .argName("#")
-                .hasArg()
-                .required(false)
-                .desc("Number of copies of each document across the collection 
(replicas per shard); default is 1.")
-                .build(),
-            Option.builder("d")
-                .longOpt("confdir")
-                .argName("NAME")
-                .hasArg()
-                .required(false)
-                .desc("Configuration directory to copy when creating the new 
collection; default is "
-                        + SolrCliTest.DEFAULT_CONFIG_SET
-                        + '.')
-                .build(),
-            Option.builder("n")
-                .longOpt("confname")
-                .argName("NAME")
-                .hasArg()
-                .required(false)
-                .desc("Configuration name; default is the collection name.")
-                .build(),
-            SolrCliTest.OPTION_CREDENTIALS);
+                    SolrCliTest.OPTION_ZKHOST,
+                    SolrCliTest.OPTION_SOLRURL,
+                    SolrCliTest.OPTION_ZKHOST_DEPRECATED,
+                    SolrCliTest.OPTION_SOLRURL,
+                    Option.builder("c")
+                        .longOpt("name")
+                        .argName("NAME")
+                        .hasArg()
+                        .required(true)
+                        .desc("Name of collection or core to create.")
+                        .get(),
+                    Option.builder("s")
+                        .longOpt("shards")
+                        .argName("#")
+                        .hasArg()
+                        .required(false)
+                        .desc("Number of shards; default is 1.")
+                        .get(),
+                    Option.builder("rf")
+                        .longOpt("replication-factor")
+                        .argName("#")
+                        .hasArg()
+                        .required(false)
+                        .desc("Number of copies of each document across the 
collection (replicas per shard); default is 1.")
+                        .get(),
+                    Option.builder("d")
+                        .longOpt("confdir")
+                        .argName("NAME")
+                        .hasArg()
+                        .required(false)
+                        .desc("Configuration directory to copy when creating 
the new collection; default is "
+                                + SolrCliTest.DEFAULT_CONFIG_SET
+                                + '.')
+                        .get(),
+                        Option.builder("n")
+                        .longOpt("confname")
+                        .argName("NAME")
+                        .hasArg()
+                        .required(false)
+                        .desc("Configuration name; default is the collection 
name.")
+                        .get(),
+                    SolrCliTest.OPTION_CREDENTIALS);
       // @formatter:on
     }
 
diff --git a/src/test/java/org/apache/commons/cli/ValueTest.java 
b/src/test/java/org/apache/commons/cli/ValueTest.java
index 2d59913e..81f02009 100644
--- a/src/test/java/org/apache/commons/cli/ValueTest.java
+++ b/src/test/java/org/apache/commons/cli/ValueTest.java
@@ -56,7 +56,7 @@ class ValueTest {
         
opts.addOption(OptionBuilder.hasOptionalArgs(2).withLongOpt("hide").create());
         opts.addOption(OptionBuilder.hasOptionalArgs(2).create('i'));
         opts.addOption(OptionBuilder.hasOptionalArgs().create('j'));
-        
opts.addOption(Option.builder().option("v").hasArg().valueSeparator().build());
+        
opts.addOption(Option.builder().option("v").hasArg().valueSeparator().get());
 
         final String[] args = { "-a", "-b", "foo", "--c", "--d", "bar" };
 
diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI252Test.java 
b/src/test/java/org/apache/commons/cli/bug/BugCLI252Test.java
index e5e07dee..315ff0e3 100644
--- a/src/test/java/org/apache/commons/cli/bug/BugCLI252Test.java
+++ b/src/test/java/org/apache/commons/cli/bug/BugCLI252Test.java
@@ -30,8 +30,8 @@ class BugCLI252Test {
 
     private Options getOptions() {
         final Options options = new Options();
-        options.addOption(Option.builder().longOpt("prefix").build());
-        options.addOption(Option.builder().longOpt("prefixplusplus").build());
+        options.addOption(Option.builder().longOpt("prefix").get());
+        options.addOption(Option.builder().longOpt("prefixplusplus").get());
         return options;
     }
 
diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI265Test.java 
b/src/test/java/org/apache/commons/cli/bug/BugCLI265Test.java
index 3baa3cca..eda81f99 100644
--- a/src/test/java/org/apache/commons/cli/bug/BugCLI265Test.java
+++ b/src/test/java/org/apache/commons/cli/bug/BugCLI265Test.java
@@ -44,10 +44,10 @@ class BugCLI265Test {
     public void setUp() {
         parser = new DefaultParser();
 
-        final Option optionT1 = 
Option.builder("t1").hasArg().numberOfArgs(1).optionalArg(true).argName("t1_path").build();
-        final Option optionA = Option.builder("a").hasArg(false).build();
-        final Option optionB = Option.builder("b").hasArg(false).build();
-        final Option optionLast = Option.builder("last").hasArg(false).build();
+        final Option optionT1 = 
Option.builder("t1").hasArg().numberOfArgs(1).optionalArg(true).argName("t1_path").get();
+        final Option optionA = Option.builder("a").hasArg(false).get();
+        final Option optionB = Option.builder("b").hasArg(false).get();
+        final Option optionLast = Option.builder("last").hasArg(false).get();
 
         options = new 
Options().addOption(optionT1).addOption(optionA).addOption(optionB).addOption(optionLast);
     }
diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI266Test.java 
b/src/test/java/org/apache/commons/cli/bug/BugCLI266Test.java
index a46cc1ad..a02dc374 100644
--- a/src/test/java/org/apache/commons/cli/bug/BugCLI266Test.java
+++ b/src/test/java/org/apache/commons/cli/bug/BugCLI266Test.java
@@ -44,28 +44,23 @@ class BugCLI266Test {
 
         //@formatter:off
         firstGroup.addOption(Option.builder("d")
-                .longOpt("db")
-                .hasArg()
-                .argName("table-name")
-                .build());
+        .longOpt("db")
+        .hasArg()
+        .argName("table-name").get());
         firstGroup.addOption(Option.builder("f")
-                .longOpt("flat-file")
-                .hasArg()
-                .argName("input.csv")
-                .build());
+        .longOpt("flat-file")
+        .hasArg()
+        .argName("input.csv").get());
         //@formatter:on
         options.addOptionGroup(firstGroup);
         //@formatter:off
         secondGroup.addOption(Option.builder("x")
-                .hasArg()
-                .argName("arg1")
-                .build());
-        secondGroup.addOption(Option.builder("s")
-                .build());
+        .hasArg()
+        .argName("arg1").get());
+        secondGroup.addOption(Option.builder("s").get());
         secondGroup.addOption(Option.builder("p")
-                .hasArg()
-                .argName("arg1")
-                .build());
+        .hasArg()
+        .argName("arg1").get());
         //@formatter:on
         options.addOptionGroup(secondGroup);
     }
@@ -74,9 +69,8 @@ class BugCLI266Test {
         final Options options = new Options();
         //@formatter:off
         final Option help = Option.builder("h")
-                .longOpt("help")
-                .desc("Prints this help message")
-                .build();
+        .longOpt("help")
+        .desc("Prints this help message").get();
         //@formatter:on
         options.addOption(help);
 
@@ -84,19 +78,16 @@ class BugCLI266Test {
 
         //@formatter:off
         final Option t = Option.builder("t")
-                .required()
-                .hasArg()
-                .argName("file")
-                .build();
+        .required()
+        .hasArg()
+        .argName("file").get();
         final Option w = Option.builder("w")
-                .required()
-                .hasArg()
-                .argName("word")
-                .build();
+        .required()
+        .hasArg()
+        .argName("word").get();
         final Option o = Option.builder("o")
-                .hasArg()
-                .argName("directory")
-                .build();
+        .hasArg()
+        .argName("directory").get();
         //@formatter:on
         options.addOption(t);
         options.addOption(w);
diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI312Test.java 
b/src/test/java/org/apache/commons/cli/bug/BugCLI312Test.java
index 5d069647..47e3dcce 100644
--- a/src/test/java/org/apache/commons/cli/bug/BugCLI312Test.java
+++ b/src/test/java/org/apache/commons/cli/bug/BugCLI312Test.java
@@ -38,8 +38,8 @@ import org.junit.jupiter.api.Test;
 class BugCLI312Test {
     @Test
     void testNoOptionValues() {
-        final Option o1 = Option.builder("A").build();
-        final Option o2 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').build();
+        final Option o1 = Option.builder("A").get();
+        final Option o2 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').get();
         final Options options = new Options().addOption(o1).addOption(o2);
 
         final CommandLineParser parser = new DefaultParser();
@@ -49,7 +49,7 @@ class BugCLI312Test {
 
     @Test
     void testPropertyStyleOption_withGetOptionProperties() throws 
ParseException {
-        final Option o1 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').build();
+        final Option o1 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').get();
 
         final Options options = new Options();
         options.addOption(o1);
@@ -71,7 +71,7 @@ class BugCLI312Test {
 
     @Test
     void testPropertyStyleOption_withGetOptions() throws ParseException {
-        final Option o1 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').build();
+        final Option o1 = 
Option.builder().option("D").longOpt("define").numberOfArgs(2).valueSeparator('=').get();
 
         final Options options = new Options();
         options.addOption(o1);
diff --git a/src/test/java/org/apache/commons/cli/bug/BugCLI325Test.java 
b/src/test/java/org/apache/commons/cli/bug/BugCLI325Test.java
index 35f53858..58fd2c00 100644
--- a/src/test/java/org/apache/commons/cli/bug/BugCLI325Test.java
+++ b/src/test/java/org/apache/commons/cli/bug/BugCLI325Test.java
@@ -34,10 +34,9 @@ class BugCLI325Test {
     void testCli325() throws ParseException {
         // @formatter:off
         final Option option = Option.builder("x")
-                .hasArgs()
-                .valueSeparator()
-                .desc("Multiple arg option with value separator.")
-                .build();
+        .hasArgs()
+        .valueSeparator()
+        .desc("Multiple arg option with value separator.").get();
         // @formatter:on
         final String[] args = {"-x", "A=a", "B=b"};
         final CommandLine cmdLine = DefaultParser.builder().get().parse(new 
Options().addOption(option), args);
diff --git a/src/test/java/org/apache/commons/cli/help/HelpFormatterTest.java 
b/src/test/java/org/apache/commons/cli/help/HelpFormatterTest.java
index 45f1222e..d8453b75 100644
--- a/src/test/java/org/apache/commons/cli/help/HelpFormatterTest.java
+++ b/src/test/java/org/apache/commons/cli/help/HelpFormatterTest.java
@@ -42,19 +42,19 @@ class HelpFormatterTest {
         // @formatter:off
         return new Options()
             .addOptionGroup(new OptionGroup()
-                
.addOption(Option.builder("1").longOpt("one").hasArg().desc("English 
one").build())
-                
.addOption(Option.builder().longOpt("aon").hasArg().desc("Irish one").build())
-                
.addOption(Option.builder().longOpt("uno").hasArg().desc("Spanish one").build())
+                
.addOption(Option.builder("1").longOpt("one").hasArg().desc("English 
one").get())
+                
.addOption(Option.builder().longOpt("aon").hasArg().desc("Irish one").get())
+                
.addOption(Option.builder().longOpt("uno").hasArg().desc("Spanish one").get())
             )
             .addOptionGroup(new OptionGroup()
-                
.addOption(Option.builder().longOpt("two").hasArg().desc("English two").build())
-                .addOption(Option.builder().longOpt("dó").hasArg().desc("Irish 
twp").build())
-                
.addOption(Option.builder().longOpt("dos").hasArg().desc("Spanish two").build())
+                
.addOption(Option.builder().longOpt("two").hasArg().desc("English two").get())
+                .addOption(Option.builder().longOpt("dó").hasArg().desc("Irish 
twp").get())
+                
.addOption(Option.builder().longOpt("dos").hasArg().desc("Spanish two").get())
             )
             .addOptionGroup(new OptionGroup()
-                
.addOption(Option.builder().longOpt("three").hasArg().desc("English 
three").build())
-                
.addOption(Option.builder().longOpt("trí").hasArg().desc("Irish three").build())
-                
.addOption(Option.builder().longOpt("tres").hasArg().desc("Spanish 
three").build())
+                
.addOption(Option.builder().longOpt("three").hasArg().desc("English 
three").get())
+                
.addOption(Option.builder().longOpt("trí").hasArg().desc("Irish three").get())
+                
.addOption(Option.builder().longOpt("tres").hasArg().desc("Spanish 
three").get())
             );
         // @formatter:on
     }
@@ -75,7 +75,7 @@ class HelpFormatterTest {
         final TextHelpAppendable serializer = new TextHelpAppendable(sb);
         HelpFormatter formatter = 
HelpFormatter.builder().setHelpAppendable(serializer).get();
 
-        final Options options = new 
Options().addOption(Option.builder("a").since("1853").hasArg().desc("aaaa aaaa 
aaaa aaaa aaaa").build());
+        final Options options = new 
Options().addOption(Option.builder("a").since("1853").hasArg().desc("aaaa aaaa 
aaaa aaaa aaaa").get());
 
         List<String> expected = new ArrayList<>();
         expected.add(" usage:  commandSyntax [-a <arg>]");
@@ -234,7 +234,7 @@ class HelpFormatterTest {
         final OptionFormatter.Builder ofBuilder = 
OptionFormatter.builder().setOptPrefix("Just Another ");
         underTest.setOptionFormatBuilder(ofBuilder);
         final HelpFormatter formatter = underTest.get();
-        final OptionFormatter oFormatter = 
formatter.getOptionFormatter(Option.builder("thing").build());
+        final OptionFormatter oFormatter = 
formatter.getOptionFormatter(Option.builder("thing").get());
         assertEquals("Just Another thing", oFormatter.getOpt());
 
     }
@@ -243,7 +243,7 @@ class HelpFormatterTest {
     void testSetOptionGroupSeparatorTest() {
         final HelpFormatter.Builder underTest = 
HelpFormatter.builder().setOptionGroupSeparator(" and ");
         final HelpFormatter formatter = underTest.get();
-        final String result = formatter.toSyntaxOptions(new 
OptionGroup().addOption(Option.builder("this").build()).addOption(Option.builder("that").build()));
+        final String result = formatter.toSyntaxOptions(new 
OptionGroup().addOption(Option.builder("this").get()).addOption(Option.builder("that").get()));
         assertTrue(result.contains("-that and -this"));
     }
 
@@ -269,9 +269,9 @@ class HelpFormatterTest {
     void testSortOptionsTest() {
         // @formatter:off
         final Options options = new Options()
-            .addOption(Option.builder("a").longOpt("optA").hasArg().desc("The 
description of A").build())
-            .addOption(Option.builder("b").longOpt("BOpt").hasArg().desc("B 
description").build())
-            .addOption(Option.builder().longOpt("COpt").hasArg().desc("A COpt 
description").build());
+            .addOption(Option.builder("a").longOpt("optA").hasArg().desc("The 
description of A").get())
+            .addOption(Option.builder("b").longOpt("BOpt").hasArg().desc("B 
description").get())
+            .addOption(Option.builder().longOpt("COpt").hasArg().desc("A COpt 
description").get());
         // @formatter:on
 
         HelpFormatter underTest = HelpFormatter.builder().get();
@@ -318,13 +318,13 @@ class HelpFormatterTest {
         final HelpFormatter underTest = HelpFormatter.builder().get();
         // @formatter:off
         final OptionGroup group = new OptionGroup()
-            
.addOption(Option.builder().option("o").longOpt("one").hasArg().build())
-            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").build())
-            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").build())
-            .addOption(Option.builder().option("f").argName("other").build())
-            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").build())
-            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").build())
-            
.addOption(Option.builder().option("s").longOpt("sevem").hasArg().build());
+            
.addOption(Option.builder().option("o").longOpt("one").hasArg().get())
+            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").get())
+            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").get())
+            .addOption(Option.builder().option("f").argName("other").get())
+            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").get())
+            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").get())
+            
.addOption(Option.builder().option("s").longOpt("sevem").hasArg().get());
         // @formatter:on
         assertEquals("[-f | --five <other> | -o <arg> | -s <arg> | --six 
<other> | -t <other> | -th]", underTest.toSyntaxOptions(group));
 
@@ -339,13 +339,13 @@ class HelpFormatterTest {
         final HelpFormatter underTest = HelpFormatter.builder().get();
         final List<Option> options = new ArrayList<>();
 
-        
options.add(Option.builder().option("o").longOpt("one").hasArg().build());
-        
options.add(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").build());
-        
options.add(Option.builder().option("th").longOpt("three").required().argName("other").build());
-        options.add(Option.builder().option("f").argName("other").build());
-        
options.add(Option.builder().longOpt("five").hasArg().argName("other").build());
-        
options.add(Option.builder().longOpt("six").required().hasArg().argName("other").build());
-        
options.add(Option.builder().option("s").longOpt("sevem").hasArg().build());
+        
options.add(Option.builder().option("o").longOpt("one").hasArg().get());
+        
options.add(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").get());
+        
options.add(Option.builder().option("th").longOpt("three").required().argName("other").get());
+        options.add(Option.builder().option("f").argName("other").get());
+        
options.add(Option.builder().longOpt("five").hasArg().argName("other").get());
+        
options.add(Option.builder().longOpt("six").required().hasArg().argName("other").get());
+        
options.add(Option.builder().option("s").longOpt("sevem").hasArg().get());
         assertEquals("[-f] [--five <other>] [-o <arg>] [-s <arg>] --six 
<other> -t <other> -th", underTest.toSyntaxOptions(options));
 
     }
@@ -359,44 +359,44 @@ class HelpFormatterTest {
 
         // @formatter:off
         options = new Options()
-            
.addOption(Option.builder().option("o").longOpt("one").hasArg().build())
-            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").build())
-            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").build())
-            .addOption(Option.builder().option("f").argName("other").build())
-            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").build())
-            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").build())
-            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().build());
+            
.addOption(Option.builder().option("o").longOpt("one").hasArg().get())
+            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").get())
+            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").get())
+            .addOption(Option.builder().option("f").argName("other").get())
+            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").get())
+            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").get())
+            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().get());
         // @formatter:on
         assertEquals("[-f] [--five <other>] [-o <arg>] [-s <arg>] --six 
<other> -t <other> -th", underTest.toSyntaxOptions(options), "assorted options 
failed");
         // @formatter:off
         options = new Options()
-            
.addOption(Option.builder().option("o").longOpt("one").hasArg().build())
+            
.addOption(Option.builder().option("o").longOpt("one").hasArg().get())
             .addOptionGroup(
                 new OptionGroup()
-                    
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").build())
-                    
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").build()))
-            .addOption(Option.builder().option("f").argName("other").build())
-            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").build())
-            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").build())
-            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().build());
+                    
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").get())
+                    
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").get()))
+            .addOption(Option.builder().option("f").argName("other").get())
+            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").get())
+            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").get())
+            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().get());
         // @formatter:on
         assertEquals("[-f] [--five <other>] [-o <arg>] [-s <arg>] --six 
<other> [-t <other> | -th]", underTest.toSyntaxOptions(options),
                 "option with group failed");
 
         // @formatter:off
         final OptionGroup group1 = new OptionGroup()
-            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").build())
-            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").build());
+            
.addOption(Option.builder().option("t").longOpt("two").hasArg().required().argName("other").get())
+            
.addOption(Option.builder().option("th").longOpt("three").required().argName("other").get());
         // @formatter:on
         group1.setRequired(true);
         // @formatter:off
         options = new Options()
-            
.addOption(Option.builder().option("o").longOpt("one").hasArg().build())
+            
.addOption(Option.builder().option("o").longOpt("one").hasArg().get())
             .addOptionGroup(group1)
-            .addOption(Option.builder().option("f").argName("other").build())
-            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").build())
-            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").build())
-            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().build());
+            .addOption(Option.builder().option("f").argName("other").get())
+            
.addOption(Option.builder().longOpt("five").hasArg().argName("other").get())
+            
.addOption(Option.builder().longOpt("six").required().hasArg().argName("other").get())
+            
.addOption(Option.builder().option("s").longOpt("seven").hasArg().get());
         // @formatter:on
         assertEquals("[-f] [--five <other>] [-o <arg>] [-s <arg>] --six 
<other> -t <other> | -th", underTest.toSyntaxOptions(options),
                 "options with required group failed");
diff --git a/src/test/java/org/apache/commons/cli/help/OptionFormatterTest.java 
b/src/test/java/org/apache/commons/cli/help/OptionFormatterTest.java
index e7262fb5..c9e041c5 100644
--- a/src/test/java/org/apache/commons/cli/help/OptionFormatterTest.java
+++ b/src/test/java/org/apache/commons/cli/help/OptionFormatterTest.java
@@ -83,7 +83,7 @@ class OptionFormatterTest {
     @Test
     void testAsOptional() {
         OptionFormatter underTest;
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
 
         underTest = OptionFormatter.from(option);
         assertEquals("[what]", underTest.toOptional("what"));
@@ -99,35 +99,35 @@ class OptionFormatterTest {
     void testAsSyntaxOption() {
         OptionFormatter underTest;
 
-        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         underTest = OptionFormatter.from(option);
         assertEquals("[-o <arg>]", underTest.toSyntaxOption(), "optional arg 
failed");
 
-        option = 
Option.builder().option("o").longOpt("opt").hasArg().argName("other").build();
+        option = 
Option.builder().option("o").longOpt("opt").hasArg().argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("[-o <other>]", underTest.toSyntaxOption(), "optional 
'other' arg failed");
 
-        option = 
Option.builder().option("o").longOpt("opt").hasArg().required().argName("other").build();
+        option = 
Option.builder().option("o").longOpt("opt").hasArg().required().argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("-o <other>", underTest.toSyntaxOption(), "required 
'other' arg failed");
 
-        option = 
Option.builder().option("o").longOpt("opt").required().argName("other").build();
+        option = 
Option.builder().option("o").longOpt("opt").required().argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("-o", underTest.toSyntaxOption(), "required no arg 
failed");
 
-        option = Option.builder().option("o").argName("other").build();
+        option = Option.builder().option("o").argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("[-o]", underTest.toSyntaxOption(), "optional no arg arg 
failed");
 
-        option = 
Option.builder().longOpt("opt").hasArg().argName("other").build();
+        option = 
Option.builder().longOpt("opt").hasArg().argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("[--opt <other>]", underTest.toSyntaxOption(), "optional 
longOpt 'other' arg failed");
 
-        option = 
Option.builder().longOpt("opt").required().hasArg().argName("other").build();
+        option = 
Option.builder().longOpt("opt").required().hasArg().argName("other").get();
         underTest = OptionFormatter.from(option);
         assertEquals("--opt <other>", underTest.toSyntaxOption(), "required 
longOpt 'other' arg failed");
 
-        option = Option.builder().option("ot").longOpt("opt").hasArg().build();
+        option = Option.builder().option("ot").longOpt("opt").hasArg().get();
         underTest = OptionFormatter.from(option);
         assertEquals("[-ot <arg>]", underTest.toSyntaxOption(), "optional 
multi char opt arg failed");
     }
@@ -138,8 +138,8 @@ class OptionFormatterTest {
         final Option.Builder builder = Option.builder("o").deprecated(da);
         final Option.Builder builderWithDesc = Option.builder("o").desc("The 
description").deprecated(da);
 
-        assertEquals(expected, 
OptionFormatter.COMPLEX_DEPRECATED_FORMAT.apply(builder.build()));
-        assertEquals(expected + " The description", 
OptionFormatter.COMPLEX_DEPRECATED_FORMAT.apply(builderWithDesc.build()));
+        assertEquals(expected, 
OptionFormatter.COMPLEX_DEPRECATED_FORMAT.apply(builder.get()));
+        assertEquals(expected + " The description", 
OptionFormatter.COMPLEX_DEPRECATED_FORMAT.apply(builderWithDesc.get()));
     }
 
     @Test
@@ -158,13 +158,13 @@ class OptionFormatterTest {
                 .setDeprecatedFormatFunction(depFunc);
         // @formatter:on
 
-        Option option = Option.builder("o").longOpt("opt").build();
+        Option option = Option.builder("o").longOpt("opt").get();
 
         OptionFormatter formatter = builder.build(option);
         OptionFormatter.Builder builder2 = new 
OptionFormatter.Builder(formatter);
         assertEquivalent(formatter, builder2.build(option));
 
-        option = 
Option.builder("o").longOpt("opt").deprecated().required().build();
+        option = 
Option.builder("o").longOpt("opt").deprecated().required().get();
         formatter = builder.build(option);
         builder2 = new OptionFormatter.Builder(formatter);
         assertEquivalent(formatter, builder2.build(option));
@@ -173,12 +173,12 @@ class OptionFormatterTest {
     @Test
     void testDefaultSyntaxFormat() {
 
-        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter formatter = OptionFormatter.from(option);
         assertEquals("[-o <arg>]", formatter.toSyntaxOption());
         assertEquals("-o <arg>", formatter.toSyntaxOption(true));
 
-        option = 
Option.builder().option("o").longOpt("opt").hasArg().required().build();
+        option = 
Option.builder().option("o").longOpt("opt").hasArg().required().get();
         formatter = OptionFormatter.from(option);
         assertEquals("-o <arg>", formatter.toSyntaxOption());
         assertEquals("[-o <arg>]", formatter.toSyntaxOption(false));
@@ -188,27 +188,27 @@ class OptionFormatterTest {
     void testGetBothOpt() {
         OptionFormatter underTest;
 
-        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         underTest = OptionFormatter.from(option);
         assertEquals("-o, --opt", underTest.getBothOpt());
 
-        option = Option.builder().longOpt("opt").hasArg().build();
+        option = Option.builder().longOpt("opt").hasArg().get();
         underTest = OptionFormatter.from(option);
         assertEquals("--opt", underTest.getBothOpt());
 
-        option = Option.builder().option("o").hasArg().build();
+        option = Option.builder().option("o").hasArg().get();
         underTest = OptionFormatter.from(option);
         assertEquals("-o", underTest.getBothOpt());
     }
 
     @Test
     void testGetDescription() {
-        final Option normalOption = 
Option.builder().option("o").longOpt("one").hasArg().desc("The 
description").build();
+        final Option normalOption = 
Option.builder().option("o").longOpt("one").hasArg().desc("The 
description").get();
 
-        final Option deprecatedOption = 
Option.builder().option("o").longOpt("one").hasArg().desc("The 
description").deprecated().build();
+        final Option deprecatedOption = 
Option.builder().option("o").longOpt("one").hasArg().desc("The 
description").deprecated().get();
 
         final Option deprecatedOptionWithAttributes = 
Option.builder().option("o").longOpt("one").hasArg().desc("The description")
-                
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now").setDescription("Use
 something else").get()).build();
+        
.deprecated(DeprecatedAttributes.builder().setForRemoval(true).setSince("now").setDescription("Use
 something else").get()).get();
 
         assertEquals("The description", 
OptionFormatter.from(normalOption).getDescription(), "normal option failure");
         assertEquals("The description", 
OptionFormatter.from(deprecatedOption).getDescription(), "deprecated option 
failure");
@@ -230,7 +230,7 @@ class OptionFormatterTest {
 
     @Test
     void testSetArgumentNameDelimiters() {
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setArgumentNameDelimiters("with argument named ", 
".");
         assertEquals("with argument named arg.", 
builder.build(option).getArgName());
 
@@ -244,7 +244,7 @@ class OptionFormatterTest {
 
     @Test
     void testSetDefaultArgName() {
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setDefaultArgName("foo");
         assertEquals("<foo>", builder.build(option).getArgName());
 
@@ -257,7 +257,7 @@ class OptionFormatterTest {
 
     @Test
     void testSetLongOptPrefix() {
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setLongOptPrefix("fo");
         assertEquals("foopt", builder.build(option).getLongOpt());
 
@@ -270,7 +270,7 @@ class OptionFormatterTest {
 
     @Test
     void testSetOptArgumentSeparator() {
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setOptArgSeparator(" with argument named ");
         assertEquals("[-o with argument named <arg>]", 
builder.build(option).toSyntaxOption());
 
@@ -283,7 +283,7 @@ class OptionFormatterTest {
 
     @Test
     void testSetOptSeparator() {
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setOptSeparator(" and ");
         assertEquals("-o and --opt", builder.build(option).getBothOpt());
 
@@ -297,7 +297,7 @@ class OptionFormatterTest {
     @Test
     void testSetSyntaxFormatFunction() {
         final BiFunction<OptionFormatter, Boolean, String> func = (o, b) -> 
"Yep, it worked";
-        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().build();
+        final Option option = 
Option.builder().option("o").longOpt("opt").hasArg().get();
 
         OptionFormatter.Builder builder = 
OptionFormatter.builder().setSyntaxFormatFunction(func);
         assertEquals("Yep, it worked", builder.build(option).toSyntaxOption());


Reply via email to