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.
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.
Significant rework of the nullability annotation introduction to not produce any warnings anymore. Added nullability annotations where still missing. Removed the ones that were added erroneously.
Tightened nullability contracts in a couple of places, most prominently LinkRelationProvider, that now uses a LookupContext as plugin delimiter so that implementations can selectively be looked up for item or collection link relation lookup.
Removed obsolete declaration of Findbugs dependency.
Removed duplicate declaration of the deploy plugin.
Switched to the prepare-package phase for the documentation generation as the declaration of the Maven Build Helper Plugin caused the unpacking of the dependencies to be delayed to after the asciidoctor execution which then renders the CSS and JavaScript files missing.
Extracted the JavaDoc generation settings into the plugin management section so that both the CI build as well as the one creating the JavaDoc for the site deployment use the same setup. Removed the JavaDoc declaration from the default build and activate it in the testing build.
Removed inclusion of Spring Data static resources as they're superseded by the docs resources.
Introduced new structure to reference docs that reflects the new library structure. Completely rewrote the Fundamentals section. Adapted to all type renames in the codebase. Fixed anchors in migration chapter.
Integrated PlantUML plugin for Asciidoctor generation to generate diagrams.
* Render hypermedia from WebFlux controllers.
* Support consuming hypermedia through WebClient.
* Support link creation reactively with a custom filter and explicitly with a user-provided ServerWebExchange.
* Add a ReactiveResourceAssembler and SimpleReactiveResourceAssembler.
* Upgrade to Spring Framework 5.2 to align with Spring Data Moore, removing specialized Forwarded header handling.
Switched to javadoc:javadoc goal as we're not an aggregator project and can prevent the lifecycle restart from being triggered which caused plugins being bound to lifecycle phases before compile to be re-triggered.
Upgraded to Asciidoctor Maven Plugin 1.5.7.1.
Cleanups in Affordance API and implementations of hypermedia type (de)serializers. Added a lot more domain methods and types to Link, ResourceSupport etc. to be able to move a lot of representation building logic into those.
AffordanceModelFactory is not a Spring Plugin anymore as that functionality is not needed currently as we statically look up all factories via the SpringFactoriesLoader mechanism.
Redesigned LinkRelation to become a first class abstraction in the codebase. IanaLinkRelations is now a collection of constants. Link now keeps a LinkRelation instance around instead of a plain String.
Tweaked LinkDiscoverer API to return Optional and Links instead of nullable Link and List<Link>.
Tweaked API of CurieProvider to make use of the newly introduced HalLinkRelation based on the general LinkRelation.
Additional fixes for the Kotlin extension functions. Make Kotlin build setup compile with JDK 8. Removed Objects helper class in favor of Spring's already existing Assert and it's usage in ResourceAssemblerSupport.
Moved AffordanceModelFactory to the library's root package. Moved Kotlin extensions to hateoas.mvc package.
Added an ArchUnit based test for package cycles.