From ec878a9205859447c69506c36ca1fe1236b5732a Mon Sep 17 00:00:00 2001 From: jvi Date: Wed, 9 Sep 2020 11:30:01 +0200 Subject: [PATCH] Added partition interceptor --- src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfig.java | 5 ++++- .../ca/uhn/fhir/jpa/empi/EmpiConfigCondition.java | 13 +++++++++++++ .../java/ca/uhn/fhir/jpa/starter/AppProperties.java | 6 +++--- .../java/ca/uhn/fhir/jpa/starter/Application.java | 3 ++- .../uhn/fhir/jpa/starter/MultitenantServerR4IT.java | 1 + 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfigCondition.java diff --git a/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfig.java b/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfig.java index 6b8f2d2..fd6e5c8 100644 --- a/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfig.java +++ b/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfig.java @@ -6,7 +6,9 @@ import ca.uhn.fhir.empi.rules.config.EmpiSettings; import ca.uhn.fhir.jpa.starter.AppProperties; import com.google.common.base.Charsets; import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; @@ -18,10 +20,11 @@ import java.io.IOException; * in 5.1.0 picks this up even if EMPI is disabled currently. */ @Configuration +@Conditional(EmpiConfigCondition.class) public class EmpiConfig { @Bean - IEmpiSettings empiSettings(EmpiRuleValidator theEmpiRuleValidator, AppProperties appProperties) throws IOException { + IEmpiSettings empiSettings(@Autowired EmpiRuleValidator theEmpiRuleValidator, AppProperties appProperties) throws IOException { DefaultResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource = resourceLoader.getResource("empi-rules.json"); String json = IOUtils.toString(resource.getInputStream(), Charsets.UTF_8); diff --git a/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfigCondition.java b/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfigCondition.java new file mode 100644 index 0000000..4854bde --- /dev/null +++ b/src/main/java/ca/uhn/fhir/jpa/empi/EmpiConfigCondition.java @@ -0,0 +1,13 @@ +package ca.uhn.fhir.jpa.empi; + +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.type.AnnotatedTypeMetadata; + +public class EmpiConfigCondition implements Condition { + @Override + public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata metadata) { + String property = conditionContext.getEnvironment().getProperty("hapi.fhir.empi_enabled"); + return Boolean.parseBoolean(property); + } +} diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java b/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java index fd22023..2835656 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/AppProperties.java @@ -36,9 +36,9 @@ public class AppProperties { private Boolean expunge_enabled = true; private Boolean fhirpath_interceptor_enabled = false; private Boolean filter_search_enabled = true; - private Boolean graphql_enabled = true; - private Boolean binary_storage_enabled = true; - private Boolean bulk_export_enabled = true; + private Boolean graphql_enabled = false; + private Boolean binary_storage_enabled = false; + private Boolean bulk_export_enabled = false; private Boolean default_pretty_print = true; private Integer default_page_size = 20; private Integer max_binary_size = null; diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java index 083a3bf..3670b37 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java @@ -1,5 +1,6 @@ package ca.uhn.fhir.jpa.starter; +import ca.uhn.fhir.jpa.empi.EmpiConfig; import ca.uhn.fhir.jpa.subscription.channel.config.SubscriptionChannelConfig; import ca.uhn.fhir.jpa.subscription.match.config.SubscriptionProcessorConfig; import ca.uhn.fhir.jpa.subscription.match.config.WebsocketDispatcherConfig; @@ -21,7 +22,7 @@ import org.springframework.web.servlet.DispatcherServlet; @ServletComponentScan(basePackageClasses = { JpaRestfulServer.class}, basePackages = "ca.uhn.fhir.jpa.starter") @SpringBootApplication(exclude = ElasticsearchRestClientAutoConfiguration.class) -@Import({SubscriptionSubmitterConfig.class, SubscriptionProcessorConfig.class, SubscriptionChannelConfig.class,WebsocketDispatcherConfig.class }) +@Import({SubscriptionSubmitterConfig.class, SubscriptionProcessorConfig.class, SubscriptionChannelConfig.class, WebsocketDispatcherConfig.class, EmpiConfig.class}) public class Application extends SpringBootServletInitializer { public static void main(String[] args) { diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java index 7b487b4..856ad70 100644 --- a/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java +++ b/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java @@ -102,5 +102,6 @@ public class MultitenantServerR4IT { String ourServerBase = "http://localhost:" + port + "/hapi-fhir-jpaserver/fhir/"; ourClient = ourCtx.newRestfulGenericClient(ourServerBase); ourClient.registerInterceptor(new LoggingInterceptor(true)); + ourClient.registerInterceptor(ourClientTenantInterceptor); } }