Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: OpenFeign/feign
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
Loading
...
head repository: fbus/feign
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 9 files changed
  • 1 contributor

Commits on Jan 2, 2026

  1. feat(codec): Add Jackson 3 support module (feign-jackson3)

    This commit introduces a new module `feign-jackson3` that provides support for Jackson 3.x,
    alongside the existing `feign-jackson` module which continues to support Jackson 2.x.
    
    ## Changes
    
    ### Module Creation
    - Created new `jackson3` module based on `feign-jackson`
    - Added module to parent POM
    
    ### Jackson 3 Migration
    - **Dependency**: Upgraded to Jackson 3.0.2 (`tools.jackson.core:jackson-databind`)
    - **Package changes**: Migrated from `com.fasterxml.jackson.*` to `tools.jackson.*`
      - Exception: `com.fasterxml.jackson.annotation` remains unchanged (as per Jackson 3 spec)
    - **Maven coordinates**: Updated groupId from `com.fasterxml.jackson.core` to `tools.jackson.core`
    
    ### API Changes
    - **Immutable ObjectMapper**: Replaced direct `ObjectMapper` instantiation with `JsonMapper.builder()`
      - All configuration now done via builder pattern
    - **Exception handling**:
      - Jackson 3 uses `JacksonException` (unchecked) instead of `IOException` (checked)
      - Updated catch blocks to handle `JacksonException` and extract `IOException` from cause when needed
    - **Module type**: Changed from `Module` to `JacksonModule`
    
    ### Configuration
    - **Default settings**: Respects Jackson 3 defaults (improved security)
      - `FAIL_ON_TRAILING_TOKENS` enabled by default (new in Jackson 3)
      - Explicitly disabled for `Jackson3IteratorDecoder` only (required for streaming array elements)
    - **Java version**: Minimum Java 17 required (Jackson 3 baseline)
    
    ### Classes
    - `Jackson3Decoder`: Standard JSON decoder for Jackson 3
    - `Jackson3Encoder`: Standard JSON encoder for Jackson 3
    - `Jackson3IteratorDecoder`: Streaming iterator decoder for large JSON arrays
    
    ### Tests
    - Migrated all tests from `feign-jackson`
    - Updated to use Jackson 3 APIs (`tools.jackson.*` packages)
    - Updated method names for Jackson 3 API changes (e.g., `getCurrentName()` → `currentName()`)
    - All tests passing ✅
    
    ## Migration Notes
    
    Users can migrate from `feign-jackson` to `feign-jackson3` by:
    1. Updating dependency to `feign-jackson3`
    2. Changing imports from `feign.jackson.*` to `feign.jackson3.*`
    3. Ensuring Java 17+ is available
    
    Both modules can coexist in the same project if needed.
    
    ## References
    - [Jackson 3 Migration Guide](https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md)
    - [Jackson 3.0 Release Notes](https://github.com/FasterXML/jackson/wiki/Jackson-Release-3.0)
    fabienbuss committed Jan 2, 2026
    Configuration menu
    Copy the full SHA
    9df0161 View commit details
    Browse the repository at this point in the history
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.