Skip to content
Merged
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
37 changes: 37 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"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"
}
}
},

"remoteUser": "vscode"
}
24 changes: 23 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down