diff --git a/clinical-domain-agent/src/main/java/care/smith/fts/cda/ClinicalDomainAgent.java b/clinical-domain-agent/src/main/java/care/smith/fts/cda/ClinicalDomainAgent.java index 9a37cfac..a7b2b846 100644 --- a/clinical-domain-agent/src/main/java/care/smith/fts/cda/ClinicalDomainAgent.java +++ b/clinical-domain-agent/src/main/java/care/smith/fts/cda/ClinicalDomainAgent.java @@ -1,19 +1,10 @@ package care.smith.fts.cda; -import static java.time.Duration.ofSeconds; - -import ca.uhn.fhir.context.FhirContext; -import care.smith.fts.util.CustomErrorHandler; -import care.smith.fts.util.FhirCodecConfiguration; -import care.smith.fts.util.MetricsConfig; -import care.smith.fts.util.WebClientDefaults; -import care.smith.fts.util.WebClientFactory; -import care.smith.fts.util.auth.HttpServerAuthConfig; +import care.smith.fts.util.AgentConfiguration; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import java.net.http.HttpClient; import java.nio.file.Path; import java.nio.file.Paths; import lombok.extern.slf4j.Slf4j; @@ -23,41 +14,17 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; @Slf4j @SpringBootApplication @ConfigurationPropertiesScan -@Import({ - WebClientDefaults.class, - FhirCodecConfiguration.class, - MetricsConfig.class, - HttpServerAuthConfig.class, - CustomErrorHandler.class, - WebClientFactory.class, -}) +@Import(AgentConfiguration.class) public class ClinicalDomainAgent { public static void main(String... args) { SpringApplication.run(ClinicalDomainAgent.class, args); } - @Bean - public FhirContext fhirContext() { - return FhirContext.forR4(); - } - - @Bean - public HttpClient httpClient() { - return HttpClient.newBuilder().connectTimeout(ofSeconds(10)).build(); - } - - @Bean - @Primary - public ObjectMapper defaultObjectMapper() { - return new ObjectMapper().registerModule(new JavaTimeModule()); - } - @Bean public ObjectMapper transferProcessObjectMapper() { return new ObjectMapper(new YAMLFactory()) diff --git a/research-domain-agent/src/main/java/care/smith/fts/rda/ResearchDomainAgent.java b/research-domain-agent/src/main/java/care/smith/fts/rda/ResearchDomainAgent.java index f5af2bed..3524a3a4 100644 --- a/research-domain-agent/src/main/java/care/smith/fts/rda/ResearchDomainAgent.java +++ b/research-domain-agent/src/main/java/care/smith/fts/rda/ResearchDomainAgent.java @@ -1,19 +1,10 @@ package care.smith.fts.rda; -import static java.time.Duration.ofSeconds; - -import ca.uhn.fhir.context.FhirContext; -import care.smith.fts.util.CustomErrorHandler; -import care.smith.fts.util.FhirCodecConfiguration; -import care.smith.fts.util.MetricsConfig; -import care.smith.fts.util.WebClientDefaults; -import care.smith.fts.util.WebClientFactory; -import care.smith.fts.util.auth.HttpServerAuthConfig; +import care.smith.fts.util.AgentConfiguration; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import java.net.http.HttpClient; import java.nio.file.Path; import java.nio.file.Paths; import lombok.extern.slf4j.Slf4j; @@ -23,41 +14,17 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; @Slf4j @SpringBootApplication @ConfigurationPropertiesScan -@Import({ - WebClientDefaults.class, - FhirCodecConfiguration.class, - MetricsConfig.class, - HttpServerAuthConfig.class, - CustomErrorHandler.class, - WebClientFactory.class, -}) +@Import(AgentConfiguration.class) public class ResearchDomainAgent { public static void main(String... args) { SpringApplication.run(ResearchDomainAgent.class, args); } - @Bean - public FhirContext fhirContext() { - return FhirContext.forR4(); - } - - @Bean - public HttpClient httpClient() { - return HttpClient.newBuilder().connectTimeout(ofSeconds(10)).build(); - } - - @Bean - @Primary - public ObjectMapper defaultObjectMapper() { - return new ObjectMapper().registerModule(new JavaTimeModule()); - } - @Bean public ObjectMapper transferProcessObjectMapper() { return new ObjectMapper(new YAMLFactory()) diff --git a/trust-center-agent/src/main/java/care/smith/fts/tca/TrustCenterAgent.java b/trust-center-agent/src/main/java/care/smith/fts/tca/TrustCenterAgent.java index af5c84ef..ea33a92b 100644 --- a/trust-center-agent/src/main/java/care/smith/fts/tca/TrustCenterAgent.java +++ b/trust-center-agent/src/main/java/care/smith/fts/tca/TrustCenterAgent.java @@ -1,55 +1,19 @@ package care.smith.fts.tca; -import static java.time.Duration.ofSeconds; - -import ca.uhn.fhir.context.FhirContext; -import care.smith.fts.util.CustomErrorHandler; -import care.smith.fts.util.FhirCodecConfiguration; -import care.smith.fts.util.MetricsConfig; -import care.smith.fts.util.WebClientDefaults; -import care.smith.fts.util.WebClientFactory; -import care.smith.fts.util.auth.HttpServerAuthConfig; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import java.net.http.HttpClient; +import care.smith.fts.util.AgentConfiguration; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.ConfigurationPropertiesScan; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.Primary; @Slf4j @SpringBootApplication @ConfigurationPropertiesScan -@Import({ - WebClientDefaults.class, - FhirCodecConfiguration.class, - MetricsConfig.class, - HttpServerAuthConfig.class, - CustomErrorHandler.class, - WebClientFactory.class, -}) +@Import(AgentConfiguration.class) public class TrustCenterAgent { public static void main(String... args) { SpringApplication.run(TrustCenterAgent.class, args); } - - @Bean - public FhirContext fhirContext() { - return FhirContext.forR4(); - } - - @Bean - public HttpClient httpClient() { - return HttpClient.newBuilder().connectTimeout(ofSeconds(10)).build(); - } - - @Bean - @Primary - public ObjectMapper defaultObjectMapper() { - return new ObjectMapper().registerModule(new JavaTimeModule()); - } } diff --git a/trust-center-agent/src/main/java/care/smith/fts/tca/deidentification/configuration/DeIdentificationConfiguration.java b/trust-center-agent/src/main/java/care/smith/fts/tca/deidentification/configuration/DeIdentificationConfiguration.java index 4130d7d3..5f436f5c 100644 --- a/trust-center-agent/src/main/java/care/smith/fts/tca/deidentification/configuration/DeIdentificationConfiguration.java +++ b/trust-center-agent/src/main/java/care/smith/fts/tca/deidentification/configuration/DeIdentificationConfiguration.java @@ -1,7 +1,7 @@ package care.smith.fts.tca.deidentification.configuration; import jakarta.validation.constraints.NotBlank; -import lombok.Data; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.redisson.Redisson; import org.redisson.api.RedissonClient; @@ -13,7 +13,7 @@ @Slf4j @Configuration @ConfigurationProperties("de-identification") -@Data +@Setter public class DeIdentificationConfiguration { @NotBlank String keystoreUrl; diff --git a/util/src/main/java/care/smith/fts/util/AgentConfiguration.java b/util/src/main/java/care/smith/fts/util/AgentConfiguration.java new file mode 100644 index 00000000..93a48f39 --- /dev/null +++ b/util/src/main/java/care/smith/fts/util/AgentConfiguration.java @@ -0,0 +1,41 @@ +package care.smith.fts.util; + +import static java.time.Duration.ofSeconds; + +import ca.uhn.fhir.context.FhirContext; +import care.smith.fts.util.auth.HttpServerAuthConfig; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import java.net.http.HttpClient; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Primary; + +@Configuration +@Import({ + WebClientDefaults.class, + FhirCodecConfiguration.class, + MetricsConfig.class, + HttpServerAuthConfig.class, + CustomErrorHandler.class, + WebClientFactory.class, +}) +public class AgentConfiguration { + + @Bean + public FhirContext fhirContext() { + return FhirContext.forR4(); + } + + @Bean + public HttpClient httpClient() { + return HttpClient.newBuilder().connectTimeout(ofSeconds(10)).build(); + } + + @Bean + @Primary + public ObjectMapper defaultObjectMapper() { + return new ObjectMapper().registerModule(new JavaTimeModule()); + } +} diff --git a/util/src/main/java/care/smith/fts/util/MetricsConfig.java b/util/src/main/java/care/smith/fts/util/MetricsConfig.java index e835d490..c27a37f6 100644 --- a/util/src/main/java/care/smith/fts/util/MetricsConfig.java +++ b/util/src/main/java/care/smith/fts/util/MetricsConfig.java @@ -5,7 +5,6 @@ import io.micrometer.core.instrument.Tag; import io.micrometer.core.instrument.config.MeterFilter; import java.util.Arrays; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -15,7 +14,6 @@ @Slf4j @Configuration @ConfigurationProperties(prefix = "management.metrics.distribution") -@Data public class MetricsConfig { @Bean diff --git a/util/src/main/java/care/smith/fts/util/auth/HttpServerAuthConfig.java b/util/src/main/java/care/smith/fts/util/auth/HttpServerAuthConfig.java index 765fda66..3dfe284a 100644 --- a/util/src/main/java/care/smith/fts/util/auth/HttpServerAuthConfig.java +++ b/util/src/main/java/care/smith/fts/util/auth/HttpServerAuthConfig.java @@ -5,6 +5,7 @@ import java.util.Objects; import java.util.stream.Stream; import lombok.Data; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -17,7 +18,7 @@ @Slf4j @EnableWebFluxSecurity @ConfigurationProperties(prefix = "security") -@Data +@Setter public class HttpServerAuthConfig { private AuthMethod auth = HttpServerAuthMethod.NONE; diff --git a/util/src/test/java/care/smith/fts/util/WebServerFhirCodecTest.java b/util/src/test/java/care/smith/fts/util/WebServerFhirCodecTest.java index 5c9affce..e252f4cd 100644 --- a/util/src/test/java/care/smith/fts/util/WebServerFhirCodecTest.java +++ b/util/src/test/java/care/smith/fts/util/WebServerFhirCodecTest.java @@ -47,7 +47,11 @@ @Slf4j @SpringBootTest( - classes = {FhirCodecConfiguration.class, WebServerFhirCodecTest.Config.class, HttpServerAuthConfig.class}, + classes = { + FhirCodecConfiguration.class, + WebServerFhirCodecTest.Config.class, + HttpServerAuthConfig.class + }, webEnvironment = RANDOM_PORT) public class WebServerFhirCodecTest { @@ -164,17 +168,7 @@ Mono> responseBundle(@RequestBody Mono body) { @SpringBootApplication @Import({WebServerFhirCodecTest.Controller.class, FhirCodecConfiguration.class}) - public static class Config { - @Bean - FhirContext fhirContext() { - return forR4(); - } - - @Bean - public HttpClient httpClient() { - return HttpClient.newBuilder().connectTimeout(ofSeconds(10)).build(); - } - } + public static class Config {} private ResponseSpec getRequest(String path) { return webClient