Skip to content
Open

Spring4 #3907

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7954caa
Phased upgrade of springboot
shroffk Aug 4, 2026
5723ffc
update save and restore - spring 3, jakarta
shroffk Aug 4, 2026
6188eab
spring 4.1
shroffk Aug 4, 2026
ad7a641
now try to make save and restore to spring4.1
shroffk Aug 4, 2026
b03359b
start migration to new spring security API
shroffk Aug 4, 2026
e0d2e1f
updating save and restore tests for springboot 4.1
shroffk Aug 4, 2026
d98fd57
use named path variables as required by springboot4
shroffk Aug 5, 2026
18eefbe
fix windows test for the Path calculations
shroffk Aug 5, 2026
bc14788
Add the need compiler flag "-parameter"
shroffk Aug 5, 2026
52a0484
switch some of the tests to use real SnapshotUtil
shroffk Aug 5, 2026
7ceb150
moving to jdk25 and javafx25
shroffk Aug 6, 2026
16ad5da
upgrade springdoc version
shroffk Aug 6, 2026
f75352f
updating the elastic client to 9.4.4
shroffk Aug 6, 2026
413818b
consistent switch to low level elastic rest client
shroffk Aug 6, 2026
cd3a07e
first pass of replacing elastic high level client with low level
shroffk Aug 6, 2026
86d8ee9
move sar to the low level elastic rest client
shroffk Aug 7, 2026
c82c486
switching all remaining elastic high level client usage to low level …
shroffk Aug 10, 2026
4ea5933
Merge pull request #3906 from ControlSystemStudio/jdk-25
shroffk Aug 11, 2026
26a3314
cleanup the local test docker file
shroffk Aug 18, 2026
fcd1d3b
Moving all phoebus modules to springboot 4.1.0
shroffk Aug 18, 2026
6bb1ad0
update SAR properties for elastic 9.4.4
shroffk Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CI_VERSIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ file is the checklist of what needs periodic review and where each pin lives.

| What | Version | Defined in | Notes |
|------|---------|------------|-------|
| Java (JDK) | `21` | `.github/actions/setup-java/action.yml` | Single source of truth for the CI JDK. Must match `maven.compiler.source`/`maven.compiler.target` in `pom.xml`. Review when the project adopts a new LTS. |
| Java (JDK) | `25` | `.github/actions/setup-java/action.yml` | Single source of truth for the CI JDK. Must match `maven.compiler.source`/`maven.compiler.target` in `pom.xml` and the `openjfx.version` line. Review when the project adopts a new LTS. |
| Elasticsearch | `8.11.2` | `.github/workflows/_integration-test.yml` and `services/save-and-restore/docker-compose.yml` | Service container for the save-and-restore integration tests. Update both files together. |

## Automatically maintained
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-java/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ runs:
- uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287
with:
distribution: temurin
java-version: '21'
java-version: '25'
cache: maven
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public void testDirectory()
}

