Spring HATEOAS Changelog ======================== Changes in version 1.4 GA (2021-11-11) ---------------------------------------- - #1716 - Upgrade to Spring Framework 5.3.13. - #1715 - Upgrade to Reactor 2020.0.13. - #1697 - Custom types not supported in HAL FORMS properties description. - #1696 - Adding request parameter template variables to a URI already containing one produce invalid template. - #1688 - Use Links.collector() in JsonPathLinksDiscoverer. - #1687 - Fix Javadoc in LinkDiscoverer.findLinkWithRel(…). - #1686 - Error serializing EntityModel when content is an empty bean and the ObjectMapper is configured to not to fail on those. Changes in version 1.4 RC1 (2021-10-14) ---------------------------------------- - #1681 - Upgrade to Kotlin 1.5.31. - #1680 - Upgrade to Reactor 2020.0.12. - #1679 - Upgrade to Lombok 1.18.22. - #1678 - Upgrade to JUnit 5.8.1. - #1677 - Upgrade to Jackson 2.13.0. - #1676 - Upgrade to AssertJ 3.21.0. - #1662 - HAL FORMS target must only contain URLs. - #1659 - Fix sample of HalModelBuilder in documentation. - #1658 - Re-expose AnnotationMappingDiscoverer. - #1657 - Prevent IndexOutOfBoundException if no media type configurations registered. - #1652 - Imprecise definition of how parameters are handled in MethodLinkBuilderFactory.linkTo(…) methods. - #1648 - Remove deprecations. - #1647 - Upgrade to Spring Framework 5.3.11. - #1640 - Upgrade compatibility builds to JDK 17. - #1638 - DummyInvocationUtils.methodOn(…) fails for methods returning Object on JDK 17. - #1637 - Upgrade Lombok to 1.18.20 for JDK 17 support. - #1448 - Irritating log output when pointing to controller methods that return a Mono. Changes in version 1.4 M3 (2021-09-16) ---------------------------------------- - #1634 - Upgrade to AssertJ 3.20.2. - #1633 - Upgrade to EvoInflector 1.3. - #1632 - Upgrade to Logback 1.2.6. - #1631 - Upgrade to JaCoCo 0.8.7. - #1630 - Upgrade to Jackson 2.12.5. - #1629 - Upgrade to JUnit 5.8. - #1628 - Upgrade to Slf4j 1.7.32. - #1627 - Upgrade to Mockk 1.12.0. - #1626 - Upgrade to Kotlin 1.5.30 and Coroutines 1.5.3. - #1625 - Upgrade to Reactor 2020.0.11. - #1624 - Upgrade to Spring Framework 5.3.10. - #1609 - Avoid superfluous object creation in Link.valueOf(…). - #1608 - HAL-FORMS affordance method is in lowercase instead of uppercase. - #1607 - Remove deprecations in Affordances. - #1602 - Wrong nullability declarations for properties of Link. - #1599 - @JsonIdentityInfo not rendering correctly since Spring HATEOAS 1.1.2. - #1598 - Custom converter is not used for enum list query parameter. Changes in version 1.4 M2 (2021-08-12) ---------------------------------------- - #1591 - Allow to register custom media type for HAL FORMS. - #1590 - Add fallback type information to empty CollectionModels. - #1588 - WebMvcLinkBuilder.linkTo(Method, Object[]) does not append request parameters properly. - #1575 - Support for non-composite request parameter rendering on link creation. - #1565 - UriBuilder query parameter encoding behaves differently depending on required RequestParameter. - #1485 - Special characters in request parameters not fully encoded when generating links from controller methods. Changes in version 1.4 M1 (2021-07-14) ---------------------------------------- - #1586 - Upgrade to Reactor 2020.0.9. - #1585 - Upgrade to Spring Framework 5.3.9. - #1583 - Full support for level 4 URI templates. - #1563 - Consider @JsonProperty-defined property name for affordance metadata. - #1562 - Add MARKDOWN as a supported Alps documentation format. - #1557 - Add @DecimalMin and @DecimalMax for Hal+Forms Property Metadata. - #1548 - IllegalStateException with @RequestParam Map. - #1545 - Upgrade to JSON Path 2.6.0. - #1540 - Embedded curie causes two _links in API response. - #1534 - Upgrade to Spring 5.3.7. - #1530 - Add build profile for Kotlin 1.5.0 compatibility. - #1529 - Make WebConverters public. - #1523 - Provide additional HtmlInputType's for checkbox, radio and file. - #1521 - Cannot bootstrap HATEOAS without a default media type enabled. - #1516 - Handle deprecation for PropertyNamingStrategyBase. - #1515 - Exception on HAL serialization with object mapper configured to sort map entries by keys. - #1475 - Fix custom media type parser documentation. - #467 - AnnotationMappingDiscoverer should read @RequestMapping#params(). Changes in version 1.3 GA (2021-04-13) -------------------------------------- - #1513 - Upgrade to Jackson 2.12.3. - #1512 - Upgrade to Spring Framework 5.3.6 and Reactor 2020.0.6. - #1510 - Support for defining selected value on HalFormsOptions. - #1509 - Migrate to main branch. - #1507 - Potential NullPointerException in Jsr303AwarePropertyMetadata. Changes in version 1.3 RC1 (2021-03-31) --------------------------------------- - #1505 - Improve signature of HalFormsOptions.inline(…). - #1504 - Allow mapping links conditionally via RepresentationModel.mapLinkIf(…). Changes in version 1.3 M3 (2021-03-16) -------------------------------------- - #1497 - Upgrade to Spring 5.3.5. - #1494 - Improve HAL Link deserialization. - #1493 - Upgrade to JaCoCo 0.8.6. - #1492 - Upgrade to Jackson 2.12. - #1491 - Upgrade to Kotlin Coroutines 1.4.3. - #1490 - Upgrade to Reactor 2020.0.5. - #1489 - Release 1.3 M3. - #1484 - Significant performance regression in WebHandler. - #1483 - Add support for HAL-FORMS options element. - #1482 - Properly find project version number for CI jobs. - #1477 - DelegatingEntityLinks does not override linkForItermResource(Class, Object). - #1474 - Migrate to new Sonatype infrastructure. - #1421 - Use JDK 15 for CI testing. Changes in version 1.3 M2 (2021-02-16) -------------------------------------- - #1468 - AnnotationMappingDiscoverer does not preserve trailing mapping slashes. - #1462 - Upgrade to Reactor 2020.0.4. - #1458 - Link.parse(…) should be able to handle unquoted link relations. - #1457 - Add RepresentationModel.mapLink(LinkRelation, Function) to handle or replace existing links. - #1456 - Properly guard against validation API < 2.0. - #1453 - Use new configuration infrastructure on MappingJackson2MessageConverter / Jackson2CodecSupport. - #1452 - Upgrade to Spring 5.3.4. - #1451 - Upgrade to ArchUnit 0.16.0. - #1450 - Multiple template variables using regular expression break link creation. - #1447 - Simplify Jackson customizations for HAL FORMS. - #1445 - Support for type attribute of HAL FORMS properties. - #1444 - Fix settings for documentation publishing. - #1443 - Expose affordance input payload media type in HAL FORMS contentType attribute. - #1442 - Support for input payload media type exposure for affordances. - #1441 - Improvements to AffordanceModelFactory SPI. - #1439 - Support for HAL FORMS min, max, minLength and maxLength attributes. - #1438 - Support for HAL FORMS placeholder property for template properties. - #1428 - Curies relation can be added to `_links` without any curie given by the curie provider. - #1427 - Support HAL-FORMS target template element property. - #1415 - Remove obsolete Spring plugins repository. - #1405 - Memory leak in WebHandler.AFFORDANCES_CACHE. - #1371 - Using @JsonValue in the type of the content of EntityModel is now broken. - #1253 - Collections not embedded with HAL compatible vendor specific media type. - #352 - ControllerLinkBuilder.linkTo fails to build a link to a method that uses entity as a target of @PathVariable in its signature. - #149 - AnnotatedParametersParameterAccessor uses DefaultFormattingConversionService. - #144 - linkTo and methodOn with custom RequestMappingHandlerMapping. Changes in version 1.3 M1 (2021-01-13) -------------------------------------- - #1433 - Upgrade to Spring Framework 5.3.3. - #1425 - RepresentationModelProcessor not invoked for PagedModel / CollectionModel consisting of RepresentationModels. - #1424 - More convenience methods for MvcLink. - #1423 - HaloFormsConfiguration.withPattern(…) should not be deprecated. - #1417 - Release directly to OSS Sonatype. - #1412 - Extracted mappings still contain regex matching expressions. - #1399 - Curie information not rendered if model contains pre-curied links. - #1388 - Properly parse new version format for CI. - #1379 - RepresentationModelProcessor invoked for invalid CollectionModel payload if specialized. - #475 - Allow all UriTemplate variable names following RFC. Changes in version 1.2 GA (2020-10-27) -------------------------------------- - #1384 - Upgrade to Spring Framework 5.3. - #1382 - Create an ObjectMapperCustomizer to allow tailoring ObjectMapper through media types configuration. Changes in version 1.2 RC1 (2020-09-15) --------------------------------------- - #1367 - Release Spring HATEOAS 1.2.0.RC1. - #1366 - Upgrade to Spring Framework 5.3.0-RC1. - #1364 - Document that media type implementation configuration should be public. - #1358 - Update links to JSON:API documentation (community based media types). - #1352 - Map content is not getting serialized properly. Changes in version 1.2 M1 (2020-08-11) -------------------------------------- - #1351 - Upgrade to Jackson 2.11.2. - #1350 - Upgrade to Kotlin 1.4 RC. - #1349 - Release 1.2 M1. - #1348 - Upgrade to Spring Framework 5.3 M2. - #1341 - Add Links.andIf(boolean, Link...). - #1340 - Allow adding Stream to Links. - #1337 - List community media type implementations in the reference docs. - #1335 - Add HalModelBuilder.embed(Stream …). - #1334 - Upgrade to Reactor Dysprosium SR10. - #1333 - Upgrade to Spring 5.2.8. - #1329 - Remove deprecations. - #1323 - Allow HalModelBuilder.build() to pick up call side generics. - #1322 - Allow to conditionally add a Link to Links. - #1321 - Add convenience type to create Link instances from URIs created via MvcUriComponentsBuilder. - #1320 - Update Javadoc and toString() methods in renamed classes. - #1319 - Revisit language in reference documentation. - #1314 - HalLinkRelation incorrectly parses relation sources with more than one colon in them. - #1313 - Problem.ExtendedProblem has no withStatus method. - #1304 - The SPI for media types needs to reflect it's ONLY for internal usage. - #1294 - Delombok production code. - #1291 - VndErrors logref is not just Integer. - #1287 - Memory pressure when creating Link instances. - #361 - Add Support for Resolving Property Values in @RequestMapping(value). Changes in version 1.1.0.RELEASE (2020-05-11) --------------------------------------------- - #1292 - Release 1.1.0.RELEASE. - #1280 - RepresentationModelProcessorInvoker incorrectly invokes generic processors. - #968 - @JsonUnwrapped ignored with (embedded) CollectionModel and HAL Forms. - #864 - Create a dedicated builder for HAL representations. - #270 - Sample for embedding HAL Resources of different types with root resource. - #193 - Support for Resources in a Resource to be added to _embedded. Changes in version 1.1.0.RC1 (2020-04-28) ----------------------------------------- - #1277 - Upgrade to Jackson 2.11.0. - #1275 - Align Naming for Kotlin Extension Functions with Spring. - #1270 - Add Kotlin source to released artifacts. - #1266 - Use JDK 14 for Java.next CI testing. - #1264 - Remove .factorypath. - #1255 - Introduce ability to alter classpath for test purposes. - #1252 - HypermediaWebTestClientConfigurer must not be registered if spring-test is not on the classpath. - #1250 - Start testing against Jackson 2.11. - #1247 - Update spring-doc-resources and highlight. - #1213 - Add support for Kotlin co-routines. - #227 - Uri Template {?value*} does not generate templated:true. Changes in version 1.1.0.M3 (2020-03-31) ---------------------------------------- - #1246 - Upgrade to AssertJ 3.15.0. - #1245 - Upgrade to Kotlin 1.3.71. - #1241 - Additional factory methods for empty CollectionModel and PagedModel instances. - #1230 - Upgrade to Jackson 2.10.3. - #1229 - Upgrade to Reactor Dysprosium-SR6. - #1228 - Fix CI scripts to properly use maven caching. - #1227 - Upgrade to JUnit 5.6.1. - #1226 - Upgrade to Spring Framework 5.2.5.RELEASE. - #1225 - Provide implementation of WebTestClientConfigurer to support hypermedia. - #1224 - Provide API for users to easily configure WebClient. - #1223 - Provide API for users to easily configure RestTemplate. - #1216 - Consider providing String constants in IanaLinkRelations. - #1215 - Update RFC-5988 references to RFC-8288. - #1208 - Migrate from Lombok's @Wither to @With. Changes in version 1.1.0.M2 (2020-02-12) ---------------------------------------- - #1205 - Fix nullability warnings in EntityModelProcessorWrapper.isValueTypeMatch(…). - #1204 - Fix nullability warnings in VndErrors. - #1203 - Migrate off deprecated Link APIs. - #1202 - Polish imports and formatting. - #1201 - Switch to new EntityModel factory methods where possible. - #1200 - Link.of(String, String) should not be deprecated. - #1198 - Upgrade to Lombok 1.18.12. - #1195 - Upgrade to Jackson BOM 2.10.2.20200130. - #1193 - Revise usage of Encoder registration APIs. - #1189 - Link building does not consider method parameters declared in interfaces. - #1183 - Migration script doesn't cover @ExposesResourceFor. - #1172 - Add helper methods for creating template variables. Changes in version 1.1.0.M1 (2020-01-15) ---------------------------------------- - #1182 - Upgrade to JUnit 5.5.2. - #1181 - Upgrade to Reactor Dysprosium SR3. - #1180 - Upgrade to Slf4J 1.7.30. - #1179 - Upgrade to Kotlin 1.3.61. - #1178 - Upgrade to Jackson 2.10.2. - #1177 - Upgrade to JaCoCO 0.8.5. - #1176 - Upgrade to AssertJ 3.14. - #1174 - Upgrade to Spring Framework 5.2.3. - #1169 - Update license headers to extend copyright to 2020. - #1166 - Premature initialization of downstream beans caused by RestTemplateHateoasConfiguration's reference to WebConverters. - #1165 - Potential NullPointerException in UriTemplate. - #1159 - Fold HalHandlerInstantiator.enforceEmbeddedCollections into HalConfiguration. - #1157 - Map content in an EntityModel is not properly unwrapped. - #1155 - Thread-safety issues in AnnotationLinkRelationProvider's cache. - #1152 - Allow appending path segments in WebFluxLinkBuilder. - #1148 - Further performance improvements in link creation. - #1145 - Query parameters are not removed from generated WebFlux links. - #1138 - Upgrade to Spring Framework 5.2.2. - #1134 - WebClientConfigurer "drops" ObjectMapper customizations from WebClients. - #1133 - Fix package name 'vnderror' to 'vnderrors' in migration script. - #1132 - Keys for HAL's _embedded document and link relations do not follow the Jackson PropertyNamingStrategy configured. - #1127 - UriTemplate redundantly percent encodes literal part. - #1122 - Generics bounds too strict in RepresentationModelAssemblerSupport. - #1121 - Bean class without reader method producing NullPointerException. - #1119 - Configuring RestTemplate breaks in a pure Spring WebFlux application. - #1118 - MemoryLeak caused by UriTemplate cache. - #1116 - Refine factory methods and nullability checks for RepresentationModel types. - #1109 - Upgrade to Reactor Dysprosium-SR1. - #1107 - Upgrade to Spring Framework 5.2.1.RELEASE. - #1103 - Migration for ResourceAssemblerSupport -> RepresentationModelAssemblerSupport missing. - #1101 - Fix also HAL_JSON_UTF8 media type. - #1100 - Upgrade CI to use JDK 13 for edge testing. - #1098 - WebMvcHateoasConfiguration not applied for plain client application. - #1097 - Fixed some grammatical and spelling errors. - #1091 - Fix single char typo. - #1057 - Migrate to vendor neutral error handling mechanism (RFC-7807). - #1045 - Reduce visibility of UriTemplate constructor calls. - #1025 - logref property should be optional. - #786 - Introduce comprehensive error handling strategy. - #776 - #775 - Overhaul VndErrors to match spec. - #775 - Update VndErrors to match latest details of the spec. - #651 - Allow VndError to have children. . - #593 - UriTemplate handles encoded variables improperly on expand call. - #546 - vnd.error path attribute. - #478 - VndErrors.VndError#logRef is not optional. - #345 - Vnd.error links key on json response. Changes in version 1.0.2.RELEASE (2019-12-03) --------------------------------------------- - #1142 - Release 1.0.2.RELEASE. - #1140 - WebClientConfigurer "drops" ObjectMapper customizations from WebClients. - #1139 - Upgrade to Spring Framework 5.2.2. - #1137 - Fix package name 'vnderror' to 'vnderrors' in migration script. - #1131 - UriTemplate handles encoded variables improperly on expand call. - #1130 - UriTemplate redundantly percent encodes literal part. - #1128 - Configuring RestTemplate breaks in a pure Spring WebFlux application. - #1126 - Generics bounds too strict in RepresentationModelAssemblerSupport. - #1124 - Bean class without reader method producing NullPointerException. - #1123 - MemoryLeak caused by UriTemplate cache. Changes in version 1.0.1.RELEASE (2019-11-03) --------------------------------------------- - #1112 - Release 1.0.1.RELEASE. - #1111 - Add 1.0.1.RELEASE to the ChangeLog. - #1110 - Upgrade to Reactor Dysprosium-SR1. - #1108 - Upgrade to Spring Framework 5.2.1.RELEASE. - #1104 - Migration for ResourceAssemblerSupport -> RepresentationModelAssemblerSupport missing. Changes in version 1.0.0.RELEASE (2019-09-30) --------------------------------------------- - #1090 - Release 1.0.0.RELEASE. - #1089 - Upgrade Reactor to Dysprosium-RELEASE. - #1088 - Upgrade to Jackson 2.10. - #1086 - Upgrade to Jackson BOM 2.9.9.20190807. - #1085 - Upgrade to Spring Plugin 2.0. - #1080 - Clarify expected behaviour around EntityLinks when using WebFlux. - #1079 - Upgrade to Spring Framework 5.2.0.RELEASE. - #1075 - i18n only working when rest-default-messages.properties is available. - #1038 - Update documentation to show how to create an ALPS serving controller for profile purposes. - #1028 - Fix example in docs to reflect requirement for _prompt for property I18N. - #966 - Application does not start due to two bean instances of org.springframework.plugin.core.PluginRegistry. - #965 - NPE when generating a link to POST method without RequestBody parameter. - #837 - Update reference docs to reflect new APIs, SPIs, and package structures. Changes in version 1.0.0.RC2 (2019-09-05) ----------------------------------------- - #1072 - Expose null handling configuration of HalFormsTemplate.title. - #1070 - Release 1.0.0.RC2. - #1069 - Upgrade to Reactor Dyprosium-RC1. - #1067 - Remove @EnableEntityLinks. - #1066 - Upgrade to Spring Framework 5.2.0.RC2. - #1064 - #1061 - Reenable default codecs for WebFlux configuration. - #1063 - Documentation describes using @EnableEntityLinks but it is deprecated and no longer necessary. - #1062 - @EnableHypermediaSupport does not provide a ContollerEntityLinks bean when using WebFlux. - #1061 - Enabling hypermedia disables all of WebFlux's default codecs. - #1059 - Code cleanup. - #1058 - Migrate off deprecated Spring APIs. - #1054 - Fix unresolved directive for Traverson section of ref docs. - #1047 - WebFlux configuration must properly handle application/json. - #1044 - Properly deprecate UriTemplate's constructors. Changes in version 1.0.0.RC1 (2019-08-05) ----------------------------------------- - #1042 - Upgrade to AssertJ 3.13.2. - #1041 - Upgrade to JUnit 5.5.1. - #1039 - ALPS documents should not render null attributes. - #1035 - Upgrade to Reactor Dysprosium M3. - #1034 - Upgrade to Spring Framework 5.2.0.RC1. - #1030 - Release 1.0.0.RC1. - #1029 - Update changelog for RC1. - #1027 - #857 - Use List instead of Collection in configuration classes. - #1026 - Upgrade to Jackson 2.9.9.20190727. - #1024 - Release documentation through CI. - #1023 - Update CI pipeline based on lessons learned. - #1022 - Deprecate @EnableEntityLinks. - #1021 - Make sure that EntityLinks bean is only activated for Spring MVC. - #1020 - Migration for BasicLinkBuilder in 1.0.0.M3. - #1019 - Performance issues with i18n of HAL link titles. - #1018 - Support customizing additional HAL-FORMS properties. - #1017 - Update document publication mechanism . - #1014 - RepresentationModel should allow adding links optionally. - #1013 - Upgrade to JUnit 5.5. - #1012 - Documentation for HAL-FORMS resource bundles for _templates is wrong. - #1011 - Add timeouts to the pipeline. - #1010 - #987 - Drop UTF8 HAL media type. - #1008 - Properly configure user.name and user.home for CI jobs. - #1006 - Upgrade Asciidoctor Maven plugin dependencies. - #1005 - Document internationalization options. - #1003 - IllegalArgumentException when calling linkTo(methodOn(...)) on controller method with optional @RequestParam. - #992 - HAL-FORMS implementation prevents mediatype usage as intended by the specification. - #987 - Deprecate _UTF8 media type variants. - #986 - Switch to Spring's ServerWebExchangeContextFilter. - #981 - Provide linkRelationBasedPolicy for HAL Forms. - #979 - Allow customization of HAL Forms property prompts. - #857 - Use List not Collection when asking for beans. - #849 - Support defining HAL Forms template titles via resource bundles. - #836 - Reference documentation mentions inexistant "createResource" method in class "ResourceAssemblerSupport". - #832 - Properly integrate configuration for HAL into HAL-FORMS configuration. - #777 - Rename UnitTest classes as ...UnitTests for consistency. - #729 - Serializing ResourceSupport types into HAL-FORMS doesn't work. - #445 - RepresentationModelAssemblerSupport does not expose controllerClass/resourceType to subclasses. - #153 - Readme does not match code. Changes in version 1.0.0.M3 (2019-06-14) ---------------------------------------- - #1002 - Release 1.0 M3. - #1001 - Upgrade to Reactor Dysprosium M2. - #1000 - Upgrade to Spring Framework 5.0 M3. - #999 - Introduce Jenkins CI. - #998 - Prevent eager bean instantiation from WebMvcHateoasConfiguration. - #997 - Upgrade to Jackson 2.9.9. - #990 - Fix deployment of Javadoc and reference docs. - #989 - Update pipeline to support Concourse 5. - #888 - Upgrade to Spring Plugin 2.0 M2. Changes in version 1.0.0.M2 (2019-05-13) ---------------------------------------- - #988 - Release 1.0 M2. - #985 - Stabilize on Spring Framework 5.2.0.M1. - #983 - Switch to Spring's ServerWebExchangeContextFilter. - #980 - Migrate to JUnit 5. - #977 - Performance improvements in link generation. - #973 - Add configuration options to select the web stack to add hypermedia support for. - #971 - Traverson to templated Link fails. - #919 - Upgrade to Spring Framework 5.2 M2. - #911 - Rename pull request tasks. - #910 - URL Cleanup. - #891 - Overhaul documentation section on EntityLinks. - #886 - Add section on forward header handling to reference documents. - #885 - Re-enable default registry of WebFlux encoders and decoders. - #867 - WebClientConfigurer overrides exchange strategies. - #863 - Removal of spring-plugin library. - #860 - Switch to URI.create(). - #859 - Fix RepresentationModelProcessor to smoothly register with Spring MVC. - #856 - Improve migration script. - #855 - URL Cleanup. - #831 - Add nullability annotations to codebase. - #830 - Reorganize the labels. - #459 - Add Spring HATEOAS room to Gitter. Changes in version 1.0.0.M1 (2019-03-05) ---------------------------------------- - #854 - Migrate off Objenesis in favor of Spring's ProxyFactory. - #853 - Release 1.0 M1. - #850 - Upgrade to Spring Plugin 2.0 M1. - #847 - Make JDK 8 test step a smoke test for other test steps. - #846 - Add Spring HATEAOS Examples to pipeline. - #845 - Polish code in Link, UriTemplate and TemplateVariables. - #844 - Move TypeReferences to server.core package. - #843 - Extend EntityLinks with override that allows to use a identifier extractor function. - #842 - Remove Identifiable. - #841 - Add curie builder capabilities to HalLinkRelation. - #840 - Add methods to detect required links to LinkDiscoverer. - #838 - Make sure BeanPostProcessor creation does not prematurely trigger all other configuration. - #833 - Package refactorings to add SPI to create custom media type implementations. - #825 - Ensure LinkRelation complies with RFC8288. - #819 - Migrate off deprecated OrderAwarePluginRegistry APIs. - #818 - Remove Spring HATEOAS custom Forwarded header handling. - #815 - Add ability to do releases through Concourse. - #813 - Upgrade to Kotlin 1.3.21. - #812 - General overhaul and refactorings. - #811 - Add support for specifying array serialization for a particular link relation. - #808 - Upgrade to Spring Framework 5.1.5. - #807 - Remove log output in UberWebMvcIntegrationTest. - #806 - Remove package cycle between ….hateoas and ….hateoas.core. - #805 - Add Links.getRequiredLink(…). - #804 - Avoid log output in MultiMediaTypeWebMvcIntegrationTest. - #803 - Remove reflective invocation of JsonPath.compile(…) in JsonPathLinkDiscoverer. - #798 - Modernizing the documentation production and appearance. - #797 - Editing pass. - #793 - Switch from @Order to Ordered in RelProvider implementations. - #792 - Upgrade to Jackson 2.9.8. - #791 - Support HAL name property. - #788 - Clean up code base. - #787 - HalLinkDiscoverer doesn't extract link properties other than href. - #785 - #784 - Introduce UBER+JSON mediatype. - #784 - Add support for UBER+JSON. - #778 - Transform IANA Link Relations into a series of constants. - #772 - Fix pipeline so it tests against JDK 12 on pull requests. - #764 - Migrate build jobs to Concourse CI. - #760 - Make Spring Plugin a full dependency in 1.0. - #759 - #667 - Ignore unknown properties in LinkMixin. - #758 - Migrate all Forward header handling to Spring MVC. - #754 - Upgrade to Jackson 2.9.7. - #752 - Upgrade to latest Spring 5.0.x. - #751 - Align assertions with its Javadoc in Hop.header(). - #743 - Allow specifying a custom header value for each hop in Traverson. - #728 - Add Spring WebFlux support. - #719 - Simplify configuration setup. - #715 - Provide link builder DSL to write idiomatic Kotlin code. - #714 - Use system-dependent line separator in tests. - #711 - Upgrade to Spring Framework 5.0.6.RELEASE. - #707 - Add support for Spring Data REST. - #701 - Obvious Fix: typo. - #700 - Remove JAX-RS support. - #699 - Convert link with RFC5988 additional attributes. - #695 - Remove Jaxb annotations. - #686 - Support whitespace in Links Header. - #682 - Obvious Fix : typo :). - #678 - Add profile property. - #672 - Add Maven Wrapper. - #671 - When looking up a single link by rel, don't create intermediate list. - #669 - Remove list creation in ResourceSupport.getLink(). - #667 - Templated URIs in a HAL document cannot be deserialized. - #662 - Upgrade to Spring Framework 5.0.1. - #655 - Retire Java8Utils in 1.0. - #653 - Use Java 8 Stream API. - #652 - Move off Jackson deprecations. - #649 - Use Java 8 Map enhancements. - #648 - Add Java 9 automatic module name. - #647 - Move to AssertJ and Mockito 2.0. - #646 - Upgrade to Lombok 1.16.18. - #645 - Upgrade to Spring Plugin 2.0. - #644 - Remove OSGi metadata creation setup from build. - #643 - Upgrade to Spring Framework 5 as development baseline. - #642 - Move to Java 8 as development baseline. - #641 - Set up 1.0 development. - #627 - Upgrade Spring Framework to recent versions. - #612 - #340 - Adds new Affordances API + HAL-Forms mediatype. - #572 - Enhance ResourceAssemblerSupport to allow generics. - #483 - UriTemplate Does not handle composite values. - #482 - Add support for Collection+JSON media type. - #416 - ResourceAssemblerSupport.toResources() should return Resources instead of List. 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(Classcontroller, 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 and MultiValueMap 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