Skip to content

v0.3.0

Choose a tag to compare

@limehee limehee released this 23 Feb 05:26
· 5 commits to main since this release

Summary

v0.3.0 improves routing fallback behavior and Spring auto-configuration activation conditions. This release makes type-mappings/category-mappings based setups more predictable in production.

Highlights

  • Improved routing fallback behavior
    • If type-mappings exists but resolves to zero valid targets (enabled + valid endpoint), routing now falls back to category-mappings.
    • If category-mappings also resolves to zero valid targets, routing falls back to default-mappings.
  • Expanded auto-configuration activation condition
    • Previously centered on default-mappings.
    • Auto-configuration now activates when any of the following is configured:
      • hookrouter.type-mappings
      • hookrouter.category-mappings
      • hookrouter.default-mappings
  • Stronger activation condition handling
    • Supports bracket-style keys (for example, hookrouter.type-mappings[order.failed][0].platform=...).
    • Properly detects mapping configuration from map-backed non-enumerable PropertySource implementations.

Behavior Change

  • Previous behavior: if a higher-priority mapping list existed, fallback was blocked even when it produced zero targets.
  • New behavior: a higher-priority mapping is selected only when it resolves at least one valid target; otherwise routing proceeds to the next priority level.

Validation

  • ./gradlew check passed
  • ./scripts/verify-consumer-smoke.sh passed
  • ./gradlew apiCompat -PapiBaselineVersion=0.2.0 passed

Included Commits

  • ed5fce7 Fix mapping activation and routing fallback semantics
  • 5e2c28d Support bracket-style mapping keys in activation condition
  • fa46c89 Handle non-enumerable property sources for mapping activation
  • f724f1c chore(release): bump version to 0.3.0