Skip to content

refactor: split feign-core into feign-api and feign-core#3383

Merged
velo merged 28 commits into
14.xfrom
feature/split-feign-core-api
Jun 6, 2026
Merged

refactor: split feign-core into feign-api and feign-core#3383
velo merged 28 commits into
14.xfrom
feature/split-feign-core-api

Conversation

@velo

@velo velo commented Jun 3, 2026

Copy link
Copy Markdown
Member

This PR splits the feign-core module, moving core API interfaces, annotations, and builders (including Feign) to a new feign-api module, while retaining vanilla Java SDK implementations (DefaultClient, DefaultContract, etc.) in feign-core under a new subpackage structure to avoid JPMS split package issues. ServiceLoader is used to locate default implementations.

velo and others added 28 commits June 3, 2026 10:39
- Created a new feign-api module and relocated all core interfaces, annotations, and builders (including Feign) there.
- Retained vanilla Java SDK default implementations in feign-core under feign.core.* subpackages to avoid split packages and JPMS issues.
- Integrated ServiceLoader and ServiceLoaderUtils in feign-api to dynamically resolve default implementations.
- Ensured non-core SPI implementations are favored over feign-core defaults when multiple providers exist.
- Updated all submodules to use corrected imports and test configurations.
- Fixed Vertx connection leak tests and Http2 client tests to prevent flakiness and run smoothly in sandbox environments.
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Publish feign-bom as a real module so it auto-deploys to Central
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
…test

Fix flaky vertx http2NoConnectionLeak test by using h2c prior knowledge
Bumps `netty.version` from 4.2.14.Final to 4.2.15.Final.

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

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

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

---
updated-dependencies:
- dependency-name: io.netty:netty-bom
  dependency-version: 4.2.15.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.15.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.netty:netty-codec-http
  dependency-version: 4.2.15.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.0 to 5.1.1.

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

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

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

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

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Bumps `kotlin.version` from 2.3.21 to 2.4.0.

Updates `org.jetbrains.kotlin:kotlin-stdlib-jdk8` from 2.3.21 to 2.4.0
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v2.3.21...v2.4.0)

Updates `org.jetbrains.kotlin:kotlin-reflect` from 2.3.21 to 2.4.0
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v2.3.21...v2.4.0)

Updates `org.jetbrains.kotlin:kotlin-maven-plugin` from 2.3.21 to 2.4.0

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib-jdk8
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.jetbrains.kotlin:kotlin-reflect
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.jetbrains.kotlin:kotlin-maven-plugin
  dependency-version: 2.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [org.openrewrite.recipe:rewrite-migrate-java](https://github.com/openrewrite/rewrite-migrate-java) from 3.35.0 to 3.36.0.
- [Release notes](https://github.com/openrewrite/rewrite-migrate-java/releases)
- [Commits](openrewrite/rewrite-migrate-java@v3.35.0...v3.36.0)

---
updated-dependencies:
- dependency-name: org.openrewrite.recipe:rewrite-migrate-java
  dependency-version: 3.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [org.openrewrite.maven:rewrite-maven-plugin](https://github.com/openrewrite/rewrite-maven-plugin) from 6.40.0 to 6.41.0.
- [Release notes](https://github.com/openrewrite/rewrite-maven-plugin/releases)
- [Commits](openrewrite/rewrite-maven-plugin@v6.40.0...v6.41.0)

---
updated-dependencies:
- dependency-name: org.openrewrite.maven:rewrite-maven-plugin
  dependency-version: 6.41.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

build(deps): Bump netty.version from 4.2.14.Final to 4.2.15.Final
…vertx5-test/vertx.version-5.1.1

build(deps-dev): Bump vertx.version from 5.1.0 to 5.1.1 in /vertx/feign-vertx5-test
…vertx4-test/vertx.version-4.5.28

build(deps-dev): Bump vertx.version from 4.5.27 to 4.5.28 in /vertx/feign-vertx4-test
…on-2.4.0

build(deps): Bump kotlin.version from 2.3.21 to 2.4.0
…ite.recipe-rewrite-migrate-java-3.36.0

build(deps): Bump org.openrewrite.recipe:rewrite-migrate-java from 3.35.0 to 3.36.0
…ite.maven-rewrite-maven-plugin-6.41.0

build(deps-dev): Bump org.openrewrite.maven:rewrite-maven-plugin from 6.40.0 to 6.41.0
Bumps [org.openrewrite.recipe:rewrite-testing-frameworks](https://github.com/openrewrite/rewrite-testing-frameworks) from 3.36.0 to 3.37.0.
- [Release notes](https://github.com/openrewrite/rewrite-testing-frameworks/releases)
- [Commits](openrewrite/rewrite-testing-frameworks@v3.36.0...v3.37.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
…ite.recipe-rewrite-testing-frameworks-3.37.0

build(deps): Bump org.openrewrite.recipe:rewrite-testing-frameworks from 3.36.0 to 3.37.0
…cated test fixtures

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

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

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

# Conflicts:
#	vertx/feign-vertx4-test/src/test/java/feign/vertx/ConnectionsLeakTests.java
…nd feign-core

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

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

Signed-off-by: Marvin Froeder <velo.br@gmail.com>
Signed-off-by: Marvin Froeder <velo.br@gmail.com>
@velo velo merged commit 1132e82 into 14.x Jun 6, 2026
3 checks passed
@velo velo deleted the feature/split-feign-core-api branch June 6, 2026 11:26
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.

1 participant