diff --git a/.github/workflows/on.pr.yml b/.github/workflows/on.pr.yml
index 446f477..05f8a85 100644
--- a/.github/workflows/on.pr.yml
+++ b/.github/workflows/on.pr.yml
@@ -7,6 +7,8 @@ on:
- main
paths:
- 'api/**'
+ - 'Dockerfile'
+ - '.github/workflows/*'
jobs:
quality_profile:
@@ -20,11 +22,12 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- - name: Set up JDK 18
+ - name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'corretto'
- java-version: 18
+ java-version: '21'
+ check-latest: true
- uses: actions/cache@v4
with:
path: ~/.m2/repository
@@ -33,11 +36,6 @@ jobs:
${{ runner.os }}-maven-5Jun-
- name: Run unit tests
run: mvn -f pom.xml clean package
- - name: Set up JDK 21 for Sonar
- uses: actions/setup-java@v4
- with:
- distribution: 'corretto'
- java-version: 21
- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
diff --git a/Dockerfile b/Dockerfile
index 2c40f3c..142ba82 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,9 @@
-FROM artifacts.developer.gov.bc.ca/docker-remote/maven:3.8.7-openjdk-18 as build
+FROM artifacts.developer.gov.bc.ca/docker-remote/maven:3.9.9-amazoncorretto-21-alpine AS maven
+
+# Use the timezone-patched JDK for both compilation and the final runtime.
+FROM artifacts.developer.gov.bc.ca/docker-remote/amazoncorretto:21.0.12-alpine3.23 AS build
+COPY --from=maven /usr/share/maven /usr/share/maven
+ENV PATH="/usr/share/maven/bin:${PATH}"
WORKDIR /workspace/app
COPY api/pom.xml .
@@ -6,17 +11,17 @@ COPY api/src src
RUN mvn package -DskipTests
RUN mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar)
-FROM artifacts.developer.gov.bc.ca/docker-remote/openjdk:18.0.2.1-jdk-oracle
-RUN useradd -ms /bin/bash spring && mkdir -p /logs && chown -R spring:spring /logs && chmod 755 /logs
+FROM artifacts.developer.gov.bc.ca/docker-remote/amazoncorretto:21.0.12-alpine3.23
+RUN adduser -D -h /home/spring -s /bin/sh spring && mkdir -p /logs && chown -R spring:spring /logs && chmod 755 /logs
USER spring
VOLUME /tmp
ARG DEPENDENCY=/workspace/app/target/dependency
COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF
COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app
-ENTRYPOINT ["java","-Duser.name=EDUC_GRAD_RULE_ENGINE_API","-Xms512m","-Xmx512m","-noverify","-XX:TieredStopAtLevel=1",\
+ENTRYPOINT ["java","-Duser.name=EDUC_GRAD_RULE_ENGINE_API","-Xms512m","-Xmx512m","-XX:TieredStopAtLevel=1",\
"-XX:+UseParallelGC","-XX:MinHeapFreeRatio=20","-XX:MaxHeapFreeRatio=40","-XX:GCTimeRatio=4",\
- "-XX:AdaptiveSizePolicyWeight=90","-XX:MaxMetaspaceSize=100m","-XX:ParallelGCThreads=1",\
+ "-XX:AdaptiveSizePolicyWeight=90","-XX:MaxMetaspaceSize=300m","-XX:ParallelGCThreads=1",\
"-Djava.util.concurrent.ForkJoinPool.common.parallelism=1","-XX:CICompilerCount=2",\
"-XX:+ExitOnOutOfMemoryError","-Djava.security.egd=file:/dev/./urandom",\
"-Dspring.backgroundpreinitializer.ignore=true","-cp","app:app/lib/*",\
diff --git a/api/pom.xml b/api/pom.xml
index 9654673..fd46f10 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.0.2
+ 3.0.13
ca.bc.gov.educ
@@ -24,7 +24,10 @@
src/main/java/ca/bc/gov/educ/api/ruleengine/util/**,
src/main/java/ca/bc/gov/educ/api/ruleengine/controller/APIMetadataController.java
- 18
+ 21
+ 1.18.32
+ 0.8.12
+ 1.14.19
3.10.1
${java.version}
${java.version}
@@ -204,12 +207,12 @@
org.sonarsource.scanner.maven
sonar-maven-plugin
- 3.9.1.2184
+ 5.8.0.7211
org.jacoco
jacoco-maven-plugin
- 0.8.8
+ ${jacoco.version}
org.apache.maven.plugins
@@ -262,7 +265,14 @@
org.hibernate.orm.tooling
hibernate-enhance-maven-plugin
- 6.1.1.Final
+ ${hibernate.version}
+
+
+ net.bytebuddy
+ byte-buddy
+ ${byte-buddy.version}
+
+