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);
+ }
+}