Spring HATEOAS Changelog
========================

Changes in version 0.25.0.RELEASE (2018-07-25)
----------------------------------------------
- #730 - Release 0.25.
- #724 - Ensure Spring 4.3 / 5 compatibility in EncodingUtils.
- #723 - Backport simplified configuration setup.
- #722 - Update build plugins.
- #721 - Upgrade to Lombok 1.18.0.
- #720 - Upgrade to Spring 4.3.18.
- #665 - ALPS spec name is "descriptor" not "descriptors".

Changes in version 0.24.0.RELEASE (2017-10-30)
----------------------------------------------
- #661 - Release 0.24.
- #658 - Remove unused Enhancer variable.
- #639 - Add support for Optional parameters in ControllerLinkBuilder.
- #638 - Fix typos in Javadoc.
- #635 - Upgrade Spring Framework 5 build profile to 5.0 GA.
- #623 - Upgrade Spring 5 build profile to Jackson 2.9.1.
- #621 - #617 - Use SynthesizingMethodParameter to support AliasFor attributes.
- #617 - Parameter names not detected in case @AliasFor'ed attributes are used.
- #604 - Make JacksonSerializationTest platform independent.
- #603 - Fix typos.
- #601 - #597 - Add ALPS mediatype and LinkDiscoverer.
- #600 - Fix typo in UriTemplate.
- #597 - Migrate ALPS media type and LinkDiscoverer from Spring Data REST.
- #594 - Guard against Spring 5's Not Nullable policy.
- #586 - #585 - Add script to run ALL build profiles.
- #585 - Make it easier to test all profiles.
- #584 - #580 - Update IANA relation types.
- #583 - Make sure build profile for Spring 5 uses compatible Jackson version.
- #582 - LinkBuilderSupport.slash(…) fails to append path segments with a colon.
- #580 - Update IANA relation types.
- #575 - spring5-next profile breaks Spring HATEOAS.
- #567 - Add extra attributes to Link and use for HAL mediatype.
- #564 - Add license file to the project.
- #558 - HypermediaSupportBeanDefinitionRegistrar double registers message converters.
- #557 - Update "JSON" to "Jackson" in reference docs.
- #555 - Fixed syntax highlighting and content of a few code blocks in the reference guide.
- #553 - Fix typo in build file.
- #552 - Upgrade Spring 5 next to M5.
- #542 - "Get Link functionality" of ResourceSupport class.
- #538 - Update location of static resources.

Changes in version 0.23.0.RELEASE (2016-12-22)
----------------------------------------------
- #529 - Release 0.23.
- #527 - Link creation via ControllerLinkBuilder broken.

Changes in version 0.22.0.RELEASE (2016-12-21)
----------------------------------------------
- #473 - Release 0.22.
- #526 - Upgrade to Spring 4.3.5.
- #521 - Setup code coverage for SonarQube build.
- #520 - Polish most critical SonarQube warnings.
- #517 - Upgrade to Spring 4.3.4.
- #511 - Sub-optimal performance of ControllerLinkBuilder.linkTo(…).
- #509 - ControllerLinkBuilder does not handle multiple X-Forwarded-* headers values.
- #507 - Upgrade Spring 5 build profile to point to M2.
- #504 - Link.valueOf does not accept relations with dot or minus.
- #499 - Alps.Ext lacks required attribute id.
- #486 - Assignment checks for ResolvableType in ResourceProcessorInvoker don't work.
- #485 - Upgrade to Spring 4.3.
- #471 - Add support for @GetMapping, @PostMapping etc. introduced in Spring 4.3 in ControllerLinkBuilder.
- #169 - Allow creation of UriTemplates when pointing to controller methods.

Changes in version 0.21.0.RELEASE (2016-07-17)
----------------------------------------------
- #472 - Release 0.21.
- #469 - Remove use of AnnotationMethodHandlerAdapter for Spring 5 compatibility.
- #464 - Documentation for Traverson broken.
- #460 - HalHandlerInstantiator should use a BeanFactory just like SpringHandlerInstantiator.

