diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 5801f2e..c359317 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -7,7 +7,7 @@ jobs:
strategy:
matrix:
os: [ "ubuntu-latest", "windows-latest"]
- version: [21, 25]
+ version: [25]
fail-fast: false
steps:
- uses: actions/checkout@v5
diff --git a/README.md b/README.md
index 9dc9261..fb7b495 100644
--- a/README.md
+++ b/README.md
@@ -42,9 +42,9 @@ This is the main websocket connection endpoint. See `/pvws` for information on c
Requirements
------------
-To build: JDK 17, Maven 3.8+
+To build: JDK 25, Maven 3.8+
-To run: JRE 17
+To run: JRE 25
Build
=====
@@ -100,7 +100,7 @@ Command line options will override definitions in ``application.properties``.
Tomcat war
----------
-**NOTE:** Verified on Tomcat 9 only.
+**NOTE:** Spring Boot 4 requires a Jakarta EE 11 compatible servlet container, such as Tomcat 11.
Copy ``pvws.war`` to ``TOMCAT_ROOT/webapps``. Set environment variable:
@@ -110,5 +110,3 @@ and launch Tomcat.
-
-
diff --git a/pom.xml b/pom.xml
index 26c36fd..80b963d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,17 +5,17 @@
org.springframework.boot
spring-boot-starter-parent
- 2.7.3
+ 4.1.0
org.phoebus
pvws
- 0.0.1-SNAPSHOT
+ 0.0.2-SNAPSHOT
EPICS web socket server
EPICS web socket server
${packaging.type}
- 11
+ 25
@@ -40,10 +40,15 @@
spring-boot-starter-test
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
org.springdoc
- springdoc-openapi-ui
- 1.8.0
+ springdoc-openapi-starter-webmvc-ui
+ 3.1.1
@@ -73,23 +78,19 @@
com.fasterxml.jackson.core
jackson-core
- 2.16.0
com.fasterxml.jackson.core
jackson-databind
- 2.16.0
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
- 2.16.0
com.fasterxml.jackson.core
jackson-annotations
- 2.15.4
regexp
@@ -130,7 +131,6 @@
org.springframework.boot
spring-boot-maven-plugin
- 3.2.1
org.phoebus.pvws.EpicsWebSocketServerApplication
WAR
@@ -160,7 +160,6 @@
org.springframework.boot
spring-boot-maven-plugin
- 3.2.1
org.phoebus.pvws.EpicsWebSocketServerApplication
JAR
@@ -178,4 +177,4 @@
-
\ No newline at end of file
+
diff --git a/src/main/java/org/phoebus/pvws/EpicsConfiguration.java b/src/main/java/org/phoebus/pvws/EpicsConfiguration.java
index 1c8bfd6..6fbbded 100644
--- a/src/main/java/org/phoebus/pvws/EpicsConfiguration.java
+++ b/src/main/java/org/phoebus/pvws/EpicsConfiguration.java
@@ -23,7 +23,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.prefs.Preferences;
diff --git a/src/main/java/org/phoebus/pvws/PvwsWebListener.java b/src/main/java/org/phoebus/pvws/PvwsWebListener.java
index 8137e74..d8561a2 100644
--- a/src/main/java/org/phoebus/pvws/PvwsWebListener.java
+++ b/src/main/java/org/phoebus/pvws/PvwsWebListener.java
@@ -26,9 +26,9 @@
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.annotation.WebListener;
import java.util.List;
@WebListener
diff --git a/src/main/java/org/phoebus/pvws/ws/PvSocketHandler.java b/src/main/java/org/phoebus/pvws/ws/PvSocketHandler.java
index f728e66..6668f83 100644
--- a/src/main/java/org/phoebus/pvws/ws/PvSocketHandler.java
+++ b/src/main/java/org/phoebus/pvws/ws/PvSocketHandler.java
@@ -29,7 +29,7 @@
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
-import javax.annotation.PreDestroy;
+import jakarta.annotation.PreDestroy;
import java.io.EOFException;
import java.util.List;
import java.util.Optional;
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 2386d3f..327327c 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -1,5 +1,5 @@
-
+
pvws
index.html
diff --git a/src/test/java/org/phoebus/pvws/controllers/PvwsRestControllerTest.java b/src/test/java/org/phoebus/pvws/controllers/PvwsRestControllerTest.java
index bee16f5..b754199 100644
--- a/src/test/java/org/phoebus/pvws/controllers/PvwsRestControllerTest.java
+++ b/src/test/java/org/phoebus/pvws/controllers/PvwsRestControllerTest.java
@@ -25,7 +25,7 @@
import org.phoebus.pvws.model.InfoData;
import org.phoebus.pvws.model.PvPoolData;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;