Skip to content

Commit 281af38

Browse files
Standardize Java 25 setup and documentation (#379)
* Update documentation and add devcontainer for Java 25 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
1 parent 6a41b79 commit 281af38

3 files changed

Lines changed: 78 additions & 2 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"name": "xAPI Java Development",
3+
"image": "mcr.microsoft.com/devcontainers/java:1-25-bookworm",
4+
5+
"features": {
6+
"ghcr.io/devcontainers/features/java:1": {
7+
"version": "25",
8+
"jdkDistro": "tem",
9+
"installMaven": "true"
10+
}
11+
},
12+
13+
"customizations": {
14+
"vscode": {
15+
"extensions": [
16+
"vscjava.vscode-java-pack",
17+
"vscjava.vscode-maven",
18+
"redhat.java",
19+
"vscjava.vscode-java-debug",
20+
"vscjava.vscode-java-test",
21+
"vscjava.vscode-spring-boot-dashboard",
22+
"pivotal.vscode-spring-boot"
23+
],
24+
"settings": {
25+
"java.configuration.runtimes": [
26+
{
27+
"name": "JavaSE-25",
28+
"path": "/usr/local/sdkman/candidates/java/current"
29+
}
30+
],
31+
"java.jdt.ls.java.home": "/usr/local/sdkman/candidates/java/current"
32+
}
33+
}
34+
},
35+
36+
"remoteUser": "vscode"
37+
}

.github/copilot-instructions.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ xAPI Java is a library that helps you create applications that send or receive x
1111

1212
## Technology Stack
1313

14-
- **Language**: Java 17 or newer (required)
14+
- **Language**: Java 25 or newer (required)
1515
- **Build Tool**: Maven (using Maven Wrapper `./mvnw`)
1616
- **Framework**: Spring Boot 3.5.7, Spring WebClient (reactive)
1717
- **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
2020
- **Validation**: Jakarta Bean Validation
2121
- **Serialization**: Jackson (with custom modules for strict xAPI compliance)
2222

23+
## Environment Setup
24+
25+
### Java Installation with SDKMAN
26+
27+
This project requires Java 25. We recommend using [SDKMAN!](https://sdkman.io/) to manage Java versions:
28+
29+
```bash
30+
# Install SDKMAN (if not already installed)
31+
curl -s "https://get.sdkman.io" | bash
32+
33+
# Install Java 25 (Temurin distribution recommended)
34+
sdk install java 25.0.1-tem
35+
36+
# Set as default (optional)
37+
sdk default java 25.0.1-tem
38+
39+
# Verify installation
40+
java -version
41+
```
42+
43+
**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.
44+
2345
## Building and Testing
2446

2547
### Build Commands

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,24 @@ Both the xAPI Client and xAPI Model use a [fluent interface](https://en.wikipedi
1010

1111
## Requirements
1212

13-
xAPI Java requires Java 17 or newer.
13+
xAPI Java requires Java 25 or newer.
14+
15+
### Installing Java 25
16+
17+
We recommend using [SDKMAN!](https://sdkman.io/) to install and manage Java versions:
18+
19+
```bash
20+
# Install SDKMAN (if not already installed)
21+
curl -s "https://get.sdkman.io" | bash
22+
23+
# Install Java 25 (Temurin distribution recommended)
24+
sdk install java 25.0.1-tem
25+
26+
# Verify installation
27+
java -version
28+
```
29+
30+
**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.
1431

1532
## xAPI Java Client
1633

0 commit comments

Comments
 (0)