From ff6547846abce0d149a0a98aef462957ccf75507 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:13:48 +0000 Subject: [PATCH 1/3] Initial plan From c3d6d3fdede5a0fd9fd1cd2df7a78bbb113f4f4e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:24:15 +0000 Subject: [PATCH 2/3] Update documentation and add devcontainer for Java 25 Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com> --- .devcontainer/devcontainer.json | 39 +++++++++++++++++++++++++++++++++ .github/copilot-instructions.md | 24 +++++++++++++++++++- README.md | 19 +++++++++++++++- 3 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..81fc73bb --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,39 @@ +{ + "name": "xAPI Java Development", + "image": "mcr.microsoft.com/devcontainers/java:1-25-bookworm", + + "features": { + "ghcr.io/devcontainers/features/java:1": { + "version": "25", + "jdkDistro": "tem", + "installMaven": "true" + } + }, + + "customizations": { + "vscode": { + "extensions": [ + "vscjava.vscode-java-pack", + "vscjava.vscode-maven", + "redhat.java", + "vscjava.vscode-java-debug", + "vscjava.vscode-java-test", + "vscjava.vscode-spring-boot-dashboard", + "pivotal.vscode-spring-boot" + ], + "settings": { + "java.configuration.runtimes": [ + { + "name": "JavaSE-25", + "path": "/usr/local/sdkman/candidates/java/current" + } + ], + "java.jdt.ls.java.home": "/usr/local/sdkman/candidates/java/current" + } + } + }, + + "postCreateCommand": "bash -c 'java -version || (curl -s \"https://get.sdkman.io\" | bash && source \"$HOME/.sdkman/bin/sdkman-init.sh\" && sdk install java 25.0.1-tem && sdk default java 25.0.1-tem)'", + + "remoteUser": "vscode" +} diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4143fc43..3ae6c7db 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -11,7 +11,7 @@ xAPI Java is a library that helps you create applications that send or receive x ## Technology Stack -- **Language**: Java 17 or newer (required) +- **Language**: Java 25 or newer (required) - **Build Tool**: Maven (using Maven Wrapper `./mvnw`) - **Framework**: Spring Boot 3.5.7, Spring WebClient (reactive) - **Code Style**: Google Java Style Guide enforced via CheckStyle @@ -20,6 +20,28 @@ xAPI Java is a library that helps you create applications that send or receive x - **Validation**: Jakarta Bean Validation - **Serialization**: Jackson (with custom modules for strict xAPI compliance) +## Environment Setup + +### Java Installation with SDKMAN + +This project requires Java 25. We recommend using [SDKMAN!](https://sdkman.io/) to manage Java versions: + +```bash +# Install SDKMAN (if not already installed) +curl -s "https://get.sdkman.io" | bash + +# Install Java 25 (Temurin distribution recommended) +sdk install java 25.0.1-tem + +# Set as default (optional) +sdk default java 25.0.1-tem + +# Verify installation +java -version +``` + +**Note**: The exact identifier (e.g., `25.0.1-tem`) may vary by platform and availability. Use `sdk list java` to see available Java 25 versions for your system. + ## Building and Testing ### Build Commands diff --git a/README.md b/README.md index 5b20393d..79b9d831 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,24 @@ Both the xAPI Client and xAPI Model use a [fluent interface](https://en.wikipedi ## Requirements -xAPI Java requires Java 17 or newer. +xAPI Java requires Java 25 or newer. + +### Installing Java 25 + +We recommend using [SDKMAN!](https://sdkman.io/) to install and manage Java versions: + +```bash +# Install SDKMAN (if not already installed) +curl -s "https://get.sdkman.io" | bash + +# Install Java 25 (Temurin distribution recommended) +sdk install java 25.0.1-tem + +# Verify installation +java -version +``` + +**Note**: The exact identifier (e.g., `25.0.1-tem`) may vary by platform and availability. Run `sdk list java` to see available Java 25 versions for your system and choose the appropriate one for your platform. ## xAPI Java Client From 966a647a148ca1f8f753a766e66938133e27a7ee Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:34:53 +0000 Subject: [PATCH 3/3] Remove unnecessary postCreateCommand from devcontainer Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com> --- .devcontainer/devcontainer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 81fc73bb..e5bc4e71 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -33,7 +33,5 @@ } }, - "postCreateCommand": "bash -c 'java -version || (curl -s \"https://get.sdkman.io\" | bash && source \"$HOME/.sdkman/bin/sdkman-init.sh\" && sdk install java 25.0.1-tem && sdk default java 25.0.1-tem)'", - "remoteUser": "vscode" }