diff --git a/pom.xml b/pom.xml index c3426d9..507cc40 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,7 @@ 11 ${java.version} ${java.version} + 9.4.31.v20200723 @@ -283,19 +284,26 @@ test - org.springframework.boot - spring-boot-starter-tomcat + spring-boot-starter-web + 2.3.3.RELEASE + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.boot + spring-boot-starter-jetty 2.3.3.RELEASE - - org.springframework.boot spring-boot-autoconfigure 2.3.3.RELEASE - @@ -377,9 +385,9 @@ hapi-fhir-testpage-overlay - - false + + false 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 e09c995..d773ad9 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java @@ -1,18 +1,24 @@ package ca.uhn.fhir.jpa.starter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; +import java.util.Arrays; + @ServletComponentScan(basePackageClasses = {JpaRestfulServer.class}, basePackages = "ca.uhn.fhir.jpa.starter") @SpringBootApplication(exclude = ElasticsearchRestClientAutoConfiguration.class) -public class Application { +public class Application extends SpringBootServletInitializer { public static void main(String[] args) { @@ -23,6 +29,27 @@ public class Application { //UI is now accessible at http://localhost:8080/ } + @Override + protected SpringApplicationBuilder configure( + SpringApplicationBuilder builder) { + return builder.sources(Application.class); + } + + + @Autowired + AutowireCapableBeanFactory beanFactory; + + @Bean + public ServletRegistrationBean hapiServletRegistration() { + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(); + JpaRestfulServer jpaRestfulServer = new JpaRestfulServer(); + beanFactory.autowireBean(jpaRestfulServer); + servletRegistrationBean.setServlet(jpaRestfulServer); + servletRegistrationBean.addUrlMappings("/hapi-fhir-jpaserver/fhir/*"); + servletRegistrationBean.setLoadOnStartup(1); + return servletRegistrationBean; + } + @Bean public ServletRegistrationBean servletRegistrationBean() { 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 168a06b..616854b 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/BaseJpaRestfulServer.java @@ -11,7 +11,9 @@ 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.*; +import ca.uhn.fhir.jpa.provider.GraphQLProvider; +import ca.uhn.fhir.jpa.provider.IJpaSystemProvider; +import ca.uhn.fhir.jpa.provider.JpaConformanceProviderDstu2; import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3; import ca.uhn.fhir.jpa.provider.r4.JpaConformanceProviderR4; import ca.uhn.fhir.jpa.provider.r5.JpaConformanceProviderR5; @@ -35,13 +37,14 @@ import org.springframework.http.HttpHeaders; import org.springframework.web.cors.CorsConfiguration; import javax.servlet.ServletException; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; - public class BaseJpaRestfulServer extends RestfulServer { - @Autowired DaoRegistry daoRegistry; 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 8669fc8..773cc32 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/JpaRestfulServer.java @@ -6,7 +6,7 @@ import javax.servlet.annotation.WebServlet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; -@WebServlet(urlPatterns = {"/hapi-fhir-jpaserver/fhir/*"}) +//@WebServlet(urlPatterns = {"/hapi-fhir-jpaserver/fhir/*"}) @Import(AppProperties.class) public class JpaRestfulServer extends BaseJpaRestfulServer { diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 6ce88b0..0000000 --- a/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - org.springframework.web.context.ContextLoaderListener - - - contextClass - - ca.uhn.fhir.jpa.starter.ApplicationContext - - - - contextConfigLocation - - - - - - - spring - org.springframework.web.servlet.DispatcherServlet - - contextClass - org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - - ca.uhn.fhir.jpa.starter.FhirTesterConfig - - - 2 - - - spring - / - - - - fhirServlet - ca.uhn.fhir.jpa.starter.JpaRestfulServer - 1 - - - fhirServlet - /fhir/* - - -