# Changelog
# 2.7.0-SNAPSHOT
# Migration Notes
No breaking changes—default behavior unchanged.
The new --strict-validation option provides flexibility when customer specs are missing the type field on schemas. Use --strict-validation=false to allow default types (object/null) for comparison instead of failing. Default is true, which preserves current behavior.
# New Features
- Added
--strict-validationCLI option (default:true) to handle specs missing type field by allowing default types (object/null) for comparison. This gives consumers flexibility to scan valid OpenAPI 3.1.x specs even when type fields are missing. See CLI documentation for details. - Added OpenAPI 3.1.x specification support as a natural extension to the library:
- Type array support (e.g.,
["string", "null"]) in addition to OpenAPI 3.0.x single type strings - Version-aware nullable handling: OpenAPI 3.0.x uses
nullable: trueflag, while 3.1.x uses type arrays with"null" - Automatic version detection via
OpenApiVersionenum andOpenApiVersionContext - Union type detection with warnings for multiple non-null types
- Full backward compatibility with Swagger 2.0 and OpenAPI 3.0.x specifications
- Type array support (e.g.,
- Added
--max-log-serialization-depthCLI option (andmaxLogSerializationDepthconfiguration) to control depth of object serialization in logs (1-20 range, default: 3). See Configuration documentation for details.
# Bug Fixes
- Fixed StackOverflowError when processing OpenAPI 3.1.x schemas with circular references (e.g., Business → AuctionNumber → Business)
# Enhancements
- Implemented
SafeSwaggerSerializerwith ThreadLocal-based cycle detection and depth limiting for safe logging of swagger-parser objects. Optional metrics logging available viaSWAGGER_BRAKE_ENABLE_METRICS_LOGGING=trueenvironment variable (see Troubleshooting). - Added version-aware type resolution with
OpenApiVersionContextto differentiate between OpenAPI 3.0.x and 3.1.x specifications - Enhanced nullable type detection supporting both OpenAPI 3.0.x (
nullableflag) and 3.1.x (type arrays with"null")
# Build
- Added Checkstyle RegexpSingleline rule to prevent future usage of
toString()on swagger-parser objects that could cause StackOverflowError - Added JaCoCo coverage verification for OpenAPI 3.1.x related classes (80% coverage requirement)
# Testing
- Added comprehensive integration test suite for OpenAPI 3.1.x features (type arrays, version detection, circular references)
- Added backward compatibility regression test suite ensuring Swagger 2.0 and OpenAPI 3.0.x continue to work correctly
- Spec v2 Validation/RequestParam, updated test files to reflect https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#parameter-object
# 2.5.0-SNAPSHOT
TBD
# 2.4.0
# CLI and Core
- #107 (opens new window) Include version number into report and filename
- #97 (opens new window) False negatives when removing deprecated properties from models
- #96 (opens new window) Swagger brake cli jar in maven repository
- #82 (opens new window) JUnit 4 migration to JUnit 5
- #65 (opens new window) Schema class attributeRequiredMap.get(attrToSearchFor); returning null
CLI download from Maven Central: swagger-brake-cli-2.4.0-cli.jar (opens new window)
CLI download from GitHub: swagger-brake-cli-2.4.0-cli.jar (opens new window)
# Maven plugin
- #22 (opens new window) Upgrade Swagger Brake to 2.3.0
- #21 (opens new window) Add support for war files
# Gradle plugin
- #22 (opens new window) Upgrade Swagger Brake to 2.3.0
Released at 2021-12-09
# 2.3.0
# CLI and Core
- #61 (opens new window) Add support for war files
- #54 (opens new window) Required fields in nested definitions are being reported as breaking when they are not
CLI download: swagger-brake-2.3.0-cli.jar (opens new window)
# Maven plugin
- #22 (opens new window) Upgrade Swagger Brake to 2.3.0
- #21 (opens new window) Add support for war files
# Gradle plugin
- #22 (opens new window) Upgrade Swagger Brake to 2.3.0
Released at 2021-12-09
# 2.2.0
# CLI and Core
- #44 (opens new window) Support for Array minItems/maxItems/uniqueItems constraints
- #43 (opens new window) Support for String minLength/maxLength constraints
- #42 (opens new window) swagger-brake not reporting violation in breaking changes | MIN/MAX validation | POST object mandatory field validation
CLI download: swagger-brake-2.2.0-cli.jar (opens new window)
# Maven plugin
- #20 (opens new window) Upgrade Swagger Brake to 2.2.0
# Gradle plugin
- #20 (opens new window) Upgrade Swagger Brake to 2.2.0
Released at 2020-12-21
# 2.1.0
# CLI and Core
- #41 (opens new window) Recursive schema throws NPE
- #40 (opens new window) old-api should take precedence over maven configuration
- #39 (opens new window) Support Nexus based maven metadata
- #36 (opens new window) Add route path exclusion parameter support
CLI download: swagger-brake-2.1.0-cli.jar (opens new window)
# Maven plugin
- #18 (opens new window) Upgrade Swagger Brake to 2.1.0
# Gradle plugin
- #19 (opens new window) Upgrade Swagger Brake to 2.1.0
Released at 2020-09-06
# 2.0.0
# CLI and Core
- #35 (opens new window) Switch from JAXB to Jackson XMLMapper to support Java 11+
- #29 (opens new window) allOf in Swagger contract results in NPE
- #28 (opens new window) Null output for formData parameter
- #26 (opens new window) SNAPSHOT releases should be optional
- OpenAPI V3 oneOf, anyOf schema support
CLI download: swagger-brake-2.0.0-cli.jar (opens new window)
# Maven plugin
- #16 (opens new window) Upgrade Swagger Brake to 2.0.0
- #14 (opens new window) Support for the oldApi parameter
- #6 (opens new window) Support multiple output formats
# Gradle plugin
- #18 (opens new window) Upgrade Swagger Brake to 2.0.0
- #9 (opens new window) Support multiple output formats
Released at 2020-07-22
# 1.1.0
# CLI and Core
- #27 (opens new window) Exitcode for CLI when API has breaking changes
CLI download: swagger-brake-1.1.0-cli.jar (opens new window)
# Gradle plugin
- #17 (opens new window) Support for the oldApi parameter
- #15 (opens new window) Upgrade Swagger Brake to 1.1.0
Released at 2020-04-15
# 1.0.0
# CLI and Core
- #25 (opens new window) Upgrade jackson-databind from 2.9.7 to 2.10.3
- #24 (opens new window) Change in type of response attribute is not detected
- #22 (opens new window) Extend README with link to release page for easier access
- #19 (opens new window) Support for beta API
- #18 (opens new window) Allow configuring the filename scanned from maven
CLI download: swagger-brake-1.0.0-cli.jar (opens new window)
# Gradle plugin
- #14 (opens new window) Upgrade Swagger Brake to 1.0.0
- #13 (opens new window) Support for beta APIs
- #12 (opens new window) Support for api filename configuration
Released at 2020-03-15
# 0.3.0
# CLI and Core
- #17 (opens new window) Add ability to allow removal of deprecated APIs
CLI download: swagger-brake-0.3.0-cli.jar (opens new window)
# Maven plugin
- #8 (opens new window) Upgrade Swagger Brake to 0.3.0
- #7 (opens new window) Fail on breaking changes
# Gradle plugin
- #11 (opens new window) Upgrade Swagger Brake to 0.3.0
- #10 (opens new window) Fail on breaking changes
Released at 2019-03-31
# 0.2.1
# CLI and Core
- #16 (opens new window) Can you provide a simple entrypoint to compare 2 API instances
- #15 (opens new window) The attempt to fix recursive schemas causes NPE
- #14 (opens new window) Shouldn't removing a request body type be a breaking change?
- #12 (opens new window) Don't disable all logging
- #11 (opens new window) Starter should return results
CLI download: swagger-brake-0.2.1-cli.jar (opens new window)
# Maven plugin
- #5 (opens new window) Upgrade Swagger Brake to 0.2.1
# Gradle plugin
- #8 (opens new window) Upgrade Swagger Brake to 0.2.1
Released at 2018-12-19
# 0.2.0
# CLI and Core
- #9 (opens new window) Add support for $ref to all types that allow reference objects
- #8 (opens new window) Stack overflow on recursive schemas
- #7 (opens new window) Grammar error on ResponseTypeChangedBreakingChange
- #5 (opens new window) Document usage as gradle/maven plugin
- #4 (opens new window) Authentication support for Maven repositories
- #3 (opens new window) Fix 8.14 checkstyle version usage
- #2 (opens new window) JSON reporter is not providing any information about report location
- #1 (opens new window) Ability to use more than one reporter
CLI download: swagger-brake-0.2.0-cli.jar (opens new window)
Released at 2018-12-10