diff --git a/.github/workflows/java-ci.yml b/.github/workflows/java-ci.yml
index 5b954e5..b3a4c22 100644
--- a/.github/workflows/java-ci.yml
+++ b/.github/workflows/java-ci.yml
@@ -8,14 +8,41 @@ on:
- main
jobs:
- build-and-test:
- name: Java CI - test
+ sdk-build-and-test:
+ name: SDK - Java ${{ matrix.java-version }}
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [8, 11, 17, 21]
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+
+ - name: Set up Java
+ uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
+ with:
+ distribution: 'temurin'
+ java-version: ${{ matrix.java-version }}
+
+ - name: Build and test SDK
+ run: mvn -B install -pl duo-universal-sdk
+
+ - name: Lint SDK with checkstyle
+ run: mvn checkstyle:check -pl duo-universal-sdk
+
+ - name: Verify release profile works
+ run: mvn -P release package -pl duo-universal-sdk
+
+ example-build-and-test:
+ name: Example App - Java ${{ matrix.java-version }}
+ runs-on: ubuntu-latest
+ needs: sdk-build-and-test
+
+ strategy:
+ matrix:
+ java-version: [17, 21]
+
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -28,16 +55,26 @@ jobs:
- name: Inject dummy example config
working-directory: duo-example
run: printf "duo.clientId=DIAAAAAAAAAAAAAAAAAA\nduo.clientSecret=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nduo.api.host=example.duosecurity.com\nduo.redirect.uri=http://localhost:8080\nduo.failmode=CLOSED\n" > ./src/main/resources/application.properties
-
- - name: Build and test with Maven
- run: mvn -B install
-
- - name: Lint with checkstyle
- run: mvn checkstyle:check
-
+
+ - name: Build example app with dependencies
+ run: mvn -B install -pl duo-example -am
+
+ - name: Lint example with checkstyle
+ run: mvn checkstyle:check -pl duo-example
+
- name: Verify example starts
working-directory: duo-example
run: mvn spring-boot:start
-
- - name: Verify release profile works
- run: mvn -P release package
+
+ ci-pass:
+ name: CI Pass
+ runs-on: ubuntu-latest
+ if: always()
+ needs: [sdk-build-and-test, example-build-and-test]
+ steps:
+ - name: Check job results
+ run: |
+ if [[ "${{ needs.sdk-build-and-test.result }}" != "success" || "${{ needs.example-build-and-test.result }}" != "success" ]]; then
+ echo "One or more jobs failed"
+ exit 1
+ fi
diff --git a/duo-example/pom.xml b/duo-example/pom.xml
index e780a29..e9e8abe 100644
--- a/duo-example/pom.xml
+++ b/duo-example/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.6.15
+ 3.4.7
4.0.0
@@ -34,52 +34,27 @@
http://github.com/duosecurity/duo_universal_java/tree/main
+
+ 17
+ 17
+
+
com.duosecurity
duo-universal-sdk
1.3.3-SNAPSHOT
-
- org.springframework
- spring-webmvc
- 5.3.24
-
org.springframework.boot
- spring-boot-autoconfigure
- 2.6.15
+ spring-boot-starter-web
-
- org.springframework.boot
- spring-boot-starter-tomcat
- 2.6.15
-
-
- org.apache.tomcat
- tomcat-util-scan
- 9.0.21
-
org.apache.tomcat.embed
tomcat-embed-jasper
- 9.0.21
provided
-
-
- org.eclipse.jdt.core.compiler
- ecj
- 4.6.1
- provided
-
-
-
- com.fasterxml.jackson.core
- jackson-core
- 2.16.0
-
diff --git a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java
index 8b071ee..ba5fa3e 100644
--- a/duo-example/src/main/java/com/duosecurity/controller/LoginController.java
+++ b/duo-example/src/main/java/com/duosecurity/controller/LoginController.java
@@ -7,9 +7,9 @@
import com.duosecurity.model.Token;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
-import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
diff --git a/duo-universal-sdk/pom.xml b/duo-universal-sdk/pom.xml
index 3f0584a..746a5a5 100644
--- a/duo-universal-sdk/pom.xml
+++ b/duo-universal-sdk/pom.xml
@@ -139,7 +139,7 @@
org.springframework.boot
spring-boot-maven-plugin
- 2.3.6.RELEASE
+ 3.4.7
org.apache.maven.plugins