Skip to content

Merge master into 14.x - #3532

Merged
velo merged 73 commits into
14.xfrom
merge/master-into-14.x
Aug 20, 2026
Merged

Merge master into 14.x#3532
velo merged 73 commits into
14.xfrom
merge/master-into-14.x

Conversation

@velo

@velo velo commented Aug 20, 2026

Copy link
Copy Markdown
Member

Brings master (54 commits, up to #3528) onto 14.x.

Resolutions

  • ~55 pom conflicts were version-only; every hunk resolved to 14.0-alpha1-SNAPSHOT while keeping master's other pom edits (dependency bumps, the feign-bom flatten config from Generate the flattened feign-bom POM under target #3531). japicmp <excludes> for the v14 breaking types are intact.
  • Util: master's encode-side JSON/XML content-type helpers now sit next to 14.x's decode-side ones, sharing private helpers; dropped the duplicated CONTENT_TYPE constant.
  • MultiEncoder/MultiDecoder and friends (Port multi-encoder to master using predicates #3527, Add MultiDecoder to select a decoder per response #3528) land in the api module's feign.codec; BaseBuilder keeps both encoders(...) and decoders(...). The Default* codec imports master added are not applicable — 14.x resolves those through ServiceLoader.
  • DefaultClient: ported master's empty-body fix (build(deps-dev): Bump org.openrewrite.maven:rewrite-maven-plugin from 6.45.0 to 6.46.1 #3520-era) onto the streaming Request.Body API — a present-but-empty body no longer opens an output stream, it sets Content-Length: 0 when the method allows a body.
  • GraphqlDecoder / GraphqlSubscriptionClient: master's new subscription support adapted to streaming bodies (writeToString/bodyAsByteArray instead of byte[], no Request.charset()).
  • Tests master added were ported to 14.x's APIs: Request.Body.of(...), 5-arg Request.create, requestBody().get().writeToString(...), DefaultContract instead of Contract.Default, and mockwebserver3 (MockResponse.Builder, webSocketUpgrade, getHeaders().get(...), ByteString.utf8()).

Verified locally: mvn install green across all 45 modules, tests included.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HKEB9VnpAxLPnSsJtxwoiD

dependabot Bot and others added 30 commits August 4, 2026 05:13
Bumps [com.gradle:common-custom-user-data-maven-extension](https://github.com/gradle/common-custom-user-data-maven-extension) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/gradle/common-custom-user-data-maven-extension/releases)
- [Commits](gradle/common-custom-user-data-maven-extension@v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: com.gradle:common-custom-user-data-maven-extension
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…ommon-custom-user-data-maven-extension-2.4.0

build(deps): Bump com.gradle:common-custom-user-data-maven-extension from 2.3.0 to 2.4.0
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.63.android8 to 2.0.64.android8.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](alibaba/fastjson2@2.0.63.android8...2.0.64.android8)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-version: 2.0.64.android8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…fastjson2-fastjson2-2.0.64.android8

build(deps): Bump com.alibaba.fastjson2:fastjson2 from 2.0.63.android8 to 2.0.64.android8
DefaultClient wrote a zero-length byte array to the connection's
output stream whenever the HTTP method was not GET, even when the
request body was empty. Opening that output stream makes
HttpURLConnection create an internal "poster" and, as soon as one
exists, the JDK defaults Content-Type to
application/x-www-form-urlencoded if none was set - even though no
bytes are actually written.

This regressed in 12.0 (feign#1778, fixing the Content-Length: 0
case) and silently adds an incorrect Content-Type header, which can
cause servers to reject the request with 415 Unsupported Media Type.

Skip the output stream entirely for empty/absent bodies and set
Content-Length: 0 directly, matching the existing null-body path.

Fixes #2068

Signed-off-by: seonwoo_jung <79202163+seonwooj0810@users.noreply.github.com>
…gement

Installing and deploying feign-bom previously published a POM that still
parented feign-parent. Importing that BOM into a project such as Spring Boot
also imported parent dependencyManagement (for example jackson-bom) and
overrode the consumer's managed versions.

Apply flatten-maven-plugin in bom mode on the BOM module and template so the
published artifact only manages Feign modules.

Fixes #3505
Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.6.3 to 5.6.4.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.6.4/RELEASE_NOTES.txt)
- [Commits](apache/httpcomponents-client@rel/v5.6.3...rel/v5.6.4)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: 5.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps `netty.version` from 4.2.16.Final to 4.2.17.Final.

Updates `io.netty:netty-bom` from 4.2.16.Final to 4.2.17.Final
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](netty/netty@netty-4.2.16.Final...netty-4.2.17.Final)

Updates `io.netty:netty-handler` from 4.2.16.Final to 4.2.17.Final
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](netty/netty@netty-4.2.16.Final...netty-4.2.17.Final)

