Skip to content

Commit 9d24395

Browse files
authored
Roll back to Java 17 (#463)
1 parent 5a257ce commit 9d24395

File tree

10 files changed

+29
-26
lines changed

10 files changed

+29
-26
lines changed

.devcontainer/devcontainer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "xAPI Java Development",
3-
"image": "mcr.microsoft.com/devcontainers/java:25",
3+
"image": "mcr.microsoft.com/devcontainers/java:17",
44

55
"features": {
66
"ghcr.io/devcontainers/features/java:1": {
@@ -15,7 +15,7 @@
1515
"java.jdt.ls.java.home": "/usr/lib/jvm/msopenjdk-current",
1616
"java.configuration.runtimes": [
1717
{
18-
"name": "JavaSE-25",
18+
"name": "JavaSE-17",
1919
"path": "/usr/lib/jvm/msopenjdk-current"
2020
}
2121
]

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
- uses: actions/setup-java@v5
5858
with:
5959
distribution: 'temurin'
60-
java-version: '25'
60+
java-version: '17'
6161

6262
# Initializes the CodeQL tools for scanning.
6363
# Uses custom configuration file to exclude test directories from analysis.

.github/workflows/copilot-setup-steps.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ jobs:
3232
- name: Checkout code
3333
uses: actions/checkout@v6
3434

35-
- name: Set up JDK 25
35+
- name: Set up JDK 17
3636
uses: actions/setup-java@v5
3737
with:
38-
java-version: "25"
38+
java-version: "17"
3939
distribution: "temurin"
4040
cache: maven
4141

.github/workflows/manual-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,10 @@ jobs:
140140
141141
echo "Tag $TAG_NAME does not exist. Proceeding with release."
142142
143-
- name: Set up JDK 25
143+
- name: Set up JDK 17
144144
uses: actions/setup-java@v5
145145
with:
146-
java-version: "25"
146+
java-version: "17"
147147
distribution: "temurin"
148148
cache: maven
149149
cache-dependency-path: |

.github/workflows/maven_pull_request.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- uses: actions/checkout@v6
15-
- name: Set up JDK 25
15+
- name: Set up JDK 17
1616
uses: actions/setup-java@v5
1717
with:
18-
java-version: "25"
18+
java-version: "17"
1919
distribution: "temurin"
2020
cache: maven
2121
cache-dependency-path: |

.github/workflows/maven_push.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
- uses: actions/checkout@v6
1515
with:
1616
fetch-depth: 0
17-
- name: Set up JDK 25
17+
- name: Set up JDK 17
1818
uses: actions/setup-java@v5
1919
with:
20-
java-version: "25"
20+
java-version: "17"
2121
distribution: "temurin"
2222
cache: maven
2323
cache-dependency-path: |

CONTRIBUTING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,24 @@ This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participatin
3232

3333
### Prerequisites
3434

35-
xAPI Java requires **Java 25 or newer**.
35+
xAPI Java requires **Java 17 or newer**.
3636

37-
#### Installing Java 25
37+
#### Installing Java 17
3838

3939
We recommend using [SDKMAN!](https://sdkman.io/) to install and manage Java versions:
4040

4141
```bash
4242
# Install SDKMAN (if not already installed)
4343
curl -s "https://get.sdkman.io" | bash
4444

45-
# Install Java 25 (Temurin distribution recommended)
46-
sdk install java 25.0.1-tem
45+
# Install Java 17 (Temurin distribution recommended)
46+
sdk install java 17.0.13-tem
4747

4848
# Verify installation
4949
java -version
5050
```
5151

52-
**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.
52+
**Note**: The exact identifier (e.g., `17.0.13-tem`) may vary by platform and availability. Run `sdk list java` to see available Java 17 versions for your system and choose the appropriate one for your platform.
5353

5454
### Setting Up Your Development Environment
5555

README.md

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

99
## Requirements
1010

11-
xAPI Java requires **Java 25 or newer**. See [CONTRIBUTING.md](CONTRIBUTING.md#prerequisites) for detailed installation instructions.
11+
xAPI Java requires **Java 17 or newer**. See [CONTRIBUTING.md](CONTRIBUTING.md#prerequisites) for detailed installation instructions.
1212

1313
## xAPI Java Client
1414

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<description>learning.dev xAPI Build</description>
1616
<url>https://github.com/BerryCloud/xapi-java</url>
1717
<properties>
18-
<java.version>25</java.version>
18+
<java.version>17</java.version>
1919
<jacoco-maven-plugin.version>0.8.14</jacoco-maven-plugin.version>
2020
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
2121
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>

xapi-client/src/main/java/dev/learning/xapi/client/StatementHttpMessageWriter.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,17 @@ private List<Object> getParts(Object object) {
164164

165165
final var list = new ArrayList<>();
166166

167-
final Stream<Attachment> attachments =
168-
switch (object) {
169-
case Statement statement -> getRealAttachments(statement);
170-
case List<?> statements
171-
when !statements.isEmpty() && statements.get(0) instanceof Statement ->
172-
((List<Statement>) statements).stream().flatMap(this::getRealAttachments);
173-
default -> null;
174-
};
167+
final Stream<Attachment> attachments;
168+
169+
if (object instanceof Statement statement) {
170+
attachments = getRealAttachments(statement);
171+
} else if (object instanceof List<?> statements
172+
&& !statements.isEmpty()
173+
&& statements.get(0) instanceof Statement) {
174+
attachments = ((List<Statement>) statements).stream().flatMap(this::getRealAttachments);
175+
} else {
176+
attachments = null;
177+
}
175178

176179
if (attachments == null) {
177180
// The object is not a statement or list of statements

0 commit comments

Comments
 (0)