Releases: rschmitt/dynamic-object
Releases · rschmitt/dynamic-object
dynamic-object-1.2.0
Changes in this release:
- Streaming serialization support has been improved significantly. Nested DynamicObject instances will now be correctly streamed, instead of being buffered. In addition, a stream-oriented variant of the
write
method is now available on theEdnTranslator
interface, with a sensible default implementation. - Wrapping a null reference as a DynamicObject is now forbidden and will result in a
NullPointerException
. - Exceptions are no longer swallowed within
DynamicObject#deserializeStream
.
dynamic-object-1.1.0
Changes in this release:
- The
DynamicObject#serialize(Object, Writer)
method has been added. This method is available for streaming use cases (such as serializing directly to a file) where there is no need to build an intermediateString
representation. - A major bug has been fixed that was causing Map elements to be dropped.
dynamic-object-1.0.0
Changes in this release:
- DynamicObject is now stable; this release is not a pre-release.
- DynamicObject has adopted semantic versioning.
- Custom keys can now be strings (using
@Key("string")
), in addition to keywords (using@Key(":keyword")
). - The
getMap
method now returns a rawMap
without wildcards. - The
serializeStream
method now returns a Java 8Stream<T>
instead of anIterator<T>
.
dynamic-object-0.5
Changes in this release:
- User-defined validate() methods are now supported. This allows custom logic to be added to a DynamicObject type that will be called along with the usual validation checks when validate() is invoked.
dynamic-object-0.4
Changes in this release:
- Fields marked
@Required
, when accessed, will immediately throwNullPointerException
, even ifvalidate()
was never called. - Support for
java.util.Optional
has been added.Optional
s will be wrapped and unwrapped at runtime; usingOptional
in a dynamic-object schema does not affect the on-wire or in-memory representation.
dynamic-object-0.3
This release includes the following changes:
- built-in support for java.time.Instant with the #inst tag
- DynamicObject#getMap now returns a Map instead of an Object
dynamic-object-0.2
This is mostly a bugfix release; it is fully source compatible with v0.1. Changes include:
- Added support for serializing and deserializing arbitrary types (registered types can be round-tripped by themselves)
- Fixed cached access to null field
- Fixed a bug where default methods that looked like builder methods were not invoked correctly
- Changed DynamicObject#validate return type from void to T
- Add support for deserializing a stream of DynamicObjects from a PushbackReader
dynamic-object-0.1
This is an early preview release; the API is not yet guaranteed to be stable.