Last night I released version 3.0.1 of my HAL - Hypertext Application Language Java library to Maven Central.
As part of this release everything except the API was updated so everything remains the same (code wise) for users, however changes have been made to how a
RepresentationFactory is created, which is the impetus for the 3.0.1 version numbering.
The following resources were released:
and as usual, can be found with the following Apache Maven dependency declaration:
Extracted codec’s for XML and JSON to separate projects
One of the main changes with this release is that the HAL+JSON and HAL+XML serializer/deserializer code has been extracted to separate git repositories/artifacts - giving them there own independent release cycles.
A driving factor in this is not wanting to hold back development/pull requests/improvements to either the JSON or the XML where one may, or may not be round-trippable from one format to the other.
As part of this change, the
DefaultRepresentationFactory no longer comes preconfigured with any representation support beyond interface mirroring, instead the XML and JSON artifacts contain a
JsonRepresentationFactory subclass for you to use which configures HalBuilder to use the respective formats.
If you wish to continue supporting both, you can use the
halbuilder-standard artifact and use
StandardRepresentationFactory where you would have originally used the default.
Refactored JSON Writer for Customisation
As part of these changes,
JsonRepresentationWriter has had two methods extracted as protected for third party customization -
getJsonFactory which will allow custom data formats/serialisation to be configured. Of course, with oversight - extracting getting the
JsonRepresentationReader wasn’t done in this release, but thankfully now these are separate projects that’s an even quicker and simpler change.
Reworked namespace/currie support
When adding namespaces now, the URI provided MUST be a URI-Template including
Since the core project no longer contained any representation support, the singular IT test in the project no longer worked, so this has now been moved to a new halbuilder-examples project along with some other example projects showing how to use HalBuilder in different contexts.
As part of this release, Google Guava was updated to version 14.0.1.
Grab the updates and report back any bugs/issues/features/adoration.