diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml
index 31568a3..6e76e82 100644
--- a/.github/workflows/smoke-tests.yml
+++ b/.github/workflows/smoke-tests.yml
@@ -33,7 +33,7 @@ jobs:
run: docker pull jetbrains/intellij-http-client
- name: Start server with jetty
run: |
- mvn jetty:run & export JPA_PROCESS=$!
+ mvn -P jetty spring-boot:run & export JPA_PROCESS=$!
sleep 80
- name: Execute smoke tests
run: docker run --rm -v $PWD:/workdir --add-host host.docker.internal:host-gateway jetbrains/intellij-http-client -D src/test/smoketest/plain_server.http --env-file src/test/smoketest/http-client.env.json --env default
diff --git a/pom.xml b/pom.xml
index 71daa34..d79dd8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
ca.uhn.hapi.fhir
hapi-fhir
- 6.11.7-SNAPSHOT
+ 7.0.0-SNAPSHOT
hapi-fhir-jpaserver-starter
@@ -194,6 +194,14 @@
spring-web
+
+
+ commons-logging
+ commons-logging
+ 1.2
+ provided
+
+
org.apache.commons
@@ -250,68 +258,6 @@
test
-
- org.eclipse.jetty
- jetty-http
- test
-
-
- org.eclipse.jetty
- jetty-io
- test
-
-
- org.eclipse.jetty
- jetty-security
- test
-
-
- org.eclipse.jetty
- jetty-xml
- test
-
-
- org.eclipse.jetty.ee10
- jetty-ee10-servlet
- test
-
-
- org.eclipse.jetty.ee10
- jetty-ee10-servlets
- test
-
-
- org.eclipse.jetty.ee10.websocket
- jetty-ee10-websocket-jakarta-client
- test
-
-
- org.eclipse.jetty.ee10.websocket
- jetty-ee10-websocket-jakarta-server
- test
-
-
- org.eclipse.jetty.ee10.websocket
- jetty-ee10-websocket-jetty-server
- ${jetty_version}
- test
-
-
- org.eclipse.jetty.websocket
- jetty-websocket-jetty-server
- test
-
-
- org.eclipse.jetty
- jetty-server
- test
-
-
- org.eclipse.jetty
- jetty-util
- test
-
-
ca.uhn.hapi.fhir
hapi-fhir-jpaserver-test-utilities
@@ -361,10 +307,18 @@
org.eclipse.jetty.ee10
*
+
+ org.eclipse.jetty.ee10.websocket
+ *
+
org.eclipse.jetty
*
+
+ org.eclipse.jetty.websocket
+ *
+
@@ -422,7 +376,6 @@
org.springframework.boot
spring-boot-starter-test
- ${spring_boot_version}
test
@@ -452,6 +405,14 @@
org.springframework.boot
spring-boot-maven-plugin
+
+
+ CLASSIC
+
@@ -632,12 +593,6 @@
org.springframework.boot
spring-boot-starter-web
${spring_boot_version}
-
-
- org.springframework.boot
- spring-boot-starter-tomcat
-
-
@@ -658,6 +613,11 @@
+
+ org.springframework.boot
+ spring-boot-starter-jetty
+ ${spring_boot_version}
+
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 c626c96..bec7871 100644
--- a/src/main/java/ca/uhn/fhir/jpa/starter/Application.java
+++ b/src/main/java/ca/uhn/fhir/jpa/starter/Application.java
@@ -4,7 +4,6 @@ import ca.uhn.fhir.batch2.jobs.config.Batch2JobsConfig;
import ca.uhn.fhir.jpa.batch2.JpaBatch2Config;
import ca.uhn.fhir.jpa.starter.annotations.OnEitherVersion;
import ca.uhn.fhir.jpa.starter.cdshooks.StarterCdsHooksConfig;
-import ca.uhn.fhir.jpa.starter.common.FhirTesterConfig;
import ca.uhn.fhir.jpa.starter.cr.StarterCrDstu3Config;
import ca.uhn.fhir.jpa.starter.cr.StarterCrR4Config;
import ca.uhn.fhir.jpa.starter.mdm.MdmConfig;
@@ -19,17 +18,12 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Import;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-import org.springframework.web.servlet.DispatcherServlet;
@ServletComponentScan(basePackageClasses = {RestfulServer.class})
@SpringBootApplication(exclude = {ElasticsearchRestClientAutoConfiguration.class, ThymeleafAutoConfiguration.class})
@@ -71,9 +65,4 @@ public class Application extends SpringBootServletInitializer {
return servletRegistrationBean;
}
- @Bean
- public ServletWebServerFactory servletWebServerFactory() {
- return new JettyServletWebServerFactory();
- }
-
}
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/CustomBeanTest.java b/src/test/java/ca/uhn/fhir/jpa/starter/CustomBeanTest.java
index d5a3d18..3a7dee5 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/CustomBeanTest.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/CustomBeanTest.java
@@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties = {
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties = {
"hapi.fhir.custom-bean-packages=some.custom.pkg1,some.custom.pkg2",
"spring.datasource.url=jdbc:h2:mem:dbr4",
"hapi.fhir.enable_repository_validating_interceptor=true",
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/CustomInterceptorTest.java b/src/test/java/ca/uhn/fhir/jpa/starter/CustomInterceptorTest.java
index 859752a..daf6438 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/CustomInterceptorTest.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/CustomInterceptorTest.java
@@ -13,7 +13,7 @@ import ca.uhn.fhir.jpa.api.dao.IFhirResourceDao;
import ca.uhn.fhir.rest.client.api.IGenericClient;
import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum;
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties = {
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties = {
"hapi.fhir.custom-bean-packages=some.custom.pkg1",
"hapi.fhir.custom-interceptor-classes=some.custom.pkg1.CustomInterceptorBean,some.custom.pkg1.CustomInterceptorPojo",
"spring.datasource.url=jdbc:h2:mem:dbr4",
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ElasticsearchLastNR4IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ElasticsearchLastNR4IT.java
index c12f531..9d4c033 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/ElasticsearchLastNR4IT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/ElasticsearchLastNR4IT.java
@@ -44,7 +44,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
@ExtendWith(SpringExtension.class)
@Testcontainers
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties =
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties =
{
"spring.datasource.url=jdbc:h2:mem:dbr4",
"hapi.fhir.fhir_version=r4",
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu2IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu2IT.java
index e65d52f..e8fd9ad 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu2IT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu2IT.java
@@ -16,7 +16,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties =
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties =
{
"hapi.fhir.fhir_version=dstu2",
"spring.datasource.url=jdbc:h2:mem:dbr2",
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu3IT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu3IT.java
index 19b453f..2aadf2e 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu3IT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerDstu3IT.java
@@ -17,7 +17,6 @@ import org.apache.commons.io.FileUtils;
import org.hl7.fhir.dstu3.model.*;
import org.hl7.fhir.instance.model.api.IIdType;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +30,6 @@ import java.io.IOException;
import java.net.URI;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
import static ca.uhn.fhir.util.TestUtil.waitForSize;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = {
Application.class,
- JpaStarterWebsocketDispatcherConfig.class,
RepositoryConfig.class
}, properties =
{
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4BIT.java b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4BIT.java
index be49949..46acecd 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4BIT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4BIT.java
@@ -15,7 +15,7 @@ import org.springframework.boot.test.web.server.LocalServerPort;
import static org.junit.jupiter.api.Assertions.assertEquals;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class},
+ classes = {Application.class},
properties = {
"spring.datasource.url=jdbc:h2:mem:dbr4b",
"hapi.fhir.enable_repository_validating_interceptor=true",
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 9eebaa0..9c0f85d 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/ExampleServerR4IT.java
@@ -27,7 +27,6 @@ import org.hl7.fhir.r4.model.Period;
import org.hl7.fhir.r4.model.StringType;
import org.hl7.fhir.r4.model.Subscription;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +52,6 @@ import static org.opencds.cqf.fhir.utility.r4.Parameters.stringPart;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = {
Application.class,
- JpaStarterWebsocketDispatcherConfig.class,
NicknameServiceConfig.class,
RepositoryConfig.class
}, properties = {
diff --git a/src/test/java/ca/uhn/fhir/jpa/starter/JpaStarterWebsocketDispatcherConfig.java b/src/test/java/ca/uhn/fhir/jpa/starter/JpaStarterWebsocketDispatcherConfig.java
deleted file mode 100644
index 34c8949..0000000
--- a/src/test/java/ca/uhn/fhir/jpa/starter/JpaStarterWebsocketDispatcherConfig.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package ca.uhn.fhir.jpa.starter;
-
-import org.eclipse.jetty.ee10.webapp.WebAppContext;
-import org.eclipse.jetty.ee10.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
-import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * This class ensures that websockets work with
- * Spring + Spring Boot + Jetty
- */
-@Configuration
-public class JpaStarterWebsocketDispatcherConfig {
-
- @Bean
- public Jetty12WebSocketServletWebServerCustomizer jetty10WebSocketServletWebServerCustomizer() {
- return new Jetty12WebSocketServletWebServerCustomizer();
- }
-
- static class Jetty12WebSocketServletWebServerCustomizer implements WebServerFactoryCustomizer {
-
- @Override
- public void customize(JettyServletWebServerFactory factory) {
-
- factory.addServerCustomizers(server -> {
- WebAppContext ctx = (WebAppContext) server.getHandler();
- JakartaWebSocketServletContainerInitializer.configure(ctx, null);
- });
-
- }
- }
-}
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 3c50fb6..bbe1348 100644
--- a/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java
+++ b/src/test/java/ca/uhn/fhir/jpa/starter/MultitenantServerR4IT.java
@@ -18,7 +18,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties =
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class}, properties =
{
"spring.datasource.url=jdbc:h2:mem:dbr4-mt",
"hapi.fhir.fhir_version=r4",