Description
(note: inspired by #4109)
As per #2715 there is a nasty race condition possibility for anyone using constants like PropertyNamingStrategy.LOWER_CAMEL_CASE
or classes themselves like PropertyNamingStrategy.SnakeCaseStrategy.class
; and because of this, constants and implementations were marked as deprecated.
But while these are deprecated, problematic usage is still possible. Question then is, for existing legacy usage, which is worse:
- Continuing potentially risky usage, leading to potential breakage (likely hard to diagnose)
- Explicit breakage if these classes and constants are removed and Jackson dependency is upgraded
Arguably (1) is worse, as even new code could start using problematic classes, constants (when copy-pasting).
At the same time, SemVer would suggest we only remove these from Jackson 3.0 (from which they are removed, see master
.
I propose these classes, constants, would, however, be removed earlier than this, from Jackson 2.17. Please add comments on WDYT.