@Test
@DisabledOnOs(OS.WINDOWS)
public void testCombineNotWindows()
{
String path = ModelResourceUtil.combineDisplayPaths(null, "example.opi");
Expand Down
11 changes: 10 additions & 1 deletion app/save-and-restore/model/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,21 @@
<version>${tools.jackson.version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.glassfish/javax.json -->
<!-- Old Glassfish javax.json impl — required by org.epics:vtype-json which
uses javax.json.spi.JsonProvider SPI. Must coexist with jakarta.json
because the two SPI registrations are under different class names. -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
<!-- New Glassfish jakarta.json impl — satisfies jakarta.json.spi.JsonProvider
SPI used by elasticsearch-java 9.x and other Jakarta EE consumers. -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.json</artifactId>
<version>2.0.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
import org.springframework.web.socket.messaging.WebSocketStompClient;

import javax.websocket.DeploymentException;
import jakarta.websocket.DeploymentException;
import java.lang.reflect.Type;
import java.net.URI;
import java.util.ArrayList;
Expand Down Expand Up @@ -151,7 +151,7 @@ public void connect() {
try {
synchronized (WebSocketClientService.this) {
if (attemptReconnect.get()) {
stompSession = stompClient.connect(connectUrl, sessionHandler).get();
stompSession = stompClient.connectAsync(connectUrl, sessionHandler).get();
stompSession.subscribe(this.subscriptionEndpoint, new StompFrameHandler() {
@Override
public Type getPayloadType(StompHeaders headers) {
Expand Down Expand Up @@ -268,7 +268,7 @@ public static boolean checkAvailability(String webSocketConnectUrl) {
WebSocketClient webSocketClient = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(webSocketClient);
try {
StompSession stompSession = stompClient.connect(webSocketConnectUrl, new StompSessionHandlerAdapter() {
StompSession stompSession = stompClient.connectAsync(webSocketConnectUrl, new StompSessionHandlerAdapter() {
@Override
public Type getPayloadType(StompHeaders headers) {
return super.getPayloadType(headers);
Expand Down
22 changes: 11 additions & 11 deletions dependencies/phoebus-target/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
</properties>

<profiles>
<!-- Overriding the default release profile to run the pre release script
with makes the required modification to .classpath and other manually maintained
<!-- Overriding the default release profile to run the pre release script
with makes the required modification to .classpath and other manually maintained
files -->
<profile>
<id>release</id>
Expand Down Expand Up @@ -60,7 +60,7 @@
</profiles>

<dependencies>
<!-- For testing. mockito-all contains hamcrest packages, resulting in
<!-- For testing. mockito-all contains hamcrest packages, resulting in
conflicts. This combination of junit, mockito, hamcrest seems to work -->
<dependency>
<groupId>org.phoebus</groupId>
Expand Down Expand Up @@ -481,10 +481,10 @@
</dependency>

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
Expand All @@ -500,7 +500,7 @@
</dependency>

<!--JUL bindings for sfl4j-->
<dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.28</version>
Expand Down Expand Up @@ -551,7 +551,7 @@
<artifactId>epics-jackie-client</artifactId>
<version>3.1.0</version>
</dependency>

<!-- bouncycastle library used in PVA to decode and check OCSP confirmation of certificates
bcpkix depends on bcutil, which depends on bcprov
-->
Expand All @@ -570,7 +570,7 @@
<artifactId>bcprov-jdk18on</artifactId>
<version>1.84</version>
</dependency>

<!-- Lib to read/write MS Office (Excel, ..) files, fetching only POI itself -->
<dependency>
<groupId>org.apache.poi</groupId>
Expand Down Expand Up @@ -610,7 +610,7 @@
<artifactId>tika-core</artifactId>
<version>3.2.0</version>
</dependency>

<!-- ChartFX library for the Waterfall Plot widget -->
<dependency>
<groupId>io.fair-acc</groupId>
Expand Down
4 changes: 2 additions & 2 deletions dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
<profiles>
<profile>
<id>packageTarget</id>
<!-- Package the phoebus product with dependencies, run scripts, and
<!-- Package the phoebus product with dependencies, run scripts, and
sources -->
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<version>3.11.0</version>
<executions>
<execution>
<id>download-sources</id>
Expand Down
10 changes: 0 additions & 10 deletions misc/Dockerfile

This file was deleted.

12 changes: 7 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
<epics.version>7.0.11</epics.version>
<epics.util.version>1.0.8</epics.util.version>
<vtype.version>1.0.8</vtype.version>
<openjfx.version>21.0.7</openjfx.version>
<openjfx.version>25.0.4</openjfx.version>
<!-- netscape.javascript jar for the JDK 26+ profiles; versioned separately
from openjfx as it's only published for 25+. -->
<jsobject.version>26.0.1</jsobject.version>
Expand All @@ -93,12 +93,13 @@
<derby.version>10.16.1.1</derby.version>
<jython.version>2.7.4b1</jython.version>
<jgit.version>6.9.0.202403050737-r</jgit.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<activemq.client.version>5.18.4</activemq.client.version>
<commons.compress.version>1.26.1</commons.compress.version>
<spring.framework.version>5.3.22</spring.framework.version>
<spring.boot.version>2.7.18</spring.boot.version>
<spring.boot.version>4.1.0</spring.boot.version>
<springdoc.version>3.1.0</springdoc.version>
</properties>
<build>
<plugins>
Expand All @@ -110,6 +111,7 @@
<target>${maven.compiler.target}</target>
<fork>true</fork>
<compilerArgs>
<arg>-parameters</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
Expand Down Expand Up @@ -148,7 +150,7 @@
</goals>
</execution>
</executions>
</plugin>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
Expand Down
8 changes: 5 additions & 3 deletions services/alarm-config-logger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
<version>6.0.0-SNAPSHOT</version>
</parent>
<properties>
<java.version>21</java.version>
<java.version>25</java.version>
<!-- override root spring.boot.version for this module only -->
<spring.boot.version>4.1.0</spring.boot.version>
</properties>
<artifactId>service-alarm-config-logger</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
Expand Down Expand Up @@ -91,8 +93,8 @@
<artifactId>jackson-annotations</artifactId>
<version>${jackson.annotations.version}</version>
</dependency>
<!--JUL bindings for sfl4j-->
<dependency>
<!--JUL bindings for slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.28</version>
Expand Down
29 changes: 21 additions & 8 deletions services/alarm-logger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
<version>6.0.0-SNAPSHOT</version>
</parent>
<properties>
<java.version>21</java.version>
<java.version>25</java.version>
<!-- override root spring.boot.version for this module only -->
<spring.boot.version>4.1.0</spring.boot.version>
</properties>
<artifactId>service-alarm-logger</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
Expand Down Expand Up @@ -60,16 +62,27 @@
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client-sniffer</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<!-- Rest5Client in elasticsearch-java 9.x requires HttpClient 5.2+ -->
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5-h2</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
Expand Down Expand Up @@ -141,8 +154,8 @@

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public class AlarmMessageLogger implements Runnable {
* Create a alarm logger for the alarm messages (both state and configuration)
* for a given alarm server topic.
* This runnable will create the kafka streams for the given alarm messages which match the format 'topic'
*
*
* @param topic - the alarm topic in kafka
*/
public AlarmMessageLogger(String topic) {
Expand Down Expand Up @@ -189,9 +189,9 @@ public long extract(ConsumerRecord<Object, Object> record, long previousTimestam

alarms.split(Named.as("alarm-"))
.branch((k, v) -> k.startsWith("state"),
Branched.withConsumer(alarmStateStream -> processAlarmStateStream(alarmStateStream)))
Branched.withConsumer(this::processAlarmStateStream))
.branch((k, v) -> k.startsWith("config"),
Branched.withConsumer(alarmConfigStream -> processAlarmConfigurationStream(alarmConfigStream)))
Branched.withConsumer(this::processAlarmConfigurationStream))
.defaultBranch(Branched.withConsumer(stream -> {
// Log each unmatched key in the default branch
stream.foreach((k, v) -> logger.warning("Unknown alarm message type for key: " + k));
Expand Down Expand Up @@ -314,7 +314,7 @@ public void init(ProcessorContext context) {

@Override
public KeyValue<String, AlarmConfigMessage> transform(String key, AlarmMessage value) {

key = key.replace("\\", "");
if(value != null) {
AlarmConfigMessage newValue = value.getAlarmConfigMessage();
Expand All @@ -328,9 +328,9 @@ public KeyValue<String, AlarmConfigMessage> transform(String key, AlarmMessage v

@Override
public void close() {

}

};
}
});
Expand Down
Loading
Loading