Now that Spring HATEAOS is based on Spring Framework 5.2.0.M3, which has upgraded it's handling of charset variables in web responses, we can go back to also testing against Spring Framework 5.2.0.BUILD-SNAPSHOT.
HalFormsConfiguration now delegates to a HalConfiguration and the configuration will favor a user registered instance of the former over an instance of the latter or even fall back to default instances in case none of that is defined in the ApplicationContext.
This allows seamless pickup of HalConfiguration for HAL FORMS but also explicit opt-out if not desired.
Prior to this commit the HAL-FORMS implementation verified the URIs of the affordances to match the self link of the representation model. This prevents the implementation of the HAL-FORMS metadata lookup protocol as defined in the HAL-FORMS specification [0].
We removed the verification to allow alternate URIs to be used for the afforances.
[0] https://rwcbook.github.io/hal-forms/#_suggested_process_flow_for_hal_forms_documents
We now support _template.$affordanceName.title expressions in the rest-messages resource bundle to internationalize template titles.
Some minor cleanups in test cases and consistent naming for MessageSourceResolvable implementations.
Related tickets: #979.
We now support defining the prompts to be used for properties via the Spring HATEOAS rest-messages resource bundle. We support global definitions via $propertyName._prompt as well as qualified ones ($packageName.)$typeName.$propertyName._prompt.
We now delay the lookup of RepresentationModelProcessor instances in WebMvcHateoasConfiguration so that the BeanPostProcessor registered does now not trigger eager initialization of downstream beans.
Javadoc is now generated into target/site/api. We now don't attach the zipped resources anymore but rather use the Wagon plugin to upload the content of target/site directly as what's generated into the folder already matches the expected folder structure.
We now consistently use ${project.reporting.outputDirectory} to refer to what defaults to target/site.
Goal to deploy static resources is: mvn clean deploy -DskipTests -Pdistribute.
Introduced more caches for reusable value objects: UriTemplate, MethodParameters. Cache UriTemplate.toString() to avoid re-computation. Avoid recomputing the affordances if possible in WebHandler. Removed cache in AnnotatedParametersParameterAccessor as that one now transitively benefits from the one introduced in MethodParameters.
Related ticket: spring-projects/spring-framework#22730.