From 715b275d496ba8a75f993df04796ac1cba485f34 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 13:37:35 +0200
Subject: [PATCH 01/13] cherry-pick Dockerfile from develop branch - upgrade
Dockerfile base images from jdk 17 to 21 - switch from focal to alpine
---
Dockerfile | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 9ea7fb11..ec1a9fb2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,7 +4,7 @@
################################################################################
# BUILD JAR
-FROM maven:3-eclipse-temurin-17-focal AS builder
+FROM maven:3-eclipse-temurin-21-alpine AS builder
WORKDIR /builder
@@ -16,12 +16,11 @@ RUN mvn --quiet --batch-mode --update-snapshots --fail-fast -DskipTests package
################################################################################
# BUILD IMAGE
-FROM eclipse-temurin:17-jdk-focal
+FROM eclipse-temurin:21-jdk-alpine
# add non-root user to run the app
# https://spring.io/guides/gs/spring-boot-docker
-# on ubuntu the following creates a group with the same name as user
-RUN adduser spring --system --group
+RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
WORKDIR /fdp
From 7a26bdef62e29ad08366b2d7bbf8816a387dc173 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 13:42:39 +0200
Subject: [PATCH 02/13] upgrade v1.17.x to JDK 21
---
.github/workflows/code-style.yml | 6 +++---
.github/workflows/docker-publish.yml | 2 +-
.github/workflows/maven-verify.yml | 2 +-
.github/workflows/security.yml | 2 +-
README.md | 2 +-
pom.xml | 4 ++--
6 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml
index 166f9385..7a1282c1 100644
--- a/.github/workflows/code-style.yml
+++ b/.github/workflows/code-style.yml
@@ -18,7 +18,7 @@ jobs:
env:
JAVA_DISTRIBUTION: temurin
- JAVA_VERSION: 17
+ JAVA_VERSION: 21
steps:
- name: Checkout repository
@@ -45,7 +45,7 @@ jobs:
env:
JAVA_DISTRIBUTION: temurin
- JAVA_VERSION: 17
+ JAVA_VERSION: 21
steps:
- name: Checkout repository
@@ -72,7 +72,7 @@ jobs:
env:
JAVA_DISTRIBUTION: temurin
- JAVA_VERSION: 17
+ JAVA_VERSION: 21
steps:
- name: Checkout repository
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 42d7c902..5179430e 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -17,7 +17,7 @@ jobs:
verify:
uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@v2
with:
- java-version: 17
+ java-version: 21
# todo: enable tests when test duration has been minimized
mvn-options: "-DskipTests"
publish:
diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml
index c6417e64..81c6ba8d 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -26,7 +26,7 @@ jobs:
- os: macos-14
mongo: 8
java-version:
- - 17
+ - 21
uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@v2
with:
runner: ${{ matrix.runner.os }}
diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml
index fac0979e..e1789e1c 100644
--- a/.github/workflows/security.yml
+++ b/.github/workflows/security.yml
@@ -23,7 +23,7 @@ jobs:
env:
JAVA_DISTRIBUTION: temurin
- JAVA_VERSION: 17
+ JAVA_VERSION: 21
steps:
- name: Checkout repository
diff --git a/README.md b/README.md
index a0c1b964..f4393b05 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ e.g. [app.fairdatapoint.org/swagger-ui.html](https://app.fairdatapoint.org/swagg
### Technology Stack
-- **Java** (JDK 17)
+- **Java** (JDK 21)
- **MongoDB** (4.2)
- **Maven** (3.2.5 or higher)
- **Docker** (19.03.0-ce or higher) - *for building Docker image only*
diff --git a/pom.xml b/pom.xml
index a1d1cd98..38f02c11 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,8 +47,8 @@
UTF-8
- 17
- 17
+ 21
+ 21
2.0.0
From 2e0edf75efe6d70dc8fd872d7eb023bc678e2245 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 14:02:29 +0200
Subject: [PATCH 03/13] cherry-pick pom.xml from develop branch
except the postgres stuff
---
pom.xml | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/pom.xml b/pom.xml
index 38f02c11..e8cc4a44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.1.1
+ 3.4.5
nl.dtls
@@ -56,25 +56,25 @@
6.0.0
- 2.1.0
+ 2.8.6
5.3.1
4.1.1
- 4.3.2
- 0.11.5
- 1.18.28
+ 5.1.3
+ 0.12.6
+ 1.18.38
- 5.2.1
+ 5.4.4
- 4.2
+ 5.0.0
0.7.6.201602180812
4.3.0
2.3.1
- 6.0.0
+ 9.0.1
0.2.0
- 3.3.0
- 4.7.3.5
+ 3.6.0
+ 4.9.3.0
@@ -347,12 +347,12 @@
com.puppycrawl.tools
checkstyle
- 10.12.1
+ 10.23.1
io.spring.javaformat
spring-javaformat-checkstyle
- 0.0.39
+ 0.0.43
From 244ac59d06c4e3f03e03e7dda8053e061b613e57 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 14:03:48 +0200
Subject: [PATCH 04/13] cherry-pick renamed io.jsonwebtoken methods in
JwtService.java from develop branch
---
.../dtls/fairdatapoint/service/jwt/JwtService.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/main/java/nl/dtls/fairdatapoint/service/jwt/JwtService.java b/src/main/java/nl/dtls/fairdatapoint/service/jwt/JwtService.java
index db1cfe85..611dc25a 100644
--- a/src/main/java/nl/dtls/fairdatapoint/service/jwt/JwtService.java
+++ b/src/main/java/nl/dtls/fairdatapoint/service/jwt/JwtService.java
@@ -73,7 +73,7 @@ public class JwtService {
protected void init() {
secretKey = Base64.getEncoder().encodeToString(secretKey.getBytes());
key = new SecretKeySpec(secretKey.getBytes(), SignatureAlgorithm.HS256.getJcaName());
- parser = Jwts.parserBuilder().setSigningKey(key).build();
+ parser = Jwts.parser().setSigningKey(key).build();
}
public String createToken(AuthDTO authDTO) {
@@ -94,13 +94,13 @@ public Authentication getAuthentication(String token) {
}
public String getUserUuid(String token) {
- return parser.parseClaimsJws(token).getBody().getSubject();
+ return parser.parseClaimsJws(token).getPayload().getSubject();
}
public boolean validateToken(String token) {
try {
final Jws claims = parser.parseClaimsJws(token);
- return !claims.getBody().getExpiration().before(new Date());
+ return !claims.getPayload().getExpiration().before(new Date());
}
catch (JwtException | IllegalArgumentException exception) {
throw new UnauthorizedException("Expired or invalid JWT token");
@@ -108,13 +108,13 @@ public boolean validateToken(String token) {
}
private String buildToken(User user) {
- final Claims claims = Jwts.claims().setSubject(user.getUuid());
+ final Claims claims = Jwts.claims().subject(user.getUuid().toString()).build();
final Date now = new Date();
final Date validity = new Date(now.getTime() + (expiration * DAY_MS));
return Jwts.builder()
- .setClaims(claims)
- .setIssuedAt(now)
- .setExpiration(validity)
+ .claims(claims)
+ .issuedAt(now)
+ .expiration(validity)
.signWith(key)
.compact();
}
From 78c2291c90fa0d943baed843be423d7929b18af8 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 14:17:03 +0200
Subject: [PATCH 05/13] upgrade two build dependencies
---
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index e8cc4a44..67414f7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,7 +56,7 @@
6.0.0
- 2.8.6
+ 2.8.8
5.3.1
4.1.1
5.1.3
@@ -352,7 +352,7 @@
io.spring.javaformat
spring-javaformat-checkstyle
- 0.0.43
+ 0.0.44
From 31d67875024b84338e01139a7d7e666da87c0705 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 14:17:31 +0200
Subject: [PATCH 06/13] update changelog
---
CHANGELOG.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index afbe8714..401073f7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- Cleaned up Dockerfile (backport)
- Separate Github workflows for test and publish (backport)
+- Upgraded to Java JDK 21 (LTS)
+- Upgraded to latest dependencies
## [1.17.2]
From 449de744122896291586cc5f1ef32890156b8d47 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 14:22:45 +0200
Subject: [PATCH 07/13] remove unused import
---
.../service/metadata/state/MetadataStateService.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/main/java/nl/dtls/fairdatapoint/service/metadata/state/MetadataStateService.java b/src/main/java/nl/dtls/fairdatapoint/service/metadata/state/MetadataStateService.java
index aa3cf62f..2c5c37bf 100644
--- a/src/main/java/nl/dtls/fairdatapoint/service/metadata/state/MetadataStateService.java
+++ b/src/main/java/nl/dtls/fairdatapoint/service/metadata/state/MetadataStateService.java
@@ -44,7 +44,6 @@
import java.util.stream.Collectors;
import static java.lang.String.format;
-import static nl.dtls.fairdatapoint.entity.metadata.MetadataGetter.getUri;
import static nl.dtls.fairdatapoint.util.RdfUtil.getObjectsBy;
import static nl.dtls.fairdatapoint.util.ValueFactoryHelper.i;
From 69cad8fedb318a3c5f9495f7f55032dd2a855452 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 18:02:40 +0200
Subject: [PATCH 08/13] upgrade mongock version to latest
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 67414f7e..6dd09730 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,7 +57,7 @@
2.8.8
- 5.3.1
+ 5.5.1
4.1.1
5.1.3
0.12.6
From e16a01c6acfbe50dcd8d063cf2786be92313e0b9 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Tue, 20 May 2025 18:03:57 +0200
Subject: [PATCH 09/13] remove pinned version for spring-data-mongodb
this caused a silent version conflict, because spring-data-mongodb is actually managed via the spring-boot-starter-parent
---
pom.xml | 2 --
1 file changed, 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 6dd09730..fd25dd7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,6 @@
2.8.8
5.5.1
- 4.1.1
5.1.3
0.12.6
1.18.38
@@ -175,7 +174,6 @@
org.springframework.data
spring-data-mongodb
- ${mongodb.spring-data.version}
From 13cfe80d499ed93a4bf84d450d9f192022c74b18 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Wed, 21 May 2025 09:50:29 +0200
Subject: [PATCH 10/13] remove lombok version pin
to prevent confllicts, because lombok is already managed by spring-boot-starter-parent
---
pom.xml | 2 --
1 file changed, 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index fd25dd7a..d52910fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,7 +60,6 @@
5.5.1
5.1.3
0.12.6
- 1.18.38
5.4.4
@@ -226,7 +225,6 @@
org.projectlombok
lombok
- ${lombok.version}
From ad9b57690afb78ff8a8c826af60c1a164ef3d630 Mon Sep 17 00:00:00 2001
From: Patrick Dekker
<168626347+PatrickDekkerHealthRI@users.noreply.github.com>
Date: Tue, 27 May 2025 14:09:37 +0200
Subject: [PATCH 11/13] fix: update Metadataschema, test fixtures should
produce valid objects (#703)
---
.../development/schema/data/MetadataSchemaFixtures.java | 1 +
.../nl/dtls/fairdatapoint/acceptance/schema/Import_POST.java | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/main/java/nl/dtls/fairdatapoint/database/mongo/migration/development/schema/data/MetadataSchemaFixtures.java b/src/main/java/nl/dtls/fairdatapoint/database/mongo/migration/development/schema/data/MetadataSchemaFixtures.java
index c7af5276..a0d19b27 100644
--- a/src/main/java/nl/dtls/fairdatapoint/database/mongo/migration/development/schema/data/MetadataSchemaFixtures.java
+++ b/src/main/java/nl/dtls/fairdatapoint/database/mongo/migration/development/schema/data/MetadataSchemaFixtures.java
@@ -59,6 +59,7 @@ private MetadataSchema createSchemaFixture(
.version(VERSION)
.versionString(VERSION.toString())
.name(name)
+ .description("")
.definition(definition)
.targetClasses(targetClasses)
.extendSchemas(extendsSchemas)
diff --git a/src/test/java/nl/dtls/fairdatapoint/acceptance/schema/Import_POST.java b/src/test/java/nl/dtls/fairdatapoint/acceptance/schema/Import_POST.java
index 23af7b31..50e7d34a 100644
--- a/src/test/java/nl/dtls/fairdatapoint/acceptance/schema/Import_POST.java
+++ b/src/test/java/nl/dtls/fairdatapoint/acceptance/schema/Import_POST.java
@@ -23,7 +23,6 @@
package nl.dtls.fairdatapoint.acceptance.schema;
import nl.dtls.fairdatapoint.WebIntegrationTest;
-import nl.dtls.fairdatapoint.api.dto.schema.MetadataSchemaRemoteDTO;
import nl.dtls.fairdatapoint.api.dto.schema.MetadataSchemaVersionDTO;
import nl.dtls.fairdatapoint.database.mongo.migration.development.schema.data.MetadataSchemaFixtures;
import nl.dtls.fairdatapoint.database.mongo.repository.MetadataSchemaRepository;
@@ -73,6 +72,8 @@ private MetadataSchemaVersionDTO schemaPublicDTO1() {
.description(metadataSchemaFixtures.customSchema().getDescription())
.definition(metadataSchemaFixtures.customSchema().getDefinition())
.abstractSchema(metadataSchemaFixtures.customSchema().isAbstractSchema())
+ .type(metadataSchemaFixtures.customSchema().getType())
+ .targetClasses(metadataSchemaFixtures.customSchema().getTargetClasses())
.extendsSchemaUuids(Collections.emptyList())
.build();
}
@@ -91,6 +92,8 @@ private MetadataSchemaVersionDTO schemaPublicDTO2() {
.description(metadataSchemaFixtures.customSchema().getDescription())
.definition(metadataSchemaFixtures.customSchema().getDefinition())
.abstractSchema(metadataSchemaFixtures.customSchema().isAbstractSchema())
+ .type(metadataSchemaFixtures.customSchema().getType())
+ .targetClasses(metadataSchemaFixtures.customSchema().getTargetClasses())
.extendsSchemaUuids(Collections.emptyList())
.build();
}
From bf3fe90bf1ba78219e8e6495ecc8141e3b7c9621 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Thu, 29 May 2025 22:23:03 +0200
Subject: [PATCH 12/13] bump versions for checkstyle and httpclient5
to match develop
---
pom.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index d52910fc..28ebd5ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,7 +62,7 @@
0.12.6
- 5.4.4
+ 5.5
5.0.0
@@ -343,12 +343,12 @@
com.puppycrawl.tools
checkstyle
- 10.23.1
+ 10.24.0
io.spring.javaformat
spring-javaformat-checkstyle
- 0.0.44
+ 0.0.45
From 89754290f683a585af931b62a5b878d8815a1dd4 Mon Sep 17 00:00:00 2001
From: dennisvang <29799340+dennisvang@users.noreply.github.com>
Date: Thu, 29 May 2025 23:09:33 +0200
Subject: [PATCH 13/13] Bump
org.springframework.boot:spring-boot-starter-parent from 3.4.5 to 3.5.0
(#702)
* Bump org.springframework.boot:spring-boot-starter-parent
Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.5.0.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.5.0)
---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
dependency-version: 3.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
* fix test res302_redirectsToSwaggerUI
spring-boot 3.5 changed the way TestRestTemplate handles redirects
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.5-Release-Notes#follow-redirects-with-testresttemplate
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dennisvang <29799340+dennisvang@users.noreply.github.com>
---
pom.xml | 2 +-
.../dtls/fairdatapoint/acceptance/openapi/SwaggerUI_GET.java | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 28ebd5ba..189cbcbd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.4.5
+ 3.5.0
nl.dtls
diff --git a/src/test/java/nl/dtls/fairdatapoint/acceptance/openapi/SwaggerUI_GET.java b/src/test/java/nl/dtls/fairdatapoint/acceptance/openapi/SwaggerUI_GET.java
index 65d8b4ee..8caf7c76 100644
--- a/src/test/java/nl/dtls/fairdatapoint/acceptance/openapi/SwaggerUI_GET.java
+++ b/src/test/java/nl/dtls/fairdatapoint/acceptance/openapi/SwaggerUI_GET.java
@@ -27,6 +27,7 @@
import nl.dtls.fairdatapoint.utils.CustomPageImpl;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
+import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@@ -61,7 +62,8 @@ public void res302_redirectsToSwaggerUI() {
.build();
// WHEN
- ResponseEntity result = client.exchange(request, new ParameterizedTypeReference<>() {});
+ ResponseEntity result = client.withRedirects(ClientHttpRequestFactorySettings.Redirects.DONT_FOLLOW)
+ .exchange(request, new ParameterizedTypeReference<>() {});
// THEN
assertThat("Response code is FOUND", result.getStatusCode(), is(equalTo(HttpStatus.FOUND)));