Changes in version 0.20.0.RELEASE (2016-06-06)
----------------------------------------------
- #458 - Release 0.20.
- #457 - Move to Lombok's non-experimental Builder in ALPS types.
- #455 - Assert compatibility with Jackson 2.7.
- #449 - Add IDE formatter presets.
- #440 - Given link header is not RFC5988 compliant.
- #432 - Add code of conduct.
- #423 - Make sure URL parts are joined correctly.
- #422, #398 Remove unnecessary URI conversion.
- #421 - DefaultCurieProvider should dynamically prepend application base URI.
- #398 - ControllerLinkBuilder does not handle special query parameter characters correctly.
- #397 - Fixed typos.
- #390 - Rename missing Tests to Test for Maven support.
- #388 - Rename ForwardedHeaderUnitTests to test to be picked up by Maven.
- #383 - Reintroduce general compatibility with Jackson 2.4.
- #382 - Fixed Traverson double encoding issue.
- #381 - Upgrade Spring 4.2 build profile to Spring 4.2.1.RELEASE.
- #380 - Make sure all integration tests run in Maven build.
- #372 - Added support for Map parameters to LinkBuilderFactory.linkTo(…).
- #362 - Add ResourceProcessor support magic from Spring Data REST.
- #337 - Traverson's double encodes URIs.
- #269 - linkTo(methodOn(…)) sometimes misses slashes.
- #186 - Allow multiple mappings on type and method level.

Changes in version 0.19.0.RELEASE (2015-09-01)
----------------------------------------------
- #379 - Release 0.19.0.
- #378 - Add title attributes for HAL links derived from resource bundle.
- #376 - Compile against latest JAX-RS API.
- #375 - TrueOnlyBooleanSerializer.isEmpty(…) not honored on Jackson 2.6.
- #363 - Support for multiple Curie namespaces in the same application.
- #320 - Improve curie rendering in case no namespaced links are present.

Changes in version 0.18.0.RELEASE (2015-08-04)
----------------------------------------------
- #369 - Traverson's getAndFindLinkWithRel(…) needs to expand given URI defensively.
- #368 - Assert Jackson 2.6 compatibility.
- #364 - Added missing parentheses in reference documentation.
- #360 - TypeConstrainedMappingJackson2HttpMessageConverter needs to override canRead(Type, Class<?>, MediaType).
- #356 - #355 - Clean up Traverson section and explain Resources vs. Resource.
- #355 - Traverson docs need more cleanup.
- #353 - Release 0.18.0.
- #347 - Augment .gitignore to contain exclusions for Intellij.
- #342 - Augment error message when building links outside of an MVC request.
- #341 - ObjectMapper used for default HAL converter should not fail on unknown properties.
- #332 - Inconsistent behavior when using linkTo(methodOn()) on handler methods.
- #331 - Inconsistent behavior when using linkTo(methodOn()) on handler methods with defaultValue attribute set on @RequestParam.
- #329 - #247 - Added HAL_JSON_VALUE in MediaTypes class.
- #322 - Upgrade to Spring Plugin 1.2.0.
- #321 - Remove dependency to Objenesis.
- #314 - JSON-Path in HalLinkDiscoverer doesn't work for URI rels.
- #247 - Add HAL_JSON_VALUE in MediaTypes class.

Changes in version 0.17.0.RELEASE (2015-03-05)
----------------------------------------------
- #313 - Assert compatibility with both JSONPath 0.9 and 1.2.
- #312 - UriTemplate cuts off uri part after last path variable.
- #311 - Upgrade to latest Spring 4.0.x.
- #310 - Add package-info.java files.
- #309 - Incorrect calculation of totalPages in PageMetadata.
- #308 - Release 0.17.0.
- #307 - Traverson should allow to access final templated link.
- #306 - Add convenience types to create ParameterizedTypeReferences.
- #305 - Update dependencies.
- #304 - Add build profiles for Spring 4.x.
- #302 - Simple Boot Client doesn't handle hal links properly.
- #300 - Added missing variable in call to ControllerLinkBuilder.linkTo(Class<?>controller, Method method, Object... parameters).
- #297 - Upgrade JsonPath Version.
- #293 - EnableHypermediaSupport should augment HttpMessageConverters of registered RestTemplates.
- #286 - Allow EmbeddedWrappers.wrap to wrap empty collections.
- #281 - Enhance UriTemplate builder to build links for request param based urls.
- #278 - Publish JavaDoc and reference documentation.
- #273 - Fix Assert, forgot to pass the parameter that was being checked.
- #272 - Fix reference to non-existing interface.
- #271 - UriTemplate doesn't seem to expand simple path variables.
- #267 - Added varargs variant for ResourceSupport.add().
- #257 - Add support for X-Forwarded-Proto headers.
- #237 - Missing variable values in call to ControllerLinkBuilder.linkTo(Method, Object... parameters).
- #233 - Add support for curies to HalEmbeddedBuilder.
- #229 - HalEmbeddedBuilder needs to support curie for the embedded resources.
- #228 - TemplateVariable Constructor does not check Parameter.
- #224 - Typo in README: toResource should be toResources.
- #221 - HalEmbeddedBuilder should consider curies for relation types.
- #210 - #209 - Added support for Map<String, String> and MultiValueMap<String, S...
- #209 - ControllerLinkBuilder fails on Map<> RequestParams.

