Releases: big-andy-coates/populace
Releases · big-andy-coates/populace
Release v1.1.1
Issues resolved can be found here
Release v1.1.0
Issues resolved can be found here
In addition:
- Hardened JaxBInstanceFactory - better error messages, better test coverage and now correctly uses generic value type from
XmlTypeAdapter
, rather than raw type, when selecting instance factory for creating value type.
Release v1.0.0
Breaking change.
Bigger changes
- Introduced concept of
AnnotationInspector
to retrieve annotations fromRawField
s, with Jaxb module adding some specifically to support picking up annotations of getters and setters. - #27 extended support for XmlTransient to cover getter, setters and class level annotations.
- #32
Set
s are now fully supported and can be mutated. - Introduced concept of
ElementVisitor
on a graph walk - Inspectors now return container elements as
RawElement
instances. - Container elements are now wrapped in ElementInfo before being visited by
ElementVisitor
- Added
LoggingCollectionInspector
that can be used to log when aCollection
of immutable types is encountered, (as the elements ofCollection
s of immutable types can be mutated). - #38 support for generic runtime types added e.g. if a field is of type
Map<String, Number>
and the value of the field isHashMap
, then the runtime generic type of the field is determined to be `HashMap<String, Number>. This type information is used when looking up which mutator/inspector/instanceFactory to use for a specific field.
Minor fixes:
- #18 Maven central support added
- #21 Improve error messages.
- Improved readme / help.
- Improved support for array fields.
Known incompatibilities with previous release
- Calls to
FieldElement#getGenericType
andElementInfo#getGenericType
will now throw aFieldAccessExcpetion
isensureAccessible
has not been previously called, as its using the current value to enrich type information.
Release: v0.3.0
Incompatible changes:
- Switched
FieldFilter
to use FieldInfo, rather than raw fields, and renamedevaluate
to a clearerinclude
- Switched
Inspector
to return collection ofRawField
abstraction, rather thanjava.lang.reflect.Field
, to enable later move to using bean getter/setters to define fields exposed. - Corrected package structure.
Improvements:
- Documentation improvements
- Error message improvements.
- #18 support for inherited fields
First release: v0.2.0
Initial JaxB support!
- @XmlJavaTypeAdapter - Class level annotations are now supported. The specified ValueType will be instantiated where needed, not the BoundType. Field level annotations are not yet supported.
- @XmlTransient - Field level annotations are now supported. Any field marked as @XmlTransient will be ignored. Getter/Setter level annotations are not yet supported.
Plus:
- Added support for package level inspectors e.g. to stop code traversing into the internals of types within
java.*
packages - Streamlined how immutable typed collections of
Inspectors
,Mutators
, andInstanceFactories
are manipulated within the client API - Changed the
FieldVisitor
callback from theGraphWalker
to take an extendibleFieldInfo
object - Support for
BigDecimal
- Added
EnsureNullMutator
, for those times when you want to null out a field - Removed ChainableInstanceFactory, and replace with the concept that a factory should return null if asked to instantiate a type it doesn't support.
- Added specific NullObjectStrategy, with a logging implementation
v0.1.2.2 Alpha Release - With Type Variable Resolution
Big change this version is the introduction of support for the resolution of TypeVariable information.
This is still very much a pre-release. But it is at least now starting to move towards a working solution.
Alpha Version 0.1.2.1-alpha
Alpha release - very much work in progress
This initial release comes as-is and with little documentation. Mainly releasing to test release process and to allow me to integrate with some client's build systems to allow more testing.