Releases: otto-de/edison-hal
Releases · otto-de/edison-hal
Release 2.1.0
New Features / API extensions
- Adds method
Links.Builder#collection(String)
to add a collection link to a HalResource´s_links
section.
Bugfixes
- Fixes issue #29: additional attributes contained in
HalRepresentation.attributes
will now be serialized.
Deprecations
- Adds deprecation for
HalRepresentation
constructors withCuries
parameter. No expected usages - but please
contact me, if the removal in some future release 3.0 will break some use-cases for you.
Release 2.0.2
Fixed issues when more than two parameters in the Traverson.withVars() function.
Release 2.0.1
2.0.1
Bugfixes
- Fixes next page bug for zero-based paging (Issue #24)
2.0.0
New Features / API extensions
- Issue 23: Allow customization of the Jackson
ObjectMapper
used inHalParser
Traverson
.
Dependency Updates
- Updated
com.fasterxml.jackson.core:jackson-databind
from 2.9.1 to 2.9.6 - Updated
com.damnhandy:handy-uri-templates
from 2.1.6 to 2.1.7
Release 2.0.0 Milestone 2
Bugfixes
- Issue 22: Duplicate curies are now removed from embedded objects, if they are specified in the embedding HalRepresentation.
Breaking Changes
- The API to create Links instances has changed: the former Links.linkingTo(List), Links.linkingTo(Link, Link...) is now replaced by Links.linkingTo() which is returning a Links.Builder. The reason for this is that it is now possible to specify more easily, whether a Link should be rendered as a single link object, or an array of link objects. The Links.Builder has now methods for this like, for example, single(Link, Link...) or array(Link, Link...). Have a look at section 4.3 for more details about adding links to a HalRepresentation.
- Because the Links.Builder is now able to create single link objects as well as arrays of link objects, the corresponding functionality to register link-relation types to be rendered as arrays has been removed from RelRegistry.
- Issue 21: Similar to the links, it is now possible to specify whether or not embedded resources are embedded as single resource objects, or arrays of resources objects.
- Renamed RelRegistry to Curies
- Issue 20: HalRepresentation was previously annotated with @JsonInclude(NON_NULL). This was changed so that only _links and _embedded are now annotated this way. This might change the behaviour / structure of existing applications. You should now annotate classes extending HalRepresentation, or attributes of such classes appropriately.
Release 2.0.0 Milestone 1
Breaking Changes
- The error handling in the Traverson API has been changed in that exceptions are now thrown instead of catching them
and exposing aTraverson.getLastError()
. In 1.0.0, the client had to check for the last error. This is rather unusual
and is easy to overlook. Beginning with 2.0.0,getLastError
is removed and the following method-signatures are now
throwingjava.io.IOException
:- Traverson.paginateNext()
- Traverson.paginateNextAs()
- Traverson.paginatePrev()
- Traverson.paginatePrevAs()
- Traverson.stream()
- Traverson.streamAs()
- Traverson.getResource()
- Traverson.getResourceAs()
- The static factory method
Traverson.traverson()
does not accept ajava.util.function.Function<Link,String>
anymore. Instead, ade.otto.edison.hal.traverson.LinkResolver
was introduced. The major difference between the new
PageHandler
and the previousFunction
is that thePageHandler.apply(Link)
is now throwingIOException
while
Function
does not allow this. - For the same reasons (being able to throw IOExceptions), the different
paginate*
methods now expect a
de.otto.edison.hal.traverson.PageHandler
instead of ajava.util.function.Function<Traverson,Boolean>
. Beside of this,
using dedicated functional interfaces instead of generic Functions is a little easier to understand.
New Features / API extensions
- The
Traverson
now supports traversing linked resources while ignoring embedded resources: instead of returning an
embedded item, clients are now able to force theTraverson
to follow the links instead. This is especially helpful,
if only a reduced set of attributes is embedded into a resource. A set ofTraverson.followLink()
methods was added
to support this. - Added new methods
Traverson.paginate()
andTraverson.paginateAs()
to paginate over paged resources using
link-relation types other thannext
orprev
. - Added a
CuriTemplate
helper to expand / shorten link-relation types using a CURI.
Release 1.0.0
- It is now possible to configure the link-relation types that are serialized as an array of links using RelRegistry.
- Parsing of deeply nested embedded items
- Support for curies in deeply nested embedded items
- The HalParser now supports multiple type infos so more than one link-relation type can
be configured with the type of the embedded items. - Support for parsing and accessing attributes that were not mapped to properties of HalRepresentations
- Added TRACE logging to Traverson to make it easier to analyse the behaviour of the Traverson.
Release Candidate 5
1.0.0.RC5
Bugfixes
- Fixed signature of HalRepresentation.withEmbedded(): using List<? extends HalRepresentation instead of List<HalRepresentation. Closes #10
Release Candidate 4
New Features / API extensions:
- Added support for traversal of HAL documents with relative hrefs.
Release Candidate 3
New Features / API extensions
- Added Traverson.getResourceAs(Class, EmbeddedTypeInfo) and `Traverson.streamAs(Class, EmbeddedTypeInfo> so it is possible to specify the type of embedded items of a resource using Traversons.
- Added support for client-side traversal of paged resources using
- Traverson.paginateNext()
- Traverson.paginateNextAs()
- Traverson.paginatePrev()
- Traverson.paginatePrevAs()
- Traverson.paginate()
- Traverson.paginateAs()
Release Candidate 2
Bugfixes
- Fixed traversion of links using predicates
- Fixed parsing of embedded items, where a rel has only only a single item instead of a list of items.