diff --git a/.github/workflows/alarm-logger-docker-image.yml b/.github/workflows/alarm-logger-docker-image.yml index 94071123e6..d82f5c5788 100644 --- a/.github/workflows/alarm-logger-docker-image.yml +++ b/.github/workflows/alarm-logger-docker-image.yml @@ -19,7 +19,7 @@ jobs: - name: Setup Maven and Java Action uses: s4u/setup-maven-action@v1.18.0 with: - java-version: '21' + java-version: '25' maven-version: '3.9.6' - name: Build run: mvn --batch-mode install -DskipTests @@ -30,10 +30,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'temurin' cache: maven - name: Build with Maven @@ -41,19 +41,19 @@ jobs: - name: Login to the registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract meta-data for Docker id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Set up Docker Build uses: docker/setup-buildx-action@v3 - name: Build and publish the Docker image uses: docker/build-push-action@v5 - with: + with: context: services/alarm-logger push: true platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/alarm-server-docker-image.yml b/.github/workflows/alarm-server-docker-image.yml index 4fe2f28281..27aa8a319d 100644 --- a/.github/workflows/alarm-server-docker-image.yml +++ b/.github/workflows/alarm-server-docker-image.yml @@ -19,7 +19,7 @@ jobs: - name: Setup Maven and Java Action uses: s4u/setup-maven-action@v1.18.0 with: - java-version: '21' + java-version: '25' maven-version: '3.9.6' - name: Build run: mvn --batch-mode install -DskipTests @@ -30,10 +30,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'temurin' cache: maven - name: Build with Maven @@ -41,19 +41,19 @@ jobs: - name: Login to the registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ env.REGISTRY}} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract meta-data for Docker id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Set up Docker Build uses: docker/setup-buildx-action@v3 - name: Build and publish the Docker image uses: docker/build-push-action@v5 - with: + with: context: services/alarm-server push: true platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 00ee599c99..cf5b904d9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: - name: Setup Maven and Java Action uses: s4u/setup-maven-action@v1.18.0 with: - java-version: '21' + java-version: '25' maven-version: '3.9.6' - name: Build - run: mvn --batch-mode install -DskipTests \ No newline at end of file + run: mvn --batch-mode install -DskipTests diff --git a/.github/workflows/build_latest.yml b/.github/workflows/build_latest.yml index 72bc62f3be..b337794cc2 100644 --- a/.github/workflows/build_latest.yml +++ b/.github/workflows/build_latest.yml @@ -18,7 +18,7 @@ jobs: - name: Setup Maven and Java Action uses: s4u/setup-maven-action@v1.18.0 with: - java-version: '21' + java-version: '25' maven-version: '3.9.6' - name: Build run: mvn --batch-mode install -DskipTests diff --git a/.github/workflows/save-and-restore-docker-image.yml b/.github/workflows/save-and-restore-docker-image.yml index 56d2a3734e..daeb48c9d3 100644 --- a/.github/workflows/save-and-restore-docker-image.yml +++ b/.github/workflows/save-and-restore-docker-image.yml @@ -19,10 +19,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'temurin' cache: maven - name: Build with Maven @@ -30,19 +30,19 @@ jobs: - name: Login to the registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract meta-data for Docker id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Set up Docker Build uses: docker/setup-buildx-action@v3 - name: Build and publish the Docker image uses: docker/build-push-action@v5 - with: + with: context: services/save-and-restore push: true platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/scan-server-docker-image.yml b/.github/workflows/scan-server-docker-image.yml index f11f8a065f..74592a0963 100644 --- a/.github/workflows/scan-server-docker-image.yml +++ b/.github/workflows/scan-server-docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Maven and Java Action uses: s4u/setup-maven-action@v1.18.0 with: - java-version: '17' + java-version: '25' maven-version: '3.9.6' - name: Build run: mvn -Pexecutable-jar --batch-mode install -DskipTests @@ -31,10 +31,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '25' distribution: 'temurin' cache: maven - name: Build with Maven @@ -42,19 +42,19 @@ jobs: - name: Login to the registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract meta-data for Docker id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Set up Docker Build uses: docker/setup-buildx-action@v3 - name: Build and publish the Docker image uses: docker/build-push-action@v5 - with: + with: context: services/scan-server push: true platforms: linux/amd64,linux/arm64 diff --git a/.travis.yml b/.travis.yml index 1dc660ef2c..7e9188a6a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ sudo: required language: java dist: xenial jdk: - - openjdk21 + - openjdk25 services: - xvfb diff --git a/README.md b/README.md index ebd686403c..6d139b5199 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ https://control-system-studio.readthedocs.io ## Requirements - - [JDK21 or later, suggested is OpenJDK](https://adoptium.net/en-GB/temurin/releases?version=21). + - [JDK 25 or later, suggested is OpenJDK](https://adoptium.net/en-GB/temurin/releases?version=25). - [maven 3.x](https://maven.apache.org/) or [ant](http://ant.apache.org/) @@ -27,7 +27,7 @@ mvn clean verify -f dependencies/pom.xml Define the JAVA_HOME environment variable to point to your Java installation directory. Mac OS users should use something like: ``` -export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.0.11+10/Contents/Home +export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-25/Contents/Home ``` Verify through: ``` @@ -73,14 +73,14 @@ Download "Eclipse for Java Developers" from https://www.eclipse.org/downloads/pa Start Eclipse like this: - export JAVA_HOME=/path/to/your/jdk-21-or-later + export JAVA_HOME=/path/to/your/jdk-25-or-later export PATH="$JAVA_HOME/bin:$PATH" eclipse/eclipse -consoleLog Check Eclipse Preferences: - * Java, Installed JREs: JDK 21-or-later should be the default - * Java, Compiler: JDK Compliance should be "21" or higher + * Java, Installed JREs: JDK 25-or-later should be the default + * Java, Compiler: JDK Compliance should be "25" or higher ### Use plain Java configuration @@ -112,7 +112,7 @@ In Help/Eclipse Marketplace, search for Maven Integration for Eclipse Luna or ne Use File/Import/Maven/Existing Maven Projects to import the phoebus source code. There can be a compiler error because the "JRE System Library" in the Package Explorer shows "[J2SE-1.4]". -Right click on the affected projects (greeting-app, probe), Build Path, Configure Build Path, Libraries, Edit the JRE System Library to use the Workspace default (jdk-21). +Right click on the affected projects (greeting-app, probe), Build Path, Configure Build Path, Libraries, Edit the JRE System Library to use the Workspace default (jdk-25). Restart Eclipse IDE. Can now start product/src/main/java/org.phoebus.product/Launcher.java. @@ -126,14 +126,14 @@ To import the project: * Select the Phoebus directory * Import project from external model: Maven * Accept the default options and click Next twice - * Ensure that the JDK is version 21 or above + * Ensure that the JDK is version 25 or above * Change the project name to Phoebus and click finish To run the Phoebus application: * Run | Edit Configurations... * Select + | Application - * Module: Your JRE 21 + * Module: Your JRE 25 * Classpath `-cp`: select `product` from drop-down * Main class: `org.phoebus.product.Launcher` * Set the name to Phoebus @@ -145,7 +145,7 @@ To run the Phoebus application: First download [NetBeans 9](https://netbeans.apache.org/download/nb90/nb90.html), then the target platform as described above. After running NetBeans, select -**Tools** ➜ **Java Platforms** and make sure that a Java 9 or 10 platform is set as +**Tools** ➜ **Java Platforms** and make sure that a Java 25 platform is set as the default one. To open the Maven project Select the **File** ➜ **Open Project…** and select the diff --git a/app/queue-server/README.md b/app/queue-server/README.md index 38d478903e..3a5a6963aa 100644 --- a/app/queue-server/README.md +++ b/app/queue-server/README.md @@ -30,7 +30,7 @@ A JavaFX-based client for the [Bluesky QueueServer](https://blueskyproject.io/bl ### Prerequisites -- **Java 21** or later +- **Java 25** or later - **Maven** (for building from source) - **Bluesky Queue Server** running and accessible diff --git a/phoebus-product/README.md b/phoebus-product/README.md index 96fb1a4d96..9fe835569a 100644 --- a/phoebus-product/README.md +++ b/phoebus-product/README.md @@ -33,7 +33,7 @@ The following use cases have been verified: #### Prerequisites - * A working Phoebus build environment, i.e. JDK 11 and Maven. + * A working Phoebus build environment, i.e. JDK 25 and Maven. * `jpackage` must be run on the same OS as the target OS, i.e. cross builds are not supported. * JDK 14 or newer. * On Windows you also need to install the "WiX" tools, available here: https://wixtoolset.org/. @@ -51,7 +51,7 @@ The following use cases have been verified: 5. Determine a version for your application, in the following referred to as `app_version`. 6. For Window installers determine a menu group in which the application will be placed. If the group does not exist, it will be created. - 7. Identify the path to the Java 11 SDK. In the following referred to as ``. See below for additional + 7. Identify the path to the Java 25 SDK. In the following referred to as ``. See below for additional information on the selecttion of target Java runtime. ##### `jpackage` build step 1 @@ -91,10 +91,9 @@ and MacOS at the European Spallation Source. ### Selection of target Java runtime During build (step 1) a target Java runtime is specified. If this option (`--runtime-image`) is omitted, `jpackage` will -bundle the Java runtime containing the `jpackage` tool, i.e. Java 14+. Tests on Windows shows that the -target runtime selection may impact the end result, i.e. the Phoebus application installed from the msi file. -For instance, while the Java runtime Adopt JDK 11.0.9 can be bundled into a working installation, -Adopt JDK 11.0.12 will not work when Phoebus is launched. On MacOS Adopt JDK 11.0.12 works fine. +bundle the Java runtime containing the `jpackage` tool, i.e. Java 14+. Tests on Windows show that the +target runtime selection may impact the end result, i.e. the Phoebus application installed from the msi file. +When preparing installers, validate the exact JDK 25 runtime you plan to bundle on each supported OS. ### Application signing Starting from MacOS 13.2 (possibly from 13.0), installer packages must be signed for a hassle-free installation process. @@ -112,4 +111,3 @@ Developer Program may request/create such certificates. ` - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 556891b64c..21fb854d41 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,7 @@ 7.0.11 1.0.8 1.0.8 - 21.0.7 + 25.0.3 2.12.3 1.17 2.23.4 @@ -89,8 +89,8 @@ 10.16.1.1 2.7.4b1 6.9.0.202403050737-r - 21 - 21 + 25 + 25 5.18.4 1.26.1 5.3.22 @@ -100,7 +100,7 @@ maven-compiler-plugin - 3.6.2 + 3.14.1 ${maven.compiler.source} ${maven.compiler.target} @@ -122,12 +122,12 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M7 + 3.2.5 org.apache.maven.plugins maven-failsafe-plugin - 2.22.0 + 3.2.5 ${skipITTests} @@ -256,7 +256,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M7 + 3.2.5 true diff --git a/services/alarm-config-logger/pom.xml b/services/alarm-config-logger/pom.xml index 80fa30cfc0..c5c214b00c 100644 --- a/services/alarm-config-logger/pom.xml +++ b/services/alarm-config-logger/pom.xml @@ -6,7 +6,7 @@ 6.0.0-SNAPSHOT - 21 + 25 service-alarm-config-logger ${project.groupId}:${project.artifactId} diff --git a/services/alarm-logger/Dockerfile b/services/alarm-logger/Dockerfile index e6fb2d6328..2e40bef12c 100644 --- a/services/alarm-logger/Dockerfile +++ b/services/alarm-logger/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jre +FROM eclipse-temurin:25-jre # deployment unit COPY target/service-alarm-logger-*.jar /alarmlogger/service-alarm-logger-*.jar diff --git a/services/alarm-logger/pom.xml b/services/alarm-logger/pom.xml index f5acedffd4..3a11d266b5 100644 --- a/services/alarm-logger/pom.xml +++ b/services/alarm-logger/pom.xml @@ -6,7 +6,7 @@ 6.0.0-SNAPSHOT - 21 + 25 8.2.0 service-alarm-logger diff --git a/services/alarm-server/Dockerfile b/services/alarm-server/Dockerfile index 1ba2b6d146..e722090991 100644 --- a/services/alarm-server/Dockerfile +++ b/services/alarm-server/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jre +FROM eclipse-temurin:25-jre # deployment unit COPY target/service-alarm-server-*.jar /alarmserver/service-alarm-server-*.jar diff --git a/services/save-and-restore/Dockerfile b/services/save-and-restore/Dockerfile index 3e153dd093..de05f0180a 100644 --- a/services/save-and-restore/Dockerfile +++ b/services/save-and-restore/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jre +FROM eclipse-temurin:25-jre # deployment unit COPY target/service-save-and-restore-*.jar /saveandrestore/service-save-and-restore-*.jar diff --git a/services/save-and-restore/README.md b/services/save-and-restore/README.md index 19ad7578ba..ae1d1cff3e 100644 --- a/services/save-and-restore/README.md +++ b/services/save-and-restore/README.md @@ -4,7 +4,7 @@ The save-and-restore service implements service as a collection of REST endpoints. These can be used by clients to manage configurations (aka save sets) and snapshots, to compare snapshots and to restore PV values from snapshots. -The service is packaged as a self-contained Spring Boot jar file. External dependencies are limited to a JVM (Java 21+) +The service is packaged as a self-contained Spring Boot jar file. External dependencies are limited to a JVM (Java 25+) and a running instance of Elasticsearch (8.x). # Build diff --git a/services/save-and-restore/doc/index.rst b/services/save-and-restore/doc/index.rst index a4f0800ea7..55e8128741 100644 --- a/services/save-and-restore/doc/index.rst +++ b/services/save-and-restore/doc/index.rst @@ -5,7 +5,7 @@ The save-and-restore service implements service as a collection of REST endpoints. These can be used by clients to manage configurations (aka save sets) and snapshots, to compare snapshots and to restore PV values from snapshots. -The service is packaged as a self-contained Spring Boot jar file. External dependencies are limited to a JVM (Java 21+) +The service is packaged as a self-contained Spring Boot jar file. External dependencies are limited to a JVM (Java 25+) and a running instance of Elasticsearch (8.x). Running the service diff --git a/services/scan-server/Dockerfile b/services/scan-server/Dockerfile index 6df044c70f..c4f532a839 100644 --- a/services/scan-server/Dockerfile +++ b/services/scan-server/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jre +FROM eclipse-temurin:25-jre # deployment unit COPY target/service-scan-server-*.jar /scanserver/service-scan-server-*.jar