codeconsole commented on PR #2949:
URL: https://github.com/apache/groovy/pull/2949#issuecomment-6374567300
Thanks for checking it so thoroughly. Four new commits:
1. **Databind annotations** (3ed9138): the YAML, TOML and CSV guides now
have a note beside typed parsing. The `com.fasterxml.jackson.annotation` ones
work unchanged; `@JsonSerialize`, `@JsonDeserialize`, `@JsonNaming`,
`@JsonPOJOBuilder` and the rest must come from
`tools.jackson.databind.annotation`, because the Jackson 2 versions are
silently ignored. I checked it with `@JsonNaming`: the Jackson 2 one is ignored
on both read and write.
2. **XML precedence** (93ed3dc): the XML guide now says Jackson 3 wins
whenever it's on the classpath, gives Spring Boot 4 as the transitive example,
and notes that each version ignores the other's databind annotations, so the
same type can bind differently after the switch.
3. **Transitive dependencies**: listed under breaking changes in the PR
description.
4. **YAML scalar resolution** (e4cb388):
- The note now says "JSON schema" and that it's stricter than the YAML
1.2 core schema, naming `True`, `Null`, `~` and `0x1F` as values the core
schema would still type.
- A new "YAML 1.1 typing with SnakeYAML directly" section follows the
alias recipe, and the scalar note links to it. Its spec test loads `off`,
`yes`, `0x1F` and `~` as `false`, `true`, `31` and `null`.
- Agreed it shouldn't land quietly. I'll start a thread on dev@, and it's
the first entry under breaking changes in the PR description.
**Jackson 3.2**: 3.1.6 was picked to match Spring Boot 4.2, but Boot has
since moved to 3.1.7. 3.2 is also the sibling of the Jackson 2.22 that master
already uses, so 873001b moves to 3.2.4. Scalar resolution is the same apart
from `.inf`, `-.inf` and `.nan`, which Jackson 2 and 3.1 rejected as malformed
numbers. They now parse: as `Double` through the typed API, and as the strings
`'Infinity'`, `'-Infinity'` and `'NaN'` through the untyped one, which converts
through JSON. The guide notes this and `YamlScalarResolutionTest` pins it. 3.2
also applies `maxStringLength` to YAML input, which 3.1 didn't, and fixes
several TOML parser bugs. The yaml, toml, csv, xml and json tests all pass on
it, including `jackson2Test`.
**Release notes**: the PR description's breaking changes are now four
entries (YAML scalars, databind annotations, XML precedence, transitive
dependencies), written so they can be lifted as they are. Happy to open a
groovy-website PR as well if that's easier.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]