Skip to content

Commit e7f7430

Browse files
committed
refactoring to relax dependency injection rules
1 parent 1d376d2 commit e7f7430

File tree

3 files changed

+15
-21
lines changed

3 files changed

+15
-21
lines changed

service/src/main/java/uk/nhs/adaptors/gp2gp/common/configuration/AppInitializer.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,42 @@
33
import org.apache.commons.lang3.StringUtils;
44
import org.springframework.beans.factory.InitializingBean;
55
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.context.annotation.Bean;
67
import org.springframework.stereotype.Component;
78

89
import lombok.RequiredArgsConstructor;
910
import lombok.extern.slf4j.Slf4j;
11+
import software.amazon.awssdk.services.s3.S3Client;
1012
import uk.nhs.adaptors.gp2gp.common.storage.StorageConnectorConfiguration;
1113

1214
@Component(value = "appInitializer")
1315
@Slf4j
1416
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
1517
public class AppInitializer implements InitializingBean {
18+
19+
private static final String S3_PREFIX = "s3";
1620
private final StorageConnectorConfiguration storageConnectorConfiguration;
17-
private final CustomTrustStore customTrustStore;
1821

1922
@Override
2023
public void afterPropertiesSet() {
2124
LOGGER.info("Running app initializer");
2225
if (StringUtils.isNotBlank(storageConnectorConfiguration.getTrustStoreUrl())) {
2326
LOGGER.info("Adding custom TrustStore to default one");
27+
final CustomTrustStore customTrustStore = new CustomTrustStore(getS3Client());
2428
customTrustStore.addToDefault(storageConnectorConfiguration.getTrustStoreUrl(),
2529
storageConnectorConfiguration.getTrustStorePassword());
2630
} else {
2731
LOGGER.warn("Trust store URL is not set. Running service without the trust store.");
2832
}
2933
}
34+
35+
@Bean
36+
public S3Client getS3Client() {
37+
if (StringUtils.isNotBlank(storageConnectorConfiguration.getTrustStoreUrl())
38+
&& storageConnectorConfiguration.getTrustStoreUrl().startsWith(S3_PREFIX)) {
39+
return S3Client.builder().build();
40+
}
41+
42+
return null;
43+
}
3044
}

service/src/main/java/uk/nhs/adaptors/gp2gp/common/configuration/CustomTrustStore.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import javax.net.ssl.TrustManager;
1010
import javax.net.ssl.TrustManagerFactory;
1111
import javax.net.ssl.X509TrustManager;
12-
13-
import org.springframework.beans.factory.annotation.Autowired;
14-
import org.springframework.stereotype.Component;
1512
import software.amazon.awssdk.core.ResponseInputStream;
1613
import software.amazon.awssdk.services.s3.S3Uri;
1714
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
@@ -23,14 +20,12 @@
2320
import lombok.SneakyThrows;
2421
import lombok.extern.slf4j.Slf4j;
2522

26-
@Component
2723
@Slf4j
2824
@SuppressFBWarnings(value = "EI_EXPOSE_REP2", justification = "S3Client is immutable and thread-safe.")
2925
public class CustomTrustStore {
3026

3127
private final S3Client s3Client;
3228

33-
@Autowired
3429
public CustomTrustStore(S3Client s3Client) {
3530
this.s3Client = s3Client;
3631
}
Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
package uk.nhs.adaptors.gp2gp.common.storage;
22

3-
import org.apache.commons.lang3.StringUtils;
43
import org.springframework.boot.context.properties.ConfigurationProperties;
5-
import org.springframework.context.annotation.Bean;
64
import org.springframework.context.annotation.Configuration;
7-
8-
import software.amazon.awssdk.services.s3.S3Client;
9-
105
import lombok.Getter;
116
import lombok.Setter;
127

@@ -16,20 +11,10 @@
1611
@ConfigurationProperties(prefix = "gp2gp.storage")
1712
public class StorageConnectorConfiguration {
1813

19-
private static final String S3_PREFIX = "s3";
20-
2114
private String type;
2215
private String containerName;
2316
private String azureConnectionString;
2417
private String trustStoreUrl;
2518
private String trustStorePassword;
2619

27-
@Bean
28-
public S3Client getS3Client() {
29-
if (StringUtils.isNotBlank(trustStoreUrl) && trustStoreUrl.startsWith(S3_PREFIX)) {
30-
return S3Client.builder().build();
31-
}
32-
33-
return null;
34-
}
3520
}

0 commit comments

Comments
 (0)