Files
asmhatreandClaude Sonnet 5 67e1b2d8a9 db-migrations-flyway-liquibase: fix dead Redgate/Liquibase doc links and back the lock-defaults claim with a real transcript
Several documentation.red-gate.com and liquibase.com URLs added in the previous commit had
since moved (Redgate restructured its docs under /flyway/reference/, Liquibase Pro pricing
moved to /pricing); this repoints them at the current, verified-200 pages. Also captures
docs/output/16-liquibase-lock-defaults-javap.txt, the trimmed javap output backing chapter
11's claim about Liquibase's default lock-poll and lock-wait settings, which chapter 11
previously asserted without a committed artifact to back it.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Q6XdRjtsp4862EM44T7i9a
2026-09-15 07:31:49 +00:00

36 lines
2.3 KiB
Markdown

# 12. The OSS license service
[← 11. Liquibase locking](11-liquibase-locking.md) · [Index](../README.md) · Next: [13. The FSL license change →](13-the-fsl-license-change.md)
Chapter [7](07-why-there-is-no-undo.md) found that Flyway Community gates certain commands behind
a runtime `FlywayRedgateEditionRequiredException`. Liquibase Community 5.0 shipped something new
alongside its license change (chapter [13](13-the-fsl-license-change.md)): a `liquibase.license`
package, inside `liquibase-core` itself, that didn't exist in 4.x.
[`LiquibaseLicenseServiceTest`](../src/test/java/com/ankurm/dbmigrations/liquibase/LiquibaseLicenseServiceTest.java)
doesn't read about what that package does — it asks the actual service Spring Boot's
`LiquibaseAutoConfiguration` runs on top of, directly:
```
implementation: liquibase.license.OSSLicenseService
licenseIsInstalled(): false
licenseIsValid("any"): false
getLicenseInfo(): ""
```
(from [`docs/output/14-liquibase-oss-license-service.txt`](output/14-liquibase-oss-license-service.txt))
On the classpath this module uses — Community only, no Liquibase Pro artifact anywhere — the
license service Liquibase actually wires up is `OSSLicenseService`, which reports itself as
unlicensed and returns an empty license description. **This test found no evidence of functional
gating anywhere in the classpath this module runs on**: `update()`, `rollback()`, and every
changeset type this module exercises worked identically whether or not a license was present,
because none of them ever asked the license service anything. That's a meaningfully different
shape from Flyway's stub-and-throw pattern in chapter [7](07-why-there-is-no-undo.md) — Liquibase
Pro's paid features live in separate, additional artifacts rather than as gated stubs inside the
Community jar.
## Going deeper
- This test is a snapshot of Liquibase 5.0.3's Community classpath, not a guarantee about future releases — the license service's existence at all, brand new in 5.0, is itself evidence that Liquibase's commercial boundary is actively being redrawn (chapter [13](13-the-fsl-license-change.md) covers why).
- [Liquibase Pro feature comparison](https://www.liquibase.com/pricing) (`rel="nofollow"`) — what Pro actually adds, as separate functionality rather than unlocked stubs.