diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c5d972429..3e99f4942 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,11 +25,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v3
with:
distribution: 'corretto'
- java-version: 17
+ java-version: 25
cache: maven
- name: mvn db-setup
run: ./mvnw package -f infrastructure/db-setup/pom.xml
@@ -62,11 +62,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v3
with:
distribution: 'corretto'
- java-version: 17
+ java-version: 25
cache: maven
- name: mvn initial
run: mvn package
@@ -79,11 +79,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v3
with:
distribution: 'corretto'
- java-version: 17
+ java-version: 25
cache: maven
- name: mvn build
run: mvn package
diff --git a/labs/unicorn-location-api/UnicornLocationFunction/pom.xml b/labs/unicorn-location-api/UnicornLocationFunction/pom.xml
index 61f8be013..4fc239e63 100644
--- a/labs/unicorn-location-api/UnicornLocationFunction/pom.xml
+++ b/labs/unicorn-location-api/UnicornLocationFunction/pom.xml
@@ -7,8 +7,8 @@
jar
API to store unicorn location records
- 17
- 17
+ 25
+ 25
UTF-8
UTF-8
diff --git a/labs/unicorn-location-api/final/unicorn-location-api-final/Dockerfile b/labs/unicorn-location-api/final/unicorn-location-api-final/Dockerfile
index 69f71e913..99835307b 100644
--- a/labs/unicorn-location-api/final/unicorn-location-api-final/Dockerfile
+++ b/labs/unicorn-location-api/final/unicorn-location-api-final/Dockerfile
@@ -14,7 +14,7 @@ RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jd
RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
# Maven
-ENV MVN_VERSION 3.9.6
+ENV MVN_VERSION 3.9.11
ENV MVN_FOLDERNAME apache-maven-${MVN_VERSION}
ENV MVN_FILENAME apache-maven-${MVN_VERSION}-bin.tar.gz
RUN curl -4 -L https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/${MVN_FILENAME} | tar -xvz
diff --git a/labs/unicorn-location-api/final/unicorn-location-api-final/UnicornLocationFunction/pom.xml b/labs/unicorn-location-api/final/unicorn-location-api-final/UnicornLocationFunction/pom.xml
index dce254b54..5a1c3aed4 100644
--- a/labs/unicorn-location-api/final/unicorn-location-api-final/UnicornLocationFunction/pom.xml
+++ b/labs/unicorn-location-api/final/unicorn-location-api-final/UnicornLocationFunction/pom.xml
@@ -7,8 +7,8 @@
jar
API to store unicorn location records
- 17
- 17
+ 25
+ 25
UTF-8
UTF-8
diff --git a/labs/unicorn-location-api/graal/Dockerfile b/labs/unicorn-location-api/graal/Dockerfile
index d8643ae15..9cf1b043b 100644
--- a/labs/unicorn-location-api/graal/Dockerfile
+++ b/labs/unicorn-location-api/graal/Dockerfile
@@ -14,7 +14,7 @@ RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jd
RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
# Maven
-ENV MVN_VERSION 3.9.9
+ENV MVN_VERSION 3.9.11
ENV MVN_FOLDERNAME apache-maven-${MVN_VERSION}
ENV MVN_FILENAME apache-maven-${MVN_VERSION}-bin.tar.gz
RUN curl -4 -L https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/${MVN_FILENAME} | tar -xvz
diff --git a/labs/unicorn-location-api/template.yaml b/labs/unicorn-location-api/template.yaml
index cde737dd2..3248b5726 100644
--- a/labs/unicorn-location-api/template.yaml
+++ b/labs/unicorn-location-api/template.yaml
@@ -16,7 +16,7 @@ Resources:
CodeUri: UnicornLocationFunction
FunctionName: unicorn-location-api-post
Handler: com.unicorn.location.UnicornPostLocationHandler::handleRequest
- Runtime: java21
+ Runtime: java25
Architectures:
- x86_64
MemorySize: 1024
diff --git a/labs/unicorn-stock-broker/pom.xml b/labs/unicorn-stock-broker/pom.xml
index 749435a37..dc45985e0 100644
--- a/labs/unicorn-stock-broker/pom.xml
+++ b/labs/unicorn-stock-broker/pom.xml
@@ -12,8 +12,8 @@
jar
API to store unicorn transactions
- 17
- 17
+ 25
+ 25
UTF-8
UTF-8
2025.0.0
diff --git a/labs/unicorn-stock-broker/template.yaml b/labs/unicorn-stock-broker/template.yaml
index c22f4ca4b..689eae6ed 100644
--- a/labs/unicorn-stock-broker/template.yaml
+++ b/labs/unicorn-stock-broker/template.yaml
@@ -7,7 +7,7 @@ Description: >
Globals:
Function:
- Runtime: java21
+ Runtime: java25
Architectures:
- x86_64
MemorySize: 2048
diff --git a/labs/unicorn-store/deploy.sh b/labs/unicorn-store/deploy.sh
index 686bd7935..c44d931a5 100755
--- a/labs/unicorn-store/deploy.sh
+++ b/labs/unicorn-store/deploy.sh
@@ -40,7 +40,7 @@ if [ $app == "spring-graalvm" ]
then
if [[ $build == "--build" ]]
then
- ./mvnw clean package -f software/alternatives/unicorn-store-basic/pom.xml
+ ./mvnw clean package -f software/alternatives/unicorn-store-spring-graalvm/pom.xml
fi
cd infrastructure/cdk
cdk deploy UnicornStoreSpringGraalVMApp --outputs-file target/output-spring-graalvm.json --require-approval never
diff --git a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreApp.java b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreApp.java
index 4504691b9..fe38c4cd4 100644
--- a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreApp.java
+++ b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreApp.java
@@ -59,8 +59,7 @@ public static void main(final String[] args) {
new NagPackSuppression.Builder().id("AwsSolutions-APIG3").reason("Workshop API Gateways do not need AWS WAF assigned").build(),
new NagPackSuppression.Builder().id("AwsSolutions-EC23").reason("Not needed").build(),
new NagPackSuppression.Builder().id("AwsSolutions-RDS13").reason("Workshop Database does not need backups").build(),
- new NagPackSuppression.Builder().id("CdkNagValidationFailure").reason("Suppress warnings see: https://github.com/cdklabs/cdk-nag/issues/817").build(),
- new NagPackSuppression.Builder().id("AwsSolutions-L1").reason("Workshop not upgraded to Java 25 yet").build()
+ new NagPackSuppression.Builder().id("CdkNagValidationFailure").reason("Suppress warnings see: https://github.com/cdklabs/cdk-nag/issues/817").build()
);
NagSuppressions.addStackSuppressions(infrastructureStack, suppression);
diff --git a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreStack.java b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreStack.java
index 90dce2a3b..e9cfec623 100644
--- a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreStack.java
+++ b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/UnicornStoreStack.java
@@ -57,7 +57,7 @@ private RestApi setupRestApi(Alias unicornStoreSpringLambdaAlias) {
private Alias createUnicornLambdaFunction() {
var lambda = Function.Builder.create(this, "UnicornStoreSpringFunction")
- .runtime(Runtime.JAVA_21)
+ .runtime(Runtime.JAVA_25)
.functionName("unicorn-store-spring")
.memorySize(512)
.timeout(Duration.seconds(29))
diff --git a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreMicronaut.java b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreMicronaut.java
index e9bd0b23a..b329e3357 100644
--- a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreMicronaut.java
+++ b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreMicronaut.java
@@ -40,7 +40,7 @@ private RestApi setupRestApi(Version unicornStoreLambdaContainer) {
private Version createUnicornLambdaFunction() {
var lambda = Function.Builder.create(this, "UnicornStoreMicronautFunction")
- .runtime(Runtime.JAVA_21)
+ .runtime(Runtime.JAVA_25)
.functionName("unicorn-store-micronaut")
.memorySize(2048)
.timeout(Duration.seconds(29))
diff --git a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreQuarkus.java b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreQuarkus.java
index e07e4c505..b187affab 100644
--- a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreQuarkus.java
+++ b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/alternatives/UnicornStoreQuarkus.java
@@ -41,7 +41,7 @@ private RestApi setupRestApi(Version unicornStoreLambdaContainer) {
private Version createUnicornLambdaFunction() {
var lambda = Function.Builder.create(this, "UnicornStoreQuarkusFunction")
- .runtime(Runtime.JAVA_21)
+ .runtime(Runtime.JAVA_25)
.functionName("unicorn-store-quarkus")
.memorySize(2048)
.timeout(Duration.seconds(29))
diff --git a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/constructs/DatabaseSetupConstruct.java b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/constructs/DatabaseSetupConstruct.java
index 9612e29c2..b3bc35ff6 100644
--- a/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/constructs/DatabaseSetupConstruct.java
+++ b/labs/unicorn-store/infrastructure/cdk/src/main/java/com/unicorn/constructs/DatabaseSetupConstruct.java
@@ -40,7 +40,7 @@ public DatabaseSetupConstruct(final Construct scope, final String id) {
private Function createDbSetupLambdaFunction() {
return Function.Builder.create(this, "DBSetupLambdaFunction")
- .runtime(Runtime.JAVA_21)
+ .runtime(Runtime.JAVA_25)
.memorySize(1024)
.timeout(Duration.seconds(29))
.code(Code.fromAsset("../db-setup/target/db-setup.jar"))
diff --git a/labs/unicorn-store/software/alternatives/unicorn-audit-service/pom.xml b/labs/unicorn-store/software/alternatives/unicorn-audit-service/pom.xml
index 292788905..93e2fce2f 100644
--- a/labs/unicorn-store/software/alternatives/unicorn-audit-service/pom.xml
+++ b/labs/unicorn-store/software/alternatives/unicorn-audit-service/pom.xml
@@ -14,7 +14,7 @@
Unicorn audit service
- 17
+ 25
UTF-8
UTF-8
diff --git a/labs/unicorn-store/software/alternatives/unicorn-store-micronaut/pom.xml b/labs/unicorn-store/software/alternatives/unicorn-store-micronaut/pom.xml
index ceb59a3ae..3bd382655 100644
--- a/labs/unicorn-store/software/alternatives/unicorn-store-micronaut/pom.xml
+++ b/labs/unicorn-store/software/alternatives/unicorn-store-micronaut/pom.xml
@@ -14,8 +14,8 @@
jar
- 17
- 17
+ 25
+ 25
true
com.unicorn.store.aot.generated
lambda
diff --git a/labs/unicorn-store/software/alternatives/unicorn-store-quarkus/pom.xml b/labs/unicorn-store/software/alternatives/unicorn-store-quarkus/pom.xml
index 69605745b..3ada64c1e 100644
--- a/labs/unicorn-store/software/alternatives/unicorn-store-quarkus/pom.xml
+++ b/labs/unicorn-store/software/alternatives/unicorn-store-quarkus/pom.xml
@@ -9,8 +9,8 @@
3.14.0
true
- 11
- 11
+ 25
+ 25
UTF-8
UTF-8
3.24.3
diff --git a/labs/unicorn-store/software/alternatives/unicorn-store-spring-graalvm/pom.xml b/labs/unicorn-store/software/alternatives/unicorn-store-spring-graalvm/pom.xml
index be8d2a3c8..830f0a6fd 100644
--- a/labs/unicorn-store/software/alternatives/unicorn-store-spring-graalvm/pom.xml
+++ b/labs/unicorn-store/software/alternatives/unicorn-store-spring-graalvm/pom.xml
@@ -14,7 +14,7 @@
Unicorn storage service
- 17
+ 25
UTF-8
UTF-8
com.unicorn.store.StoreApplication
diff --git a/labs/unicorn-store/software/unicorn-store-spring/pom.xml b/labs/unicorn-store/software/unicorn-store-spring/pom.xml
index 136bd0a86..9c7a6b13a 100644
--- a/labs/unicorn-store/software/unicorn-store-spring/pom.xml
+++ b/labs/unicorn-store/software/unicorn-store-spring/pom.xml
@@ -14,7 +14,7 @@
store
Unicorn storage service
- 17
+ 25
UTF-8
UTF-8
com.unicorn.store.StoreApplication
diff --git a/setup/setup-vscode.sh b/setup/setup-vscode.sh
index d9a0ca65d..e8b0ad7f2 100755
--- a/setup/setup-vscode.sh
+++ b/setup/setup-vscode.sh
@@ -3,12 +3,15 @@
## go to tmp directory
cd /tmp
-# temporarily disable the libuv use of io_uring https://github.com/amazonlinux/amazon-linux-2023/issues/840
-export UV_USE_IO_URING=0
-
sudo yum update
sudo yum install -y npm
+## Install Node LTS
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
+source ~/.bashrc
+nvm install --lts
+nvm use --lts
+
## Ensure AWS CLI v2 is installed
sudo yum -y remove aws-cli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
@@ -17,17 +20,17 @@ sudo ./aws/install
rm awscliv2.zip
aws --version
-## Set JDK 21 as default
-sudo yum -y install java-21-amazon-corretto-devel
-sudo update-alternatives --set java /usr/lib/jvm/java-21-amazon-corretto.x86_64/bin/java
-sudo update-alternatives --set javac /usr/lib/jvm/java-21-amazon-corretto.x86_64/bin/javac
-export JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto.x86_64
+## Set JDK 25 as default
+sudo yum -y install java-25-amazon-corretto-devel
+sudo update-alternatives --set java /usr/lib/jvm/java-25-amazon-corretto.x86_64/bin/java
+sudo update-alternatives --set javac /usr/lib/jvm/java-25-amazon-corretto.x86_64/bin/javac
+export JAVA_HOME=/usr/lib/jvm/java-25-amazon-corretto.x86_64
echo "export JAVA_HOME=${JAVA_HOME}" | tee -a ~/.bash_profile
echo "export JAVA_HOME=${JAVA_HOME}" | tee -a ~/.bashrc
java -version
## Install Maven
-MVN_VERSION=3.9.9
+MVN_VERSION=3.9.11
MVN_FOLDERNAME=apache-maven-${MVN_VERSION}
MVN_FILENAME=apache-maven-${MVN_VERSION}-bin.tar.gz
curl -4 -L https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/${MVN_FILENAME} | tar -xz