nastra opened a new pull request, #5780: URL: https://github.com/apache/iceberg/pull/5780
* Use true immutable objects that are type-safe, thread-safe, null-safe * Get builder classes for free This is relying on https://immutables.github.io/ (Apache License 2.0), which allows generating immutable objects and builders via annotation processing. * Immutable objects are serialization ready (including JSON and its binary forms) * Supports lazy, derived and optional attributes * Immutable objects are constructed once, in a consistent state, and can be safely shared * Will fail if mandatory attributes are missing * Cannot be sneakily modified when passed to other code * Immutable objects are naturally thread-safe and can therefore be safely shared among threads * No excessive copying * No excessive synchronization * Object definitions are pleasant to write and read * No boilerplate setter and getters * No ugly IDE-generated hashCode, equals and toString methods that end up being stored in source control. Note that we are specifically preventing people from using Jackson-related annotations (`@JsonSerialize` & `@JsonDeserialize`) in order to avoid potential runtime library dependency issues where a clashing jackson lib would prevent jackson-related annotations to be used/processed. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
