Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
65fccf0
feat: migrate to java 17 and Jackson 3 (#5314)
daniel-kmiecik Sep 11, 2026
e769def
chore: remove Java 17 support module (#5315)
daniel-kmiecik Sep 15, 2026
5c1189c
chore: remove unused modules for migration to Jakarta (#5316)
daniel-kmiecik Sep 15, 2026
6a85182
chore: rename modules (#5317)
daniel-kmiecik Sep 16, 2026
6168a62
feat: migrate swagger-core 3.x runtime from javax to jakarta, update …
ewaostrowska Sep 17, 2026
536e241
feat: Set Swagger mapper defaults after the Jackson 3 migration (#5325)
ewaostrowska Sep 22, 2026
40ae616
refactor: drop commons-io dependency (#5328)
vpelikh Sep 23, 2026
cd42f3b
refactor: drop commons-lang3 dependency (#5323)
vpelikh Sep 23, 2026
e02c93c
chore: update documentation for version 3.0 (#5327)
daniel-kmiecik Sep 24, 2026
895c2f4
fix: respect explicit @JsonProperty value in ModelResolver property n…
vpelikh Sep 24, 2026
e66aae6
fix: skip resolveSubtypes for sealed classes with @Schema(oneOf) (#5322)
vpelikh Sep 24, 2026
1ed537e
feat: API to add Jackson modules / customize immutable Jackson 3 mapp…
pjfanning Sep 25, 2026
fc0d94c
refactor: drop unused httpclient and ant dependencies (#5329)
vpelikh Sep 28, 2026
c3abff9
fix: prevent examples duplication in Schema model (#5330)
vpelikh Sep 29, 2026
046b819
refactor: move REST API from io.swagger.v3.jaxrs2 to io.swagger.v3.r…
ewaostrowska Sep 30, 2026
155b349
feat: Improve Jackson 2 compatibility for Swagger mappers (#5334)
ewaostrowska Sep 30, 2026
ec3c1c7
chore: prepare workflows for 3.x line (#5341)
ewaostrowska Oct 1, 2026
5d1e2f1
test: add probe that prints Month output of default mappers
claude Oct 7, 2026
8e67075
docs: document retired Swagger artifact IDs in MIGRATION.md (#5343)
ewaostrowska Oct 7, 2026
586f565
chore: Make Jackson 2 compatibility of Swagger mappers opt-in (#5344)
ewaostrowska Oct 9, 2026
cca3374
chore: update dependencies, build plugins and CI for 3.0.0 (#5347)
djankows Oct 12, 2026
9b0f151
Upgrade dependency-review-action to v5 (#5349)
djankows Oct 12, 2026
701fc5a
Move the Jakarta APIs from EE 10 to EE 11 (#5348)
djankows Oct 14, 2026
9d83dc2
fix: deduplicate subtypes before composing oneOf (#5332)
vpelikh Oct 14, 2026
6e29b02
feat: optionally compose @JsonSubTypes parents into oneOf (#5320)
vpelikh Oct 14, 2026
c0f7a52
fix: keep oneOf when WRAPPER_OBJECT wrapping is applied (#5331)
vpelikh Oct 14, 2026
eb32154
chore: update Jackson dependencies to version 3.2.3 in migration docu…
daniel-kmiecik Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,16 @@ updates:
# Old Dependency-Check majors can lose compatibility with the NVD API.
- dependency-name: "org.owasp:dependency-check-maven"
update-types: ["version-update:semver-major"]
- package-ecosystem: "maven"
target-branch: "3.0.0"
directory: "/"
schedule:
interval: "daily"
allow:
- dependency-name: "*"
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Old Dependency-Check majors can lose compatibility with the NVD API.
- dependency-name: "org.owasp:dependency-check-maven"
update-types: ["version-update:semver-major"]
12 changes: 6 additions & 6 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: "Code scanning - action"

on:
push:
branches: [master, 1.5]
branches: ["3.0.0"]
pull_request:
# The branches below must be a subset of the branches above
branches: [master, 1.5]
branches: ["3.0.0"]
schedule:
- cron: '0 19 * * 1'

Expand All @@ -23,7 +23,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
Expand All @@ -37,7 +37,7 @@ jobs:
- name: Set up Java
uses: actions/setup-java@v5
with:
java-version: 11
java-version: 17
distribution: temurin
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand All @@ -50,9 +50,9 @@ jobs:
uses: actions/cache@v5
with:
path: ~/.m2/repository
key: ${{ runner.os }}-jdk11-maven-v2-${{ hashFiles('**/pom.xml') }}
key: ${{ runner.os }}-jdk17-maven-v2-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-jdk11-maven-v2-
${{ runner.os }}-jdk17-maven-v2-
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@v6
- name: Dependency Review
uses: actions/dependency-review-action@v4
uses: actions/dependency-review-action@v5
with:
fail-on-severity: high
4 changes: 2 additions & 2 deletions .github/workflows/maven-pulls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ name: Build Test PR

on:
pull_request:
branches: [ "master" ]
branches: [ "3.0.0" ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11, 17 ]
java: [ 17, 21, 25 ]

steps:
- uses: actions/checkout@v6
Expand Down
30 changes: 0 additions & 30 deletions .github/workflows/maven-v1-pulls.yml

This file was deleted.

52 changes: 0 additions & 52 deletions .github/workflows/maven-v1.yml

This file was deleted.

8 changes: 4 additions & 4 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Build Test Deploy master
name: Build Test Deploy 3.0.0

on:
push:
branches: [ "master" ]
branches: [ "3.0.0" ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11, 17 ]
java: [ 17, 21, 25 ]

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
working-directory: modules/swagger-gradle-plugin
run: ./gradlew build --info --stacktrace --no-daemon
- name: Deploy snapshot to maven central
if: steps.project-version.outputs.is_snapshot == 'true' && matrix.java == 11
if: steps.project-version.outputs.is_snapshot == 'true' && matrix.java == 17
run: ./mvnw --no-transfer-progress -B clean deploy -e
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Prepare Release

on:
workflow_dispatch:
branches: ["master"]

jobs:
build:
Expand All @@ -20,10 +19,10 @@ jobs:
uses: actions/setup-python@v6
with:
python-version: '3.10'
- name: Set up Java 11
- name: Set up Java 17
uses: actions/setup-java@v5
with:
java-version: 11
java-version: 17
distribution: temurin
server-id: central
server-username: MAVEN_USERNAME
Expand Down Expand Up @@ -67,6 +66,7 @@ jobs:
commit-message: prepare release ${{ env.SC_VERSION }}
title: 'prepare release ${{ env.SC_VERSION }}'
branch: prepare-release-${{ env.SC_VERSION }}
base: ${{ github.ref_name }}
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
Expand Down
53 changes: 8 additions & 45 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Release

on:
workflow_dispatch:
branches: ["master"]

jobs:
build:
Expand All @@ -20,15 +19,17 @@ jobs:
uses: actions/setup-python@v6
with:
python-version: '3.10'
- name: Set up Java 11
- name: Set up Java 17
uses: actions/setup-java@v5
with:
java-version: 11
java-version: 17
distribution: temurin
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
# env var holding the passphrase; also the one maven-gpg-plugin 3.2+ reads by default
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Cache local Maven repository
uses: actions/cache@v5
with:
Expand Down Expand Up @@ -92,10 +93,10 @@ jobs:
run: |
TMPDIR="$(dirname -- "${0}")"
. $TMPDIR/publish-javadocs.sh
- name: Checkout master
- name: Checkout ${{ github.ref_name }}
uses: actions/checkout@v6
with:
ref: "master"
ref: ${{ github.ref_name }}
fetch-depth: 0
- name: Run post release script
id: postRelease
Expand All @@ -110,45 +111,7 @@ jobs:
commit-message: bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT
title: 'bump snapshot ${{ env.SC_NEXT_VERSION }}-SNAPSHOT'
branch: bump-snap-${{ env.SC_NEXT_VERSION }}-SNAPSHOT
- name: Checkout 1.5
uses: actions/checkout@v6
with:
ref: "1.5"
fetch-depth: 0
- name: updateV1Readme script
id: updateV1Readme
if: env.RELEASE_OK == 'yes'
run: |
TMPDIR="$(dirname -- "${0}")"
. $TMPDIR/update-v1-readme.sh ${{ env.SC_LAST_RELEASE }} ${{ env.SC_VERSION }}
- name: Create Update V1 Readme Pull Request
uses: peter-evans/create-pull-request@v8
if: env.RELEASE_OK == 'yes'
with:
token: ${{ steps.generate-token.outputs.token }}
commit-message: update 1.5 Readme with new v2 version ${{ env.SC_VERSION }}
title: 'update 1.5 Readme with new v2 version ${{ env.SC_VERSION }}'
branch: update-v1-readme-${{ env.SC_VERSION }}
- name: Checkout Wiki
uses: actions/checkout@v6
with:
repository: swagger-api/swagger-core.wiki
token: ${{ steps.generate-token.outputs.token }}
path: wiki
ref: "master"
fetch-depth: 0

- name: Run update wiki script
id: updateWiki
if: env.RELEASE_OK == 'yes'
run: |
TMPDIR="$(dirname -- "${0}")"
. $TMPDIR/update-wiki.sh
- name: Checkout master
uses: actions/checkout@v6
with:
ref: "master"
fetch-depth: 0
base: ${{ github.ref_name }}

env:
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
Expand All @@ -157,6 +120,6 @@ jobs:
SC_VERSION:
SC_NEXT_VERSION:
GPG_PRIVATE_KEY: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PRIVATE_PASSPHRASE }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PRIVATE_PASSPHRASE }}
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ atlassian-ide-plugin.xml
sonar-project.properties
test-output/
*.pyc
*.versionsBackup
2 changes: 1 addition & 1 deletion .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

### Added
- Opt-in `oneOf` composition for `@JsonSubTypes` parents. Enable it with
`-Djson-subtypes-oneof` or `ModelResolver.jsonSubTypesOneOf = true`. When enabled,
a parent class with `@JsonSubTypes` gets a `oneOf` that lists its resolved subtypes,
and the subtypes keep their `allOf` reference to the parent. An explicit
`@Schema(oneOf = ...)` on the parent takes priority. The default is off, so the
generated schemas do not change unless you enable it. Use it for abstract classes and
interfaces. A concrete parent class is not listed in its own `oneOf`, so an instance of
the parent itself does not match the schema. Note: the result has a cycle
(`allOf` from subtype to parent, `oneOf` from parent to subtype). Some tools, such as
swagger-ui and openapi-generator, may not handle this shape well.

## [2.2.54] - 2026-08-18

### Fixed
Expand Down
Loading
Loading