File tree 2 files changed +23
-1
lines changed
main/java/org/springframework/shell/command
test/java/org/springframework/shell/command
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 {
1161
1161
private boolean hidden ;
1162
1162
private String description ;
1163
1163
private Supplier <Availability > availability ;
1164
+ private List <CommandOption > options ;
1164
1165
private List <DefaultOptionSpec > optionSpecs ;
1165
1166
private DefaultTargetSpec targetSpec ;
1166
1167
private List <DefaultAliasSpec > aliasSpecs ;
@@ -1218,7 +1219,10 @@ public Availability getAvailability() {
1218
1219
1219
1220
@ Override
1220
1221
public List <CommandOption > getOptions () {
1221
- List <CommandOption > options = optionSpecs .stream ()
1222
+ if (options != null ) {
1223
+ return options ;
1224
+ }
1225
+ options = optionSpecs .stream ()
1222
1226
.map (o -> {
1223
1227
String [] longNames = o .getLongNames ();
1224
1228
Function <String , String > modifier = o .getOptionNameModifier ();
Original file line number Diff line number Diff line change 16
16
package org .springframework .shell .command ;
17
17
18
18
import java .util .ArrayList ;
19
+ import java .util .List ;
19
20
20
21
import org .junit .jupiter .api .Test ;
21
22
@@ -600,4 +601,21 @@ void testOptionNameModifierFromDefault() {
600
601
assertThat (option .getLongNames ()).isEqualTo (new String [] { "xarg1" });
601
602
});
602
603
}
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
+ }
603
621
}
You can’t perform that action at this time.
0 commit comments