#137 - Changed Link.isTempalte() to isTemplated().
#137 - Improved TemplateVariables to combine variables.

Request parameters variables {?…} and continued ones {&…} are now combined by TemplateVariables. Improved detection of the base URI and adapted the rendering logic accordingly. UriTemplates can now be augmented with additional TemplateVariables.

Added equals(…) and hashCode() methods for TempalteVariables.
#135 - HAL embedded resources are now rendered as collection by default.

To get consistent representations rendered for single-item collections and multi-item collections, we now use an enforceEmbeddedCollections flag in the Jackson 2 HAL module. Adapted HalEmbeddedBuilder to respect that setting and exposed it via the HandlerInstantiator for user level customization.

Changed RelProvider.getSingleResourceRel(…) to getItemResourceRel(…).
#147 - Added toString() methods to VndErrors and VndError.

Removed duplicate test class.
#140, #126 - Prepare 0.9 release.

Finalize changelog. Upgraded to Spring 3.2.7. Switched to release repository.
#126 - Release version 0.9.0.RELEASE.
#126 - Prepare next development iteration.
#?? - ObjectUtils now uses proxy target class for Advised proxies.
#154 - Introduce XMLUnit to make sure we can build on Java 6 and 7.

Using XMLUnit's Diff to guard against minor changes in the default rendering of XML between Java 6 and 7.
#158 - HalEmbeddedBuilder now uses AopUtils.getTargetClass().

To correctly resolve the rel for a proxied class we need to build up relation types for, HalEmbeddedBuilder now uses Spring's AopUtils.getTargetClass(), which will use the object's getTargetClass() method in case it implements TargetClassAware.
#160 - Fixed UriTemplate.expand(…) method declaration.

UriTemplate.expand(Map) not takes a Map<String, ? extends Object> to make sure Link.expand(Map) binds to the correct method. Previously it was bound to the method overload taking an Object vararg which caused an invalid expansion.
#134 - Fixed initialization of HttpMessageConverters for HAL.

The Jackson(2)ModuleRegisteringBeanPostProcessor now uses postProcess*Before*Initialization to make sure, afterPropertiesSet() has not been called on the target components which might have propagated the original HttpMessageConverters into other internal components.

With this fix, adding the HttpMessageConverter for HAL is added before the call and thus will be propagated to downstream components.
#162 - Fixed readme to mention @Relation, not @RelationType.
#165 - Removed support for Jackson 1.x.
#127 - Prepare 0.10.0.RELEASE.

Upgraded to latest Objenesis and Slf4j. Updated changelog.
#127 - Release version 0.10.0.RELEASE.
#127 - Prepare next development iteration.
#131 - Add Traverson hypermedia client API.

Introduce Traverson as means to traverse hypermedia based APIs by providing a set of relation names to discover and follow to access the final representation. Traverson allows to specify a parameter map that will be used  to potentially expand the URIs discovered.

We currently support LinkDiscoverer based relation discovery, which means that relations in HAL representations can be found by simply stating their names. Alternatively JSON path expressions can be used (starting with a $).
#172 - Made types contained in Link implement Serializable.
#170 - LinkBuilder takes X-Forwarded-Port header into account if present.

ControllerLinkBuilder now inspects the X-Forwarded-Port and uses that if present. If an X-Forwarded-Host header doesn't contain a :, we now also reset the port to prevent the local one from leaking into links generated.