Changes in version 0.16.0.RELEASE (2014-07-28)
----------------------------------------------
- #219 - Registration of HttpMessageConverter for HAL should restrict rendering to subtypes of ResourceSupport.
- #217 - Improve UriTemplate's TemplateVariables handling.
- #216 - Release 0.16.0.RELEASE.

Changes in version 0.15.0.RELEASE (2014-07-10)
----------------------------------------------
- #212 - Traversion should be able to return the last link found.
- #203 - Traverson can now take a customized RestTemplate.
- #201 - Make RestTemplate of Traverson configurable.
- #200 - Updated reference documentation to explain CurieProvider API.
- #185 - Add support for link discovery for other media types than HAL to Traverson.
- #183 - Curie documentation or example.
- #141 - Add support for ALPS.

Changes in version 0.14.0.RELEASE (2014-06-30)
----------------------------------------------
- #206 - Set classloader for dummy method proxies.
- #205 - Jackson2ModuleRegisteringBeanPostProcessor must not access beans eagerly.
- #136 - Class loading issues on JBoss.

Changes in version 0.13.0.RELEASE (2014-06-18)
----------------------------------------------
- #199 - Improve design of HalEmbeddedBuilder.
- #198 - TemplateVariables.concat(…) should not duplicate variables.
- #195 - HalEmbeddedBuilder should consider rel provided by object to be added.
- #192 - ControllerLinkBuilder not detecting the right @RequestMapping from a controller.
- #188 - #187: Traverson correctly applies headers when using JsonPath to evaluat...
- #187 - Traverson: toObject(jsonPath) does not apply headers.

Changes in version 0.12.0.RELEASE (2014-05-20)
----------------------------------------------
- #180 - Traverson is not expanding URI template on final call correctly.
- #179 - Fix double encoding in LinkBuilderSupport.
- #178 - Potential NullPointerException in ResourceSupport.
- #177 - Fix typo in readme.
- #131 - Add support for client side service traversing.
- #96 - LinkBuilderSupport double encoding URL.

Changes in version 0.11.0.RELEASE (2014-05-01)
----------------------------------------------
- #173 - Release 0.11.
- #172 - Link should be serializable.
- #170 - Proxy header detection should honor X-Forwarded-Port.
- #114 - linkTo(methodOn()) problem when method is defined by super class of controller.

Changes in version 0.10.0.RELEASE (2014-03-30)
----------------------------------------------
- #165 - Drop Jackson 1.x support
- #162 - Documentation - @RelationType
- #160 - Fix UriTemplate.expand(…) method signature to prevent accidental binding to varargs overload
- #158 - HalEmbeddedBuilder should forward proxy target class to RelProviders
- #154 - Build fails with Java 7
- #148 - Cant't get HAL-Type serialization to work
- #103 - Spring HATEOAS fails in WebSphere 8

Changes in version 0.9.0.RELEASE (2014-01-29)
---------------------------------------------
- #147 - Add convenience toString to VndErrors
- #142 - Support multiple curies to be returned from CurieProvider
- #139 - PagedResourcesAssember and URL Variables
- #138 - MethodParameters should be able to return parameters by type
- #137 - Add support for link templates
- #133 - LinkDiscoverer must not throw exceptions if link container is not present
- #132 - Resource should reject collection content
- #130 - Guard @EnableHypermediaSupport against issue in Spring 3.2.x
- #128 - Improve LinkDiscoverer API
- #125 - Add support for HAL curies
- #124 - Fix mapping annotations in ResourceSupport and subclasses
- #123 - Deprecate Jackson 1.9.x support
- #122 - ControllerLinkBuilder creates parameter names for optional request parameters even if they're null.
- #121 - OSGi imports for spring-plugin-core are incorrect
- #112 - Added support for X-Forwarded-Ssl header during link construction.
- #110 - HalEmbeddedBuilder fails to properly encode odd number of elements
- #140 - Upgrade to latest Spring 3.2.x
- #126 - Release 0.9

