Skip to content

Releases: otto-de/edison-hal

Release 2.1.0

30 Jan 11:36
Compare
Choose a tag to compare

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 with Curies 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

18 Dec 11:30
Compare
Choose a tag to compare

Fixed issues when more than two parameters in the Traverson.withVars() function.

Release 2.0.1

13 Aug 21:42
Compare
Choose a tag to compare

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 in HalParser 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

03 May 08:00
Compare
Choose a tag to compare
Pre-release

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

30 Nov 09:28
Compare
Choose a tag to compare
Pre-release

Breaking Changes

  • The error handling in the Traverson API has been changed in that exceptions are now thrown instead of catching them
    and exposing a Traverson.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
    throwing java.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 a java.util.function.Function<Link,String>
    anymore. Instead, a de.otto.edison.hal.traverson.LinkResolver was introduced. The major difference between the new
    PageHandler and the previous Function is that the PageHandler.apply(Link) is now throwing IOException 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 a java.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 the Traverson to follow the links instead. This is especially helpful,
    if only a reduced set of attributes is embedded into a resource. A set of Traverson.followLink() methods was added
    to support this.
  • Added new methods Traverson.paginate() and Traverson.paginateAs() to paginate over paged resources using
    link-relation types other than next or prev.
  • Added a CuriTemplate helper to expand / shorten link-relation types using a CURI.

Release 1.0.0

12 Oct 10:04
Compare
Choose a tag to compare
  • 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

15 Feb 13:13
Compare
Choose a tag to compare

1.0.0.RC5

Bugfixes

  • Fixed signature of HalRepresentation.withEmbedded(): using List<? extends HalRepresentation instead of List<HalRepresentation. Closes #10

Release Candidate 4

07 Feb 18:58
Compare
Choose a tag to compare

New Features / API extensions:

  • Added support for traversal of HAL documents with relative hrefs.

Release Candidate 3

05 Feb 16:21
Compare
Choose a tag to compare

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

27 Dec 13:03
Compare
Choose a tag to compare
Release Candidate 2 Pre-release
Pre-release

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.