diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..42166d4
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,21 @@
+version: 2
+updates:
+ - package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: weekly
+ day: monday
+ groups:
+ workflow-dependencies:
+ patterns:
+ - "*"
+
+ - package-ecosystem: maven
+ directory: "/"
+ schedule:
+ interval: weekly
+ day: monday
+ groups:
+ maven-dependencies:
+ patterns:
+ - "*"
diff --git a/.github/workflows/build-merge.yml b/.github/workflows/build-merge.yml
new file mode 100644
index 0000000..dfd0607
--- /dev/null
+++ b/.github/workflows/build-merge.yml
@@ -0,0 +1,59 @@
+name: 🔄 CD · Snapshot
+
+on:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+ inputs:
+ maven_central:
+ description: Maven Central.
+ required: true
+ default: true
+ type: boolean
+ github_packages:
+ description: GitHub Packages.
+ required: true
+ default: true
+ type: boolean
+
+permissions: {}
+
+concurrency:
+ group: build-main-${{ github.ref || github.run_id }}
+ cancel-in-progress: false
+
+jobs:
+ release:
+ permissions:
+ contents: read
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_release.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ with:
+ semver_strategy: snapshot
+ dry_run: ${{ github.event_name == 'workflow_dispatch' && (inputs.maven_central != true || inputs.github_packages != true) }}
+
+ central:
+ needs:
+ - release
+ if: ${{ always() && !cancelled() && needs.release.result == 'success' }}
+ permissions:
+ actions: read
+ contents: read
+ deployments: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_publish_central.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ secrets:
+ CENTRAL_USER: ${{ secrets.CENTRAL_USER }}
+ CENTRAL_PASS: ${{ secrets.CENTRAL_PASS }}
+ GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
+ GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
+
+ packages:
+ needs:
+ - release
+ if: ${{ always() && !cancelled() && needs.release.result == 'success' }}
+ permissions:
+ actions: read
+ contents: read
+ deployments: write
+ packages: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_publish_github_packages.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml
new file mode 100644
index 0000000..470bc07
--- /dev/null
+++ b/.github/workflows/build-pr.yml
@@ -0,0 +1,31 @@
+name: 🧪 CI · Pull Request
+
+on:
+ pull_request:
+ branches:
+ - main
+ types:
+ - opened
+ - synchronize
+ - reopened
+ workflow_dispatch:
+ inputs:
+ ref:
+ description: Ref.
+ required: false
+ default: ''
+ type: string
+
+permissions: {}
+
+concurrency:
+ group: build-pr-${{ github.event.pull_request.number || github.run_id }}
+ cancel-in-progress: false
+
+jobs:
+ build:
+ permissions:
+ contents: read
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_build_common.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ with:
+ ref: ${{ inputs.ref || github.sha }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index d2a919f..0000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: "Build"
-
-on:
- workflow_dispatch:
- inputs:
- run_update:
- type: boolean
- default: false
- required: false
- description: "Update wrapper and properties"
- run_test:
- type: boolean
- default: true
- required: false
- description: "Runs tests"
- run_deploy:
- type: choice
- required: false
- default: "false"
- description: "true=force, false=on changes, disabled=never"
- options:
- - "disabled"
- - "true"
- - "false"
- ref:
- type: string
- required: false
- description: "[Optional] branch, tag or commit"
-
-jobs:
- builld:
- uses: YunaBraska/YunaBraska/.github/workflows/wc_java_build.yml@main
- with:
- ref: ${{ github.event.inputs.ref || github.ref || github.ref_name || github.head_ref }}
- run_update: ${{ inputs.run_update }}
- run_test: ${{ inputs.run_test }}
- run_deploy: ${{ inputs.run_deploy }}
- secrets: inherit
diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml
deleted file mode 100644
index 4fb92ce..0000000
--- a/.github/workflows/daily.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: "Daily"
-
-on:
- schedule:
- - cron: '0 7 * * *'
- workflow_dispatch:
-
-jobs:
- builld:
- uses: YunaBraska/YunaBraska/.github/workflows/wc_java_build.yml@main
- with:
- run_update: true
- run_test: true
- run_deploy: false
- secrets: inherit
diff --git a/.github/workflows/maintenance.yml b/.github/workflows/maintenance.yml
new file mode 100644
index 0000000..b9a6ea3
--- /dev/null
+++ b/.github/workflows/maintenance.yml
@@ -0,0 +1,24 @@
+name: 🛠️ CI · Maintenance
+
+on:
+ schedule:
+ - cron: '0 6 * * 0'
+ workflow_dispatch:
+ inputs:
+ dry_run:
+ description: Dry run.
+ required: true
+ default: true
+ type: boolean
+
+permissions: {}
+
+jobs:
+ maven_wrapper:
+ permissions:
+ actions: write
+ contents: write
+ pull-requests: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_update_maven_wrapper.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ with:
+ dry_run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run || false }}
diff --git a/.github/workflows/on_merge.yml b/.github/workflows/on_merge.yml
deleted file mode 100644
index 1e07872..0000000
--- a/.github/workflows/on_merge.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: "On Merge"
-
-on:
- pull_request_target:
- types: [ closed ]
- branches:
- - main
- - master
- - default
- paths-ignore:
- - '*.md'
- - '*.cmd'
- - '*.bat'
- - '*.sh'
- - 'FOUNDING.yml'
- - 'FOUNDING.yaml'
- - '.editorconfig'
- - '.gitignore'
- - 'docs/**'
- - '.github/**'
- - '.mvn/**'
- - '.gradle/**'
-jobs:
- builld:
- if: github.event.pull_request.merged == true
- uses: YunaBraska/YunaBraska/.github/workflows/wc_java_build.yml@main
- with:
- ref: ${{ github.ref_name }}
- run_update: false # Updates only on main branches
- run_test: true # Always run tests
- run_deploy: disabled # Never deploy on non-main branches
- secrets: inherit
diff --git a/.github/workflows/on_push.yml b/.github/workflows/on_push.yml
deleted file mode 100644
index fed49ea..0000000
--- a/.github/workflows/on_push.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: "On Push"
-
-on:
- push:
- branches-ignore:
- - main
- - master
- - default
-
-jobs:
- builld:
- uses: YunaBraska/YunaBraska/.github/workflows/wc_java_build.yml@main
- with:
- ref: ${{ github.ref_name }}
- run_update: false # Updates only on main branches
- run_test: true # Always run tests
- run_deploy: disabled # Never deploy on non-main branches
- secrets: inherit
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..e84ff63
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,72 @@
+# yuna-release: true
+name: 🏷️ CD · Release
+
+on:
+ workflow_dispatch:
+ inputs:
+ maven_central:
+ description: Maven Central.
+ required: true
+ default: true
+ type: boolean
+ github_packages:
+ description: GitHub Packages.
+ required: true
+ default: true
+ type: boolean
+ force:
+ description: Force.
+ required: true
+ default: false
+ type: boolean
+
+permissions: {}
+
+jobs:
+ release:
+ permissions:
+ contents: read
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_release.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ with:
+ force: ${{ inputs.force }}
+ dry_run: ${{ inputs.maven_central != true || inputs.github_packages != true }}
+
+ central:
+ needs:
+ - release
+ if: ${{ always() && !cancelled() && needs.release.result == 'success' }}
+ permissions:
+ actions: read
+ contents: read
+ deployments: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_publish_central.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ secrets:
+ CENTRAL_USER: ${{ secrets.CENTRAL_USER }}
+ CENTRAL_PASS: ${{ secrets.CENTRAL_PASS }}
+ GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
+ GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
+
+ packages:
+ needs:
+ - release
+ if: ${{ always() && !cancelled() && needs.release.result == 'success' }}
+ permissions:
+ actions: read
+ contents: read
+ deployments: write
+ packages: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_publish_github_packages.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+
+ github:
+ needs:
+ - release
+ - central
+ - packages
+ if: ${{ always() && !cancelled() && needs.release.outputs.dry_run == 'false' && !endsWith(needs.release.outputs.version, '-SNAPSHOT') && needs.release.result == 'success' && needs.central.result == 'success' && needs.packages.result == 'success' }}
+ permissions:
+ actions: read
+ contents: write
+ uses: YunaBraska/YunaBraska/.github/workflows/wc_java_create_github_release.yml@c5af554b4e859b238b7b65f9865bb84b51f7db54
+ with:
+ commit_sha: ${{ needs.release.outputs.commit_sha }}
+ version: ${{ needs.release.outputs.version }}
diff --git a/pom.xml b/pom.xml
index f4b5b24..25bc3bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
berlin.yuna
type-map
- 2026.08.2200739
+ 1.0.0
jar
type-map
@@ -42,6 +42,7 @@
UTF-8
${project.encoding}
${project.encoding}
+ 1980-01-01T00:00:02Z
6.1.3
@@ -49,13 +50,14 @@
6.1.3
- 3.2.7
- 3.2.1
+ 3.2.8
+ 3.4.0
0.8.15
- 3.1.0
+ 3.12.0
+ 3.4.2
3.15.0
3.5.6
- 0.7.0
+ 0.11.0
@@ -99,11 +101,50 @@
maven-compiler-plugin
${maven-compiler-plugin.version}
- ${java-version}
- ${java-version}
${java-version}
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+ ${project.build.outputTimestamp}
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${maven-javadoc-plugin.version}
+
+
+ attach-javadocs
+
+ jar
+
+
+ ${java-version}
+ true
+ true
+ none
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ ${maven-source-plugin.version}
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
org.apache.maven.plugins
maven-surefire-plugin
@@ -176,55 +217,12 @@
-
-
- release
-
-
- release
- true
-
- false
-
+
+ central
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- ${maven-javadoc-plugin.version}
-
-
- attach-javadocs
-
- jar
-
-
- ${java-version}
- true
- true
-
- none
- false
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- ${maven-source-plugin.version}
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
org.apache.maven.plugins
maven-gpg-plugin
@@ -248,7 +246,6 @@
-
org.sonatype.central
@@ -260,7 +257,6 @@
true
${project.groupId}:${project.artifactId}:${project.version}
-
diff --git a/src/main/java/berlin/yuna/typemap/logic/JsonDecoder.java b/src/main/java/berlin/yuna/typemap/logic/JsonDecoder.java
index 2b8b224..e8e9ec4 100644
--- a/src/main/java/berlin/yuna/typemap/logic/JsonDecoder.java
+++ b/src/main/java/berlin/yuna/typemap/logic/JsonDecoder.java
@@ -742,7 +742,7 @@ public static Stream open(final InputStream input, final Charset charset,
}
/**
- * Detects whether the input stream is XML (leading '<') or JSON and delegates to the appropriate parser.
+ * Detects whether the input stream is XML (leading {@code <}) or JSON and delegates to the appropriate parser.
* Uses streaming to avoid buffering whole payloads; wraps incoming streams in a {@link PushbackInputStream}.
*
* @param input stream to parse