Changes in version 0.8.0.RELEASE (2013-08-09)
---------------------------------------------
- #101 - Enable annotation based parameter name discovery on MethodParameters
- #89 - PagedMetadata issue
- #106 - Upgrade to Jackson 2.2.0
- #105 - Release 0.8

Changes in version 0.7.0.RELEASE (2013-16-07)
---------------------------------------------
- #91 - Improve proxying for links build from method references
- #99 - HalLinkListSerializers don't guarantee stable link order
- #98 - PagedResources JAXB un-marshalling is broken
- #94 - Fix for issue #93
- #93 - Jackson can't deserialize VndErrors
- #92 - Remove JsonAutoDetect annotations from PagedResources
- #90 - Consider port number when setting the host from the X-Forward-Host header
- #86 - Make sure all test run during build
- #85 - Add support to render resource links as headers instead of in the body
- #84 - Make Resource more defenisive against null content
- #83 - #81: handle null content when adding Resource or Resources
- #81 - Nullpointer in HalEmbeddedBuilder
- #74 - Release 0.7

Changes in version 0.6.0.RELEASE (2013-31-05)
---------------------------------------------
- #73 - ControllerLinkBuilder should allow pointing to unmapped controllers
- #72 - AnnotationMappingDiscoverer should return polished mapping for root slash mapping
- #70 - Fixed problem with Controllers having a path parameter on the class mapping
- #64 - Add HAL support for PagedResources
- #63 - HAL : Wrong rel name for embedded collections
- #62 - Add support for vnd.error
- #61 - Release 0.6

Changes in version 0.5.0.RELEASE (2013-30-04)
---------------------------------------------
- #57 - Support formatting of @PathVariables
- #56 - Improve fragment handling in LinkBuilderSupport
- #54 - Add basic support for RFC5988 style link headers
- #53 - Use slf4j for logging
- #52 - Add SPI to let HandlerMethodArgumentResolver implementations contribute to URI building
- #51 - Add LinkDiscoverer implementation for HAL
- #50 - Add @EnableHypermediaSupport to default configuration
- #48 - Make source encoding explicit in pom.xml
- #39 - Fix for #26 Add support for request parameters to Link builder
- #26 - Add support for request parameters to Link builder
- #44 - Release 0.5

Changes in version 0.4.0.RELEASE (2013-28-01)
---------------------------------------------
- #18 - Added support to build links pointing to controller methods
- #32 - Added @EnableEntityLinks to transparently expose controllers managing entities
- Introduced EntityLinks API to build links pointing to components exposing URIs for entities
- Introduced LinkDiscoverer API to find links by their rels in representations (incl. JSONPath based implementation)
- #27 - Added support for Jackson 2
- #29 - Added support for HAL-style link representations
- #41, #42 - Extracted ResourceAssemblerSupport for non-Identifiables
- #43 - Fixed potential stack-overflow in ControllerLinkBuilder
- #33 - ControllerLinkBuilder now considers X-Forwarded-Host header if present

Changes in version 0.3.0.RELEASE (2012-10-09)
---------------------------------------------
- #15 - Upgraded to Jackson 1.9.10
- #14 - Added integration test to make sure default (de)serialization works
- #13 - Added LinkBuilder implementation that inspects JAX-RS @Path annotations
- #12 - Introduced factories for LinkBuilder to improve client testability
- #11 - Moved to Set and back to List for Links inside ResourceSupport
- #10 - Renamed (Paged)Resources.fromEntities(…) to ….wrap(…)
- #9 - Added constructor to PagedResources to take an Iterable of Links
- #7 - Excluded getId() of ResourceSupport from default JSON rendering
- Switched from Collection to Iterable in constructor of Resources 
- Moved from ResourceEnricher to ResourceProcessor to allow manipulating the resource instance

Changes in version 0.2.0.RELEASE (2012-08-23)
---------------------------------------------
- added ResourceEnricher SPI
- fixed equals(…)/hashCode() in Resource/Resources/PagedResources 
- Added PagedResources abstraction (collection resource with pagination information)
- Enhanced resource abstraction with default implementation for Resource and Resources

Changes in version 0.1.0.RELEASE (2012-07-19)
---------------------------------------------
- Initial release with basic support
- Common abstractions like Link, Identifiable, ResourceSupport (JAXB marshable)
- ControllerLinkBuilder to easily create Link instances to point to Spring MVC controllers
- ResourceAssemblerSupport base class to easily create resource (DTO) instances