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 e8decb9..ba23124 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,9 @@ package ca.uhn.fhir.jpa.starter; +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; +import ca.uhn.fhir.jpa.subscription.submit.config.SubscriptionSubmitterConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.boot.SpringApplication; @@ -13,7 +17,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; -@ServletComponentScan(basePackageClasses = {JpaRestfulServer.class}, basePackages = "ca.uhn.fhir.jpa.starter") +@ServletComponentScan(basePackageClasses = { + JpaRestfulServer.class}, basePackages = "ca.uhn.fhir.jpa.starter") @SpringBootApplication(exclude = ElasticsearchRestClientAutoConfiguration.class) public class Application extends SpringBootServletInitializer { @@ -43,15 +48,24 @@ public class Application extends SpringBootServletInitializer { servletRegistrationBean.setServlet(jpaRestfulServer); servletRegistrationBean.addUrlMappings("/hapi-fhir-jpaserver/fhir/*"); servletRegistrationBean.setLoadOnStartup(1); + return servletRegistrationBean; } + @Bean public ServletRegistrationBean overlayRegistrationBean() { AnnotationConfigWebApplicationContext annotationConfigWebApplicationContext = new AnnotationConfigWebApplicationContext(); annotationConfigWebApplicationContext.register(FhirTesterConfig.class); - DispatcherServlet dispatcherServlet = new DispatcherServlet(annotationConfigWebApplicationContext); + + annotationConfigWebApplicationContext.register(SubscriptionSubmitterConfig.class); + annotationConfigWebApplicationContext.register(SubscriptionProcessorConfig.class); + annotationConfigWebApplicationContext.register(SubscriptionChannelConfig.class); + annotationConfigWebApplicationContext.register(WebsocketDispatcherConfig.class); + + DispatcherServlet dispatcherServlet = new DispatcherServlet( + annotationConfigWebApplicationContext); dispatcherServlet.setContextClass(AnnotationConfigWebApplicationContext.class); dispatcherServlet.setContextConfigLocation(FhirTesterConfig.class.getName()); diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 6841215..7a91683 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -27,14 +27,14 @@ spring: hapi: fhir: defer_indexing_for_codesystems_of_size: 101 - implementationguides: - - - url: https://build.fhir.org/ig/hl7dk/dk-medcom/branches/corrections/package.tgz - name: dk.fhir.ig.medcom-core - version: 0.8.0 - - - name: hl7.fhir.uv.ips - version: 0.3.0 +# implementationguides: +# - +# url: https://build.fhir.org/ig/hl7dk/dk-medcom/branches/corrections/package.tgz +# name: dk.fhir.ig.medcom-core +# version: 0.8.0 +# - +# name: hl7.fhir.uv.ips +# version: 0.3.0 #supported_resource_types: # - Patient diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java index b502674..36774dc 100644 --- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java +++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java @@ -36,8 +36,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class, properties = { "spring.batch.job.enabled=false", - "spring.profiles.active=r5", - "spring.datasource.url=jdbc:h2:mem:dbr5", + "spring.profiles.active=r4", + "spring.datasource.url=jdbc:h2:mem:dbr4", "hapi.fhir.subscription.websocket_enabled=true", "hapi.fhir.empi_enabled=true" }) diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR5IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR5IT.java index a8b1981..9eea4d6 100644 --- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR5IT.java +++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR5IT.java @@ -1,5 +1,9 @@ package ca.uhn.fhir.jpa.starter; +import static ca.uhn.fhir.util.TestUtil.waitForSize; +import static org.awaitility.Awaitility.await; +import static org.junit.jupiter.api.Assertions.assertEquals; + import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.rest.api.CacheControlDirective; import ca.uhn.fhir.rest.api.EncodingEnum; @@ -7,9 +11,9 @@ import ca.uhn.fhir.rest.api.MethodOutcome; import ca.uhn.fhir.rest.client.api.IGenericClient; import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum; import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor; -import ca.uhn.fhir.test.utilities.JettyUtil; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.webapp.WebAppContext; +import java.net.URI; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; import org.eclipse.jetty.websocket.client.WebSocketClient; @@ -20,8 +24,6 @@ import org.hl7.fhir.r5.model.Observation; import org.hl7.fhir.r5.model.Patient; import org.hl7.fhir.r5.model.Subscription; import org.hl7.fhir.r5.model.SubscriptionTopic; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -29,15 +31,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.test.context.junit.jupiter.SpringExtension; -import java.net.URI; -import java.nio.file.Paths; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; - -import static ca.uhn.fhir.util.TestUtil.waitForSize; -import static org.awaitility.Awaitility.await; -import static org.junit.jupiter.api.Assertions.assertEquals; - @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class, properties = { 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 fa29203..7b487b4 100644 --- a/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java +++ b/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java @@ -24,8 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; "spring.profiles.active=r4", "spring.datasource.url=jdbc:h2:mem:dbr4-mt", "hapi.fhir.subscription.websocket_enabled=true", - "hapi.fhir.subscription.websocket_enabled=true", - "hapi.fhir.partitioning_multitenancy_enabled" + "hapi.fhir.partitioning.partitioning_include_in_search_hashes=false" }) public class MultitenantServerR4IT { @@ -96,6 +95,7 @@ public class MultitenantServerR4IT { @BeforeEach void beforeEach() { + ourClientTenantInterceptor = new UrlTenantSelectionInterceptor(); ourCtx = FhirContext.forR4(); ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER); ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000); diff --git a/src/test/resources/application-integrationtest.yaml b/src/test/resources/application-integrationtest.yaml index 2153cbb..038a343 100644 --- a/src/test/resources/application-integrationtest.yaml +++ b/src/test/resources/application-integrationtest.yaml @@ -7,7 +7,7 @@ spring: max-active: 15 profiles: ### This is the FHIR version. Choose between, dstu2, dstu3, r4 or r5 - active: dstu2 + active: r4 hapi: fhir: