1212import java .util .Collection ;
1313import java .util .Collections ;
1414import java .util .HashMap ;
15- import java .util .List ;
15+ import java .util .HashSet ;
1616import java .util .Map ;
1717import java .util .Optional ;
18+ import java .util .Set ;
1819import java .util .function .Function ;
1920import java .util .function .UnaryOperator ;
2021import java .util .stream .Collectors ;
@@ -35,9 +36,9 @@ public class VaultConfigSource implements ConfigSource {
3536 private static final String PATHS_SEPARATOR = ":" ;
3637
3738 private final VaultInvoker vault ;
38- private final List <String > secretsPaths ;
39+ private final Collection <String > secretsPaths ;
3940
40- private VaultConfigSource (VaultInvoker vault , List <String > secretsPaths ) {
41+ private VaultConfigSource (VaultInvoker vault , Collection <String > secretsPaths ) {
4142 this .vault = vault ;
4243 this .secretsPaths = new ArrayList <>(secretsPaths );
4344 }
@@ -72,13 +73,14 @@ public static final class Builder {
7273
7374 private VaultInvoker invoker ;
7475
75- private List <String > secretsPaths =
76+ private Set <String > secretsPaths =
7677 Optional .ofNullable (
7778 Optional .ofNullable (ENVIRONMENT_LOADER .loadVariable ("VAULT_SECRETS_PATH" ))
7879 .orElse (ENVIRONMENT_LOADER .loadVariable ("VAULT_SECRETS_PATHS" )))
7980 .map (s -> s .split (PATHS_SEPARATOR ))
8081 .map (Arrays ::asList )
81- .orElseGet (ArrayList ::new );
82+ .map (HashSet ::new )
83+ .orElseGet (HashSet ::new );
8284
8385 private Builder () {}
8486
@@ -120,11 +122,10 @@ public Builder secretsPaths(Collection<String> secretsPaths) {
120122 return this ;
121123 }
122124
123- private static List <String > toSecretsPaths (Collection <String > secretsPaths ) {
125+ private static Set <String > toSecretsPaths (Collection <String > secretsPaths ) {
124126 return secretsPaths .stream ()
125127 .flatMap (s -> Arrays .stream (s .split (PATHS_SEPARATOR )))
126- .distinct ()
127- .collect (Collectors .toList ());
128+ .collect (Collectors .toSet ());
128129 }
129130
130131 public Builder invoker (VaultInvoker invoker ) {
0 commit comments