diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..6f3c96a
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,10 @@
+name: Java Tests
+
+on:
+ push:
+ branches:
+ - '**'
+
+jobs:
+ test:
+ uses: ./.github/workflows/test.yml
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 082e1ed..c1de1b3 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -3,42 +3,24 @@ name: Publish Java
on:
push:
tags:
- - '*'
- - '!**-dev**'
+ - '**'
jobs:
- release:
- runs-on: ubuntu-latest
- needs: publish
- permissions:
- contents: write
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
-
- - name: Set Version
- id: set_version
- run: |
- echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- shell: bash
-
- - name: Create Release
- run: |
- gh release create ${{ env.VERSION }} --title "Release ${{ env.VERSION }}"
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ test:
+ uses: ./.github/workflows/test.yml
publish:
runs-on: ubuntu-latest
+ needs: test
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v6
- name: Setup Java
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v5
with:
- java-version: '19'
- distribution: 'adopt'
+ java-version: '17'
+ distribution: 'temurin'
server-id: central
server-username: OSSRH_USERNAME
server-password: OSSRH_PASSWORD
@@ -54,3 +36,24 @@ jobs:
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSPHRASE }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
+
+ release:
+ runs-on: ubuntu-latest
+ needs: publish
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v6
+
+ - name: Set Version
+ id: set_version
+ run: |
+ echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ shell: bash
+
+ - name: Create Release
+ run: |
+ gh release create ${{ env.VERSION }} --title "Release ${{ env.VERSION }}"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..7459ebf
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,23 @@
+name: Run Tests
+
+on:
+ workflow_call:
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java-version: [17, 21, 24]
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v6
+
+ - name: Setup Java ${{ matrix.java-version }}
+ uses: actions/setup-java@v5
+ with:
+ java-version: ${{ matrix.java-version }}
+ distribution: 'temurin'
+
+ - name: Run tests
+ run: make test
diff --git a/CLAUDE.md b/CLAUDE.md
index 0c890c0..683f270 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
```bash
make test # Run unit tests (mvn test)
make integration-test # Run integration tests (requires SMARTY_AUTH_ID and SMARTY_AUTH_TOKEN env vars)
-make compile # Clean, test, then compile
+make compile # Clean, then compile
make clean # Clean and reset version files
make publish # Full publish workflow with version updates
```
@@ -24,7 +24,7 @@ mvn test -Dtest=ClientTest#testMethodName
## Architecture
-This is the official SmartyStreets Java SDK for address validation and geocoding APIs. Requires Java 11+.
+This is the official SmartyStreets Java SDK for address validation and geocoding APIs. Requires Java 17+.
### Dependencies
diff --git a/Makefile b/Makefile
index c9f99f8..8105653 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ test:
integration-test:
mvn integration-test
-compile: clean test
+compile: clean
mvn compile
publish: compile
diff --git a/README.md b/README.md
index d1f5004..b2cb898 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
The official client libraries for accessing SmartyStreets APIs from Java (and JRE-based languages)
-Compatible with Java 11 and later. Earlier Java versions supported by SDK version 3.10.7 and earlier.
+Compatible with Java 17 and later.
You may have noticed this page is curiously sparse. Don't panic, there's [documentation](https://smartystreets.com/docs/sdk/java) and [examples](src/main/java/examples).
diff --git a/pom.xml b/pom.xml
index 888985a..2968835 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,8 +36,8 @@
- 1.8
- 1.8
+ 17
+ 17
UTF-8
@@ -95,7 +95,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 8
+ 17
3.4.0
@@ -158,8 +158,8 @@
maven-compiler-plugin
3.10.1
- 11
- 11
+ 17
+ 17