@@ -31,10 +31,8 @@ public final class ParamManager {
3131
3232 private static final CacheManager cacheManager = new CacheManager ();
3333 private static final TransformationManager transformationManager = new TransformationManager ();
34- private static final ConcurrentHashMap <Class <? extends BaseProvider >, BaseProvider > providers = new ConcurrentHashMap <>();
3534
36- private static SecretsProvider secretsProvider ;
37- private static SSMProvider ssmProvider ;
35+ private static ConcurrentHashMap <Class <? extends BaseProvider >, BaseProvider > providers = new ConcurrentHashMap <>();
3836
3937 /**
4038 * Get a concrete implementation of {@link BaseProvider}.<br/>
@@ -47,6 +45,7 @@ public static <T extends BaseProvider> T getProvider(Class<T> providerClass) {
4745 throw new IllegalStateException ("You cannot provide a null provider class." );
4846 }
4947 try {
48+
5049 if (!providers .containsKey (providerClass )) {
5150 Constructor <T > constructor = providerClass .getDeclaredConstructor (CacheManager .class );
5251 T provider = constructor .newInstance (cacheManager );
@@ -65,14 +64,7 @@ public static <T extends BaseProvider> T getProvider(Class<T> providerClass) {
6564 * @return a {@link SecretsProvider}
6665 */
6766 public static SecretsProvider getSecretsProvider () {
68- if (!providers .containsKey (SecretsProvider .class )) {
69- secretsProvider = SecretsProvider .builder ()
70- .withCacheManager (cacheManager )
71- .withTransformationManager (transformationManager )
72- .build ();
73- providers .putIfAbsent (SecretsProvider .class , secretsProvider );
74- }
75- return secretsProvider ;
67+ return getProvider (SecretsProvider .class );
7668 }
7769
7870 /**
@@ -81,14 +73,7 @@ public static SecretsProvider getSecretsProvider() {
8173 * @return a {@link SSMProvider}
8274 */
8375 public static SSMProvider getSsmProvider () {
84- if (!providers .containsKey (SSMProvider .class )) {
85- ssmProvider = SSMProvider .builder ()
86- .withCacheManager (cacheManager )
87- .withTransformationManager (transformationManager )
88- .build ();
89- providers .putIfAbsent (SSMProvider .class , ssmProvider );
90- }
91- return ssmProvider ;
76+ return getProvider (SSMProvider .class );
9277 }
9378
9479 /**
@@ -98,14 +83,13 @@ public static SSMProvider getSsmProvider() {
9883 */
9984 public static SecretsProvider getSecretsProvider (SecretsManagerClient client ) {
10085 if (!providers .containsKey (SecretsProvider .class )) {
101- secretsProvider = SecretsProvider .builder ()
86+ providers . putIfAbsent ( SecretsProvider . class , SecretsProvider .builder ()
10287 .withClient (client )
10388 .withCacheManager (cacheManager )
10489 .withTransformationManager (transformationManager )
105- .build ();
106- providers .putIfAbsent (SecretsProvider .class , secretsProvider );
90+ .build ());
10791 }
108- return secretsProvider ;
92+ return ( SecretsProvider ) providers . get ( SecretsProvider . class ) ;
10993 }
11094
11195 /**
@@ -115,14 +99,13 @@ public static SecretsProvider getSecretsProvider(SecretsManagerClient client) {
11599 */
116100 public static SSMProvider getSsmProvider (SsmClient client ) {
117101 if (!providers .containsKey (SSMProvider .class )) {
118- ssmProvider = SSMProvider .builder ()
119- .withClient (client )
120- .withCacheManager (cacheManager )
121- .withTransformationManager (transformationManager )
122- .build ();
123- providers .putIfAbsent (SSMProvider .class , ssmProvider );
102+ providers .putIfAbsent (SSMProvider .class , SSMProvider .builder ()
103+ .withClient (client )
104+ .withCacheManager (cacheManager )
105+ .withTransformationManager (transformationManager )
106+ .build ());
124107 }
125- return ssmProvider ;
108+ return ( SSMProvider ) providers . get ( SSMProvider . class ) ;
126109 }
127110
128111 public static CacheManager getCacheManager () {
0 commit comments