From aeaa2c6ead802d2b0f62152a8c08b8f90a676fb7 Mon Sep 17 00:00:00 2001 From: shroffk Date: Tue, 20 Oct 2026 14:11:09 -0400 Subject: [PATCH 1/3] upgrade to spring 4.1 --- pom.xml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 26c36fd..a701f52 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 + 17 @@ -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 + From a46687bf70ec99f23ee03fe587232deaab244686 Mon Sep 17 00:00:00 2001 From: shroffk Date: Tue, 20 Oct 2026 14:22:54 -0400 Subject: [PATCH 2/3] Move pvws to jdk25 --- README.md | 8 +++----- pom.xml | 2 +- src/main/java/org/phoebus/pvws/EpicsConfiguration.java | 2 +- src/main/java/org/phoebus/pvws/PvwsWebListener.java | 6 +++--- src/main/java/org/phoebus/pvws/ws/PvSocketHandler.java | 2 +- src/main/webapp/WEB-INF/web.xml | 2 +- .../phoebus/pvws/controllers/PvwsRestControllerTest.java | 2 +- 7 files changed, 11 insertions(+), 13 deletions(-) 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 a701f52..80b963d 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ EPICS web socket server ${packaging.type} - 17 + 25 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; From eee20ae1a30cad3566987da37602c850b90880e6 Mon Sep 17 00:00:00 2001 From: shroffk Date: Tue, 20 Oct 2026 14:28:06 -0400 Subject: [PATCH 3/3] remove 21 from ci --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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