In jackson-module-kogera
, there are several intentional design changes that are destructive.
This page summarizes them.
The KotlinAnnotationIntrospector::hasRequiredMarker
function in jackson-module-kotlin
has several problems.
In kogera
, the specification has been revised as follows.
- If
required = true
is specified in theJsonProperty
annotation, the result is preferred.- This should not be overridden, as it will not be
true
unless explicitly specified by the user. - This implementation follows the basic policy of
Jackson
.
- This should not be overridden, as it will not be
- Processing on
field
that has accessors are skipped. - The
FAIL_ON_NULL_FOR_PRIMITIVES
option does not affect the results.- In
kogera
, the deserialization behavior is not affected by whether the argument is of typeprimitive
or not.
- In
- The
nullToEmpty
option only affects deserialization.- As for
JvmField
, there was no way to distinguish between contexts, so that option affects serialization.
- As for
In jackson-module-kotlin
, some code has been inadvertently released.
If code is released inadvertently, it will be difficult to change it considering dependencies.
Therefore, in kogera
, explicitApi
is enabled and all but the minimum code is kept private.
I will consider making the classes public again when we receive requests for them.
Because jackson-module-kotlin
is a framework with a long history, some old code and options remain.
In kogera
, those options have been removed.