Skip to content
Draft

Jdk25 #3839

Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/)


Expand All @@ -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:
```
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand All @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion app/queue-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
12 changes: 5 additions & 7 deletions phoebus-product/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/.
Expand All @@ -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 `<jdk_root>`. See below for additional
7. Identify the path to the Java 25 SDK. In the following referred to as `<jdk_root>`. See below for additional
information on the selecttion of target Java runtime.

##### `jpackage` build step 1
Expand Down Expand Up @@ -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.
Expand All @@ -112,4 +111,3 @@ Developer Program may request/create such certificates.

`


14 changes: 7 additions & 7 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.3</openjfx.version>
<jackson.version>2.12.3</jackson.version>
<batik.version>1.17</batik.version>
<mockito.version>2.23.4</mockito.version>
Expand All @@ -89,8 +89,8 @@
<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>
Expand All @@ -100,7 +100,7 @@
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.2</version>
<version>3.14.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
Expand All @@ -122,7 +122,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
<version>3.2.5</version>
<configuration>
<excludes>
<exclude>**/*FXTest.java</exclude>
Expand All @@ -132,7 +132,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<version>3.2.5</version>
<configuration>
<skipITs>${skipITTests}</skipITs>
</configuration>
Expand Down Expand Up @@ -288,7 +288,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
<version>3.2.5</version>
<configuration>
<systemPropertyVariables>
<ignore_local_ipv6>true</ignore_local_ipv6>
Expand Down
2 changes: 1 addition & 1 deletion services/alarm-config-logger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<version>6.0.0-SNAPSHOT</version>
</parent>
<properties>
<java.version>21</java.version>
<java.version>25</java.version>
</properties>
<artifactId>service-alarm-config-logger</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
Expand Down
2 changes: 1 addition & 1 deletion services/alarm-logger/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion services/alarm-logger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<version>6.0.0-SNAPSHOT</version>
</parent>
<properties>
<java.version>21</java.version>
<java.version>25</java.version>
<elasticsearch.version>8.2.0</elasticsearch.version>
</properties>
<artifactId>service-alarm-logger</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion services/alarm-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion services/save-and-restore/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion services/save-and-restore/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion services/save-and-restore/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion services/scan-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading