diff --git a/pom.xml b/pom.xml index 6f5a2a1..f05e918 100644 --- a/pom.xml +++ b/pom.xml @@ -275,6 +275,47 @@ test + + org.springframework.boot + spring-boot-starter + 2.3.3.RELEASE + test + + + + org.springframework.boot + spring-boot-starter-web + 2.3.3.RELEASE + test + + + + + org.springframework.boot + spring-boot-starter-tomcat + 2.3.3.RELEASE + test + + + + org.springframework.boot + spring-boot-autoconfigure + 2.3.3.RELEASE + test + + + + + + + + org.springframework.boot + spring-boot-starter-logging + 2.3.3.RELEASE + test + + + junit diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/ApplicationContext.java b/src/main/java/ca/uhn/fhir/jpa/starter/ApplicationContext.java index c4d2919..5204c14 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/ApplicationContext.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/ApplicationContext.java @@ -11,8 +11,12 @@ import org.springframework.web.context.support.AnnotationConfigWebApplicationCon public class ApplicationContext extends AnnotationConfigWebApplicationContext { + public ApplicationContext() { FhirVersionEnum fhirVersion = HapiProperties.getFhirVersion(); + this.getEnvironment().setActiveProfiles(fhirVersion.toString().toLowerCase()); + + if (fhirVersion == FhirVersionEnum.DSTU2) { register(FhirServerConfigDstu2.class, FhirServerConfigCommon.class); } else if (fhirVersion == FhirVersionEnum.DSTU3) { diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java index 5b482c8..08be966 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java @@ -11,11 +11,7 @@ import ca.uhn.fhir.jpa.binstore.BinaryStorageInterceptor; import ca.uhn.fhir.jpa.bulk.provider.BulkDataExportProvider; import ca.uhn.fhir.jpa.interceptor.CascadingDeleteInterceptor; import ca.uhn.fhir.jpa.partition.PartitionManagementProvider; -import ca.uhn.fhir.jpa.provider.GraphQLProvider; -import ca.uhn.fhir.jpa.provider.JpaConformanceProviderDstu2; -import ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2; -import ca.uhn.fhir.jpa.provider.SubscriptionTriggeringProvider; -import ca.uhn.fhir.jpa.provider.TerminologyUploaderProvider; +import ca.uhn.fhir.jpa.provider.*; import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3; import ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3; import ca.uhn.fhir.jpa.provider.r4.JpaConformanceProviderR4; @@ -29,12 +25,7 @@ import ca.uhn.fhir.model.dstu2.composite.MetaDt; import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator; import ca.uhn.fhir.rest.server.HardcodedServerAddressStrategy; import ca.uhn.fhir.rest.server.RestfulServer; -import ca.uhn.fhir.rest.server.interceptor.CorsInterceptor; -import ca.uhn.fhir.rest.server.interceptor.FhirPathFilterInterceptor; -import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor; -import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor; -import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor; -import ca.uhn.fhir.rest.server.interceptor.ResponseValidatingInterceptor; +import ca.uhn.fhir.rest.server.interceptor.*; import ca.uhn.fhir.rest.server.interceptor.partition.RequestTenantPartitionInterceptor; import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory; import ca.uhn.fhir.rest.server.tenant.UrlBaseTenantIdentificationStrategy; @@ -48,11 +39,8 @@ import org.springframework.http.HttpHeaders; import org.springframework.web.cors.CorsConfiguration; import javax.servlet.ServletException; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; + public class BaseJpaRestfulServer extends RestfulServer { diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/EmpiConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/EmpiConfig.java index 107aa97..f5d016b 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/EmpiConfig.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/EmpiConfig.java @@ -12,12 +12,14 @@ import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; import java.io.IOException; @Configuration +@Profile("empi") public class EmpiConfig { @Bean diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu2.java b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu2.java index d80e70f..562e2bd 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu2.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu2.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -14,6 +15,7 @@ import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; @Configuration +@Profile("dstu2") public class FhirServerConfigDstu2 extends BaseJavaConfigDstu2 { @Autowired diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu3.java b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu3.java index 2a93154..df0eb6d 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu3.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigDstu3.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -14,6 +15,7 @@ import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; @Configuration +@Profile("dstu3") public class FhirServerConfigDstu3 extends BaseJavaConfigDstu3 { @Autowired diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR4.java b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR4.java index 5f3f8a9..d0ac06f 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR4.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR4.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -14,6 +15,7 @@ import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; @Configuration +@Profile("r4") public class FhirServerConfigR4 extends BaseJavaConfigR4 { @Autowired diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR5.java b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR5.java index d6cf537..c73f51f 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR5.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/FhirServerConfigR5.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -14,6 +15,7 @@ import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; @Configuration +@Profile("r5") public class FhirServerConfigR5 extends BaseJavaConfigR5 { @Autowired diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java index f13ab64..cc1a0b9 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java @@ -1,7 +1,9 @@ package ca.uhn.fhir.jpa.starter; import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +@WebServlet public class JpaRestfulServer extends BaseJpaRestfulServer { private static final long serialVersionUID = 1L; diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 9364495..8039731 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -9,24 +9,6 @@ - - DEBUG - ${smile.basedir}/log/empi-troubleshooting.log - - ${smile.basedir}/log/empi-troubleshooting.log.%i.gz - 1 - 9 - - - 5MB - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n${log.stackfilter.pattern} - - - - - diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/Application.java b/src/test/java/ca/uhn/fhir/jpa/starter/Application.java new file mode 100644 index 0000000..f1e3590 --- /dev/null +++ b/src/test/java/ca/uhn/fhir/jpa/starter/Application.java @@ -0,0 +1,17 @@ +package ca.uhn.fhir.jpa.starter; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; + +@ServletComponentScan(basePackageClasses = {JpaRestfulServer.class}) +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + + System.setProperty("spring.profiles.active", "r4"); + System.setProperty("elasticsearch.enabled", "false "); + SpringApplication.run(Application.class, args); + } +}