File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed
main/java/org/springframework/shell/command
test/java/org/springframework/shell/command Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -1161,6 +1161,7 @@ static class DefaultCommandRegistration implements CommandRegistration {
11611161 private boolean hidden ;
11621162 private String description ;
11631163 private Supplier <Availability > availability ;
1164+ private List <CommandOption > options ;
11641165 private List <DefaultOptionSpec > optionSpecs ;
11651166 private DefaultTargetSpec targetSpec ;
11661167 private List <DefaultAliasSpec > aliasSpecs ;
@@ -1218,7 +1219,10 @@ public Availability getAvailability() {
12181219
12191220 @ Override
12201221 public List <CommandOption > getOptions () {
1221- List <CommandOption > options = optionSpecs .stream ()
1222+ if (options != null ) {
1223+ return options ;
1224+ }
1225+ options = optionSpecs .stream ()
12221226 .map (o -> {
12231227 String [] longNames = o .getLongNames ();
12241228 Function <String , String > modifier = o .getOptionNameModifier ();
Original file line number Diff line number Diff line change 1616package org .springframework .shell .command ;
1717
1818import java .util .ArrayList ;
19+ import java .util .List ;
1920
2021import org .junit .jupiter .api .Test ;
2122
@@ -600,4 +601,21 @@ void testOptionNameModifierFromDefault() {
600601 assertThat (option .getLongNames ()).isEqualTo (new String [] { "xarg1" });
601602 });
602603 }
604+
605+ @ Test
606+ void optionShouldBeSameInstance () {
607+ CommandRegistration registration = CommandRegistration .builder ()
608+ .defaultOptionNameModifier (name -> "x" + name )
609+ .command ("command1" )
610+ .withOption ()
611+ .longNames ("arg1" )
612+ .and ()
613+ .withTarget ()
614+ .consumer (ctx -> {})
615+ .and ()
616+ .build ();
617+ List <CommandOption > options1 = registration .getOptions ();
618+ List <CommandOption > options2 = registration .getOptions ();
619+ assertThat (options1 ).isEqualTo (options2 );
620+ }
603621}
You can’t perform that action at this time.
0 commit comments