diff --git a/README.md b/README.md index 34a4349184..ceb3812808 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). + - [JDK25 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/) @@ -24,10 +24,10 @@ mvn clean verify -f dependencies/pom.xml ## Building with maven -Define the JAVA_HOME environment variable to point to your Java installation directory. +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: ``` @@ -52,7 +52,7 @@ Set the environment variable `LANG` to `en_US.UTF-8` to execute tests in a specific locale, or build with `mvn -DskipTests ...` to skip tests. -### Running the phoebus application +### Running the phoebus application To run the product jar ``` @@ -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 @@ -253,20 +253,20 @@ Create a sonatype account and update the maven settings.xml file with your sonat ``` -**Prepare the release** -`mvn release:prepare` +**Prepare the release** +`mvn release:prepare` In this step will ensure there are no uncommitted changes, ensure the versions number are correct, tag the scm, etc. A full list of checks is documented [here](https://maven.apache.org/maven-release/maven-release-plugin/usage/prepare-release.html). -**Perform the release** -`mvn -Darguments="-Dskip-executable-jar" -Pdocs,releases release:perform` +**Perform the release** +`mvn -Darguments="-Dskip-executable-jar" -Pdocs,releases release:perform` Checkout the release tag, build, sign and push the build binaries to sonatype. The `docs` profile is needed in order to create required javadocs jars. -**Publish** +**Publish** Open the staging repository in [sonatype](https://s01.oss.sonatype.org/#stagingRepositories) and hit the *publish* button **Note:** -In order to keep the ant and maven builds in sync, before the prepare:release update the `version` in the -dependencies\ant_settings.xml to match the release version number. After the release is completed the `version` should +In order to keep the ant and maven builds in sync, before the prepare:release update the `version` in the +dependencies\ant_settings.xml to match the release version number. After the release is completed the `version` should updated to match the next development snapshotData version. 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/app/update/src/test/java/org/phoebus/applications/update/DownloadCancelTest.java b/app/update/src/test/java/org/phoebus/applications/update/DownloadCancelTest.java index 59bb2db773..79991ba1f3 100644 --- a/app/update/src/test/java/org/phoebus/applications/update/DownloadCancelTest.java +++ b/app/update/src/test/java/org/phoebus/applications/update/DownloadCancelTest.java @@ -29,9 +29,8 @@ * *

The download watcher used to force-cancel via the now-removed * {@code Thread.stop()}. It now closes the source stream on 'cancel', - * which must unblock the in-progress {@code Files.copy} on both the - * JDK 21 target (where {@code Thread.stop()} throws at runtime) and - * newer JDKs (where it no longer exists at all). + * which must unblock the in-progress {@code Files.copy} without + * relying on the JDK-dependent behavior of {@code Thread.stop()}. * * @author Gianluca Martino */ diff --git a/services/save-and-restore/README.md b/services/save-and-restore/README.md index 19ad7578ba..a684eca60d 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 @@ -24,7 +24,7 @@ Run the service like so: Where [options] may override default values for Elasticsearch host (localhost) and port (9200): --Delasticsearch.network.host=[host] +-Delasticsearch.network.host=[host] -Delasticsearch.http.port=[port] or you can use a `.properties file` @@ -62,7 +62,7 @@ The latest version of the service is available as a Docker image (ghcr.io/contro Docker compose files are provided. These depend on the environment variables as described below. -1. ```docker-compose.yml```. Use this to launch both Elasticsearch and the service. The environment variable ```HOST_IP_ADDRESS``` +1. ```docker-compose.yml```. Use this to launch both Elasticsearch and the service. The environment variable ```HOST_IP_ADDRESS``` should be set to the host's external IP address (i.e. **not** 127.0.0.1 or localhost). 2. ```docker-compose-save-and-restore.yml```. Use this to launch save-and-restore service only. The environment variable ```HOST_IP_ADDRESS``` should be set to the host's external IP address (i.e. **not** 127.0.0.1 or localhost), while the environment variable ```ELASTIC_HOST``` should @@ -71,10 +71,10 @@ Docker compose files are provided. These depend on the environment variables as Docker supports environment variables to be set in a file (default ```.env``` in current directory) like so: -```HOST_IP_ADDRESS=1.2.3.4``` -```ELASTIC_HOST=1.2.3.4``` -. -. +```HOST_IP_ADDRESS=1.2.3.4``` +```ELASTIC_HOST=1.2.3.4``` +. +. . This may be preferable compared to setting environment variables on command line, e.g. diff --git a/services/save-and-restore/doc/index.rst b/services/save-and-restore/doc/index.rst index a4f0800ea7..cb8f2b0578 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 @@ -1109,5 +1109,3 @@ If Elasticsearch is not running on localhost:9200, then add Java VM arguments li ``-Delasticsearch.network.host=`` ``-Delasticsearch.http.port=`` - -