Skip to content

Commit 283745e

Browse files
author
AudD
committed
audd-java: v1.5.9 — customCatalog.add no longer retries by default
Custom-catalog upload is metered; auto-retry on transport failure could double-charge for the same audio fingerprinting. Reclassify customCatalog.add to a 1-attempt policy: a transient failure now surfaces as a clean exception instead of the SDK silently re-uploading. Other mutating stream operations (streams.add, streams.setCallbackUrl, streams.delete) keep their MUTATING policy — server-idempotent on radioId and safe to retry.
0 parents  commit 283745e

88 files changed

Lines changed: 7495 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
test:
14+
name: tests (JDK ${{ matrix.java }})
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
java: ['11', '17', '21']
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: actions/setup-java@v4
23+
with:
24+
distribution: temurin
25+
java-version: ${{ matrix.java }}
26+
cache: maven
27+
- name: mvn verify
28+
run: mvn -B verify
29+
- name: jar --describe-module (JPMS smoke)
30+
if: matrix.java == '21'
31+
run: |
32+
JAR=$(ls target/audd-*.jar 2>/dev/null | grep -v sources | grep -v javadoc | head -1)
33+
if [ -n "$JAR" ]; then jar --describe-module --file="$JAR"; fi

.github/workflows/contract.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Contract tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
schedule:
9+
- cron: '0 6 * * *'
10+
repository_dispatch:
11+
types: [openapi-updated]
12+
13+
permissions:
14+
contents: read
15+
issues: write
16+
17+
jobs:
18+
contract:
19+
name: validate parser against latest audd-openapi fixtures
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
path: audd-java
25+
- name: Check out audd-openapi
26+
uses: actions/checkout@v4
27+
with:
28+
repository: AudDMusic/audd-openapi
29+
path: audd-openapi
30+
ref: main
31+
- uses: actions/setup-java@v4
32+
with:
33+
distribution: temurin
34+
java-version: '21'
35+
cache: maven
36+
- name: Run contract tests
37+
working-directory: audd-java
38+
env:
39+
AUDD_OPENAPI_FIXTURES: ${{ github.workspace }}/audd-openapi/fixtures
40+
run: mvn -B test -Dtest='*ContractTest' -DfailIfNoTests=false
41+
- name: Open issue on failure (dispatched runs only)
42+
if: failure() && github.event_name == 'repository_dispatch'
43+
env:
44+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
TRIGGER_SHA: ${{ github.event.client_payload.trigger_sha }}
46+
run: |
47+
gh issue create \
48+
--title "Contract drift: audd-openapi spec change broke parser" \
49+
--body "An openapi-updated dispatch (trigger SHA: $TRIGGER_SHA) caused contract tests to fail. Investigate and update parsers." \
50+
--label "contract-drift" || true

.github/workflows/release.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'audd-java/v*'
7+
- 'v*'
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
publish:
13+
name: Build and publish to Maven Central
14+
runs-on: ubuntu-latest
15+
environment: maven-central
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-java@v4
19+
with:
20+
distribution: temurin
21+
java-version: '21'
22+
cache: maven
23+
server-id: central
24+
server-username: MAVEN_CENTRAL_USERNAME
25+
server-password: MAVEN_CENTRAL_PASSWORD
26+
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
27+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
28+
- name: Verify GPG key import
29+
run: |
30+
gpg --list-secret-keys --keyid-format=long
31+
gpg --list-keys --keyid-format=long
32+
- name: Verify build
33+
run: mvn -B verify
34+
- name: Deploy to Maven Central
35+
env:
36+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
37+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
38+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
39+
run: mvn -B -Prelease deploy -DskipTests

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
target/
2+
*.class
3+
*.jar
4+
*.war
5+
*.ear
6+
.idea/
7+
*.iml
8+
.vscode/
9+
.settings/
10+
.classpath
11+
.project
12+
hs_err_pid*
13+
.mvn/wrapper/maven-wrapper.jar

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 AudD, LLC (https://audd.io)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)