Updates `io.netty:netty-codec-http` from 4.2.16.Final to 4.2.17.Final
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](netty/netty@netty-4.2.16.Final...netty-4.2.17.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-bom
  dependency-version: 4.2.17.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.17.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec-http
  dependency-version: 4.2.17.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps `vertx.version` from 5.1.5 to 5.1.6.

Updates `io.vertx:vertx-junit5` from 5.1.5 to 5.1.6
- [Commits](eclipse-vertx/vertx-junit5@5.1.5...5.1.6)

Updates `io.vertx:vertx-web-client` from 5.1.5 to 5.1.6
- [Commits](vert-x3/vertx-web@5.1.5...5.1.6)

---
updated-dependencies:
- dependency-name: io.vertx:vertx-junit5
  dependency-version: 5.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.vertx:vertx-web-client
  dependency-version: 5.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…n-4.2.17.Final

build(deps): Bump netty.version from 4.2.16.Final to 4.2.17.Final
…vertx5-test/vertx.version-5.1.6

build(deps-dev): Bump vertx.version from 5.1.5 to 5.1.6 in /vertx/feign-vertx5-test
…ttpcomponents.client5-httpclient5-5.6.4

build(deps): Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.3 to 5.6.4
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.1.2 to 6.1.3.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](junit-team/junit-framework@r6.1.2...r6.1.3)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps `vertx.version` from 4.5.31 to 4.5.32.

Updates `io.vertx:vertx-junit5` from 4.5.31 to 4.5.32
- [Commits](eclipse-vertx/vertx-junit5@4.5.31...4.5.32)

Updates `io.vertx:vertx-web-client` from 4.5.31 to 4.5.32
- [Commits](vert-x3/vertx-web@4.5.31...4.5.32)

---
updated-dependencies:
- dependency-name: io.vertx:vertx-junit5
  dependency-version: 4.5.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: io.vertx:vertx-web-client
  dependency-version: 4.5.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…vertx4-test/vertx.version-4.5.32

build(deps-dev): Bump vertx.version from 4.5.31 to 4.5.32 in /vertx/feign-vertx4-test
…nit-bom-6.1.3

build(deps): Bump org.junit:junit-bom from 6.1.2 to 6.1.3
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Add GraphQL subscription support over graphql-transport-ws
…content-type

Avoid default Content-Type on POST/PUT/PATCH with empty body
…he committed feign-bom POM

Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Flatten feign-bom so imports do not override consumer dependency management
Bumps [org.codehaus.mojo:flatten-maven-plugin](https://github.com/mojohaus/flatten-maven-plugin) from 1.7.3 to 1.8.0.
- [Release notes](https://github.com/mojohaus/flatten-maven-plugin/releases)
- [Commits](mojohaus/flatten-maven-plugin@1.7.3...1.8.0)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:flatten-maven-plugin
  dependency-version: 1.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
….mojo-flatten-maven-plugin-1.8.0

build(deps-dev): Bump org.codehaus.mojo:flatten-maven-plugin from 1.7.3 to 1.8.0
Covariant overrides generate unannotated bridge methods that
BaseContract previously tried to parse, failing inheritance tests
such as overrideParameterizedApiSupported.

Fixes #2752
Skipping bridges in BaseContract left generic super-interface calls
(e.g. CrudApi<T> via UserApi) without a dispatch entry. Resolve each
bridge Method to the handler of the method it bridges to, and cover
that path in BridgeMethodTest.
Bumps [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks) from 3.43.0 to 3.44.0.
- [Release notes](https://github.com/openrewrite/rewrite-testing-frameworks/releases)
- [Commits](openrewrite/rewrite-testing-frameworks@v3.43.0...v3.44.0)

---
updated-dependencies:
- dependency-name: org.openrewrite.recipe:rewrite-testing-frameworks
  dependency-version: 3.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
velo and others added 28 commits August 19, 2026 08:39
avoid duplicate Content-Length header in DefaultClient
…rties

Apply JAXB factory properties when creating unmarshallers
…methods

Skip bridge methods in contract parsing and map them for dispatch
Co-authored-by: trumpetinc <6618744+trumpetinc@users.noreply.github.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Co-authored-by: Yevhen Vasyliev <ye.vasyliev@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Co-authored-by: trumpetinc <6618744+trumpetinc@users.noreply.github.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Co-authored-by: Yevhen Vasyliev <ye.vasyliev@gmail.com>
Co-authored-by: trumpetinc <6618744+trumpetinc@users.noreply.github.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Bumps `jackson.version` from 2.22.1 to 2.22.2.

Updates `com.fasterxml.jackson:jackson-bom` from 2.22.1 to 2.22.2
- [Commits](FasterXML/jackson-bom@jackson-bom-2.22.1...jackson-bom-2.22.2)

Updates `com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider` from 2.22.1 to 2.22.2

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-version: 2.22.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider
  dependency-version: 2.22.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [com.squareup.okhttp3:okhttp-bom](https://github.com/lysine-dev/okhttp) from 5.4.0 to 5.5.0.
- [Changelog](https://github.com/lysine-dev/okhttp/blob/main/CHANGELOG.md)
- [Commits](lysine-dev/okhttp@parent-5.4.0...parent-5.5.0)

---
updated-dependencies:
- dependency-name: com.squareup.okhttp3:okhttp-bom
  dependency-version: 5.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…ion-2.22.2

build(deps): Bump jackson.version from 2.22.1 to 2.22.2
….okhttp3-okhttp-bom-5.5.0

build(deps): Bump com.squareup.okhttp3:okhttp-bom from 5.4.0 to 5.5.0
… predicate

Signed-off-by: Marvin Froeder <velo.br@gmail.com>
… predicate

Signed-off-by: Marvin Froeder <velo.br@gmail.com>
…ce tree

Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Port multi-encoder to master using predicates
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Generate the flattened feign-bom POM under target
Add MultiDecoder to select a decoder per response
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
@velo
velo merged commit 96842d4 into 14.x Aug 20, 2026
3 checks passed
@velo
velo deleted the merge/master-into-14.x branch August 20, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants