From 57f36a58db07afeb7a020c1b607e23aa2aa05008 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Tue, 26 Feb 2019 13:21:47 +0100 Subject: [PATCH] #833 - Migrate packages. Changed the package structure to better reflect the different modules of the library. All client related code now lives in the client package, server related APIs in server with their respective WebMVC and WebFlux implementations in sub-packages. Added migration script to allow users to easily migrate to the new structure and added reference documentation section on the migration. Traversons built in defaulting to HAL HttpMessageConverters and LinkDiscoverer implementation now caused a cyclic relationship between the client and mediatype.hal packages. This has be fixed by looking up the defaults via a SpringFactories interface. --- etc/migrate-to-1.0.sh | 84 +++++++++++++++ src/main/asciidoc/index.adoc | 6 +- src/main/asciidoc/migrate-to-1.0.adoc | 42 ++++++++ .../JsonPathLinkDiscoverer.java | 3 +- .../hateoas/{ => client}/LinkDiscoverer.java | 5 +- .../hateoas/{ => client}/LinkDiscoverers.java | 3 +- .../springframework/hateoas/client/Rels.java | 2 - .../hateoas/client/Traverson.java | 101 +++++------------- .../hateoas/client/TraversonDefaults.java | 47 ++++++++ .../hateoas/config/EnableEntityLinks.java | 4 +- .../config/EntityLinksConfiguration.java | 12 +-- .../hateoas/config/HateoasConfiguration.java | 16 +-- ...HypermediaConfigurationImportSelector.java | 4 + .../{reactive => }/WebClientConfigurer.java | 3 +- .../WebFluxHateoasConfiguration.java | 10 +- .../{mvc => }/WebMvcHateoasConfiguration.java | 9 +- .../config/WebStackImportSelector.java | 4 +- .../{support => mediatype}/JacksonHelper.java | 2 +- .../{support => mediatype}/PropertyUtils.java | 3 +- .../hateoas/{ => mediatype}/alps/Alps.java | 8 +- .../alps/AlpsLinkDiscoverer.java | 6 +- .../{ => mediatype}/alps/Descriptor.java | 2 +- .../hateoas/{ => mediatype}/alps/Doc.java | 2 +- .../hateoas/{ => mediatype}/alps/Ext.java | 2 +- .../hateoas/{ => mediatype}/alps/Format.java | 2 +- .../hateoas/{ => mediatype}/alps/Type.java | 2 +- .../{ => mediatype}/alps/package-info.java | 2 +- .../collectionjson/CollectionJson.java | 2 +- .../CollectionJsonAffordanceModel.java | 4 +- .../CollectionJsonAffordanceModelFactory.java | 2 +- .../collectionjson/CollectionJsonData.java | 2 +- .../CollectionJsonDocument.java | 2 +- .../collectionjson/CollectionJsonError.java | 2 +- .../collectionjson/CollectionJsonItem.java | 4 +- .../CollectionJsonLinkDiscoverer.java | 6 +- .../CollectionJsonMediaTypeConfiguration.java | 4 +- ...ionJsonMediaTypeConfigurationProvider.java | 2 +- .../collectionjson/CollectionJsonQuery.java | 2 +- .../CollectionJsonTemplate.java | 2 +- .../Jackson2CollectionJsonModule.java | 6 +- .../collectionjson/PagedResourcesMixin.java | 4 +- .../collectionjson/ResourceMixin.java | 4 +- .../collectionjson/ResourceSupportMixin.java | 8 +- .../collectionjson/ResourcesMixin.java | 4 +- .../{ => mediatype}/hal/CurieProvider.java | 2 +- .../hal/DefaultCurieProvider.java | 2 +- .../{ => mediatype}/hal/HalConfiguration.java | 2 +- .../hal/HalEmbeddedBuilder.java | 8 +- .../hal/HalLinkDiscoverer.java | 6 +- .../{ => mediatype}/hal/HalLinkRelation.java | 2 +- .../hal/HalMediaTypeConfiguration.java | 6 +- .../HalMediaTypeConfigurationProvider.java | 2 +- .../mediatype/hal/HalTraversonDefaults.java | 98 +++++++++++++++++ .../hal/Jackson2HalModule.java | 6 +- .../{ => mediatype}/hal/LinkMixin.java | 4 +- .../hal/ResourceSupportMixin.java | 2 +- .../{ => mediatype}/hal/ResourcesMixin.java | 2 +- .../hal/forms/HalFormsAffordanceModel.java | 4 +- .../forms/HalFormsAffordanceModelFactory.java | 2 +- .../hal/forms/HalFormsConfiguration.java | 4 +- .../hal/forms/HalFormsDeserializers.java | 2 +- .../hal/forms/HalFormsDocument.java | 8 +- .../hal/forms/HalFormsLinkDiscoverer.java | 6 +- .../forms/HalFormsMediaTypeConfiguration.java | 8 +- ...alFormsMediaTypeConfigurationProvider.java | 2 +- .../hal/forms/HalFormsProperty.java | 2 +- .../hal/forms/HalFormsSerializers.java | 6 +- .../hal/forms/HalFormsTemplate.java | 4 +- .../hal/forms/Jackson2HalFormsModule.java | 26 ++--- .../{ => mediatype}/hal/package-info.java | 2 +- .../uber/Jackson2UberModule.java | 10 +- .../hateoas/{ => mediatype}/uber/Uber.java | 2 +- .../{ => mediatype}/uber/UberAction.java | 4 +- .../uber/UberAffordanceModel.java | 4 +- .../uber/UberAffordanceModelFactory.java | 2 +- .../{ => mediatype}/uber/UberData.java | 4 +- .../{ => mediatype}/uber/UberDocument.java | 2 +- .../{ => mediatype}/uber/UberError.java | 2 +- .../uber/UberLinkDiscoverer.java | 4 +- .../uber/UberMediaTypeConfiguration.java | 4 +- .../UberMediaTypeConfigurationProvider.java | 2 +- .../{ => mediatype/vnderrors}/VndErrors.java | 4 +- .../hateoas/{ => server}/EntityLinks.java | 5 +- .../{ => server}/ExposesResourceFor.java | 4 +- .../hateoas/{ => server}/LinkBuilder.java | 7 +- .../{ => server}/LinkBuilderFactory.java | 2 +- .../MethodLinkBuilderFactory.java | 6 +- .../hateoas/{ => server}/RelProvider.java | 3 +- .../{ => server}/ResourceAssembler.java | 5 +- .../{ => server}/ResourceProcessor.java | 6 +- .../{ => server}/SimpleResourceAssembler.java | 4 +- .../core/AbstractEntityLinks.java | 6 +- .../core/AnnotationAttribute.java | 2 +- .../core/AnnotationMappingDiscoverer.java | 2 +- .../core/AnnotationRelProvider.java | 18 ++-- .../core/CachingMappingDiscoverer.java | 2 +- .../core/ControllerEntityLinks.java | 10 +- .../ControllerEntityLinksFactoryBean.java | 8 +- .../{ => server}/core/DefaultRelProvider.java | 4 +- .../core/DelegatingEntityLinks.java | 6 +- .../core/DelegatingRelProvider.java | 4 +- .../core/DummyInvocationUtils.java | 2 +- .../{ => server}/core/EmbeddedWrapper.java | 2 +- .../{ => server}/core/EmbeddedWrappers.java | 2 +- .../{ => server}/core/EncodingUtils.java | 12 +-- .../core/EvoInflectorRelProvider.java | 4 +- .../core}/HeaderLinksResponseEntity.java | 4 +- .../core/LastInvocationAware.java | 2 +- .../{ => server}/core/LinkBuilderSupport.java | 6 +- .../{ => server}/core/MappingDiscoverer.java | 2 +- .../{ => server}/core/MethodInvocation.java | 2 +- .../{ => server}/core/MethodParameters.java | 2 +- .../hateoas/{ => server}/core/Relation.java | 2 +- .../core/SpringAffordanceBuilder.java | 2 +- ...mplateVariableAwareLinkBuilderSupport.java | 2 +- .../{ => server}/core/UriTemplateFactory.java | 2 +- .../hateoas/{ => server}/core/WebHandler.java | 6 +- .../{ => server}/core/package-info.java | 2 +- .../mvc/ControllerLinkBuilder.java | 14 +-- .../mvc/ControllerLinkBuilderFactory.java | 10 +- .../mvc/ControllerRelProvider.java | 6 +- .../IdentifiableResourceAssemblerSupport.java | 6 +- .../{ => server}/mvc/JacksonSerializers.java | 2 +- .../mvc/ResourceAssemblerSupport.java | 6 +- ...cessorHandlerMethodReturnValueHandler.java | 5 +- .../mvc/ResourceProcessorInvoker.java | 6 +- ...sourceProcessorInvokingHandlerAdapter.java | 4 +- ...edMappingJackson2HttpMessageConverter.java | 2 +- .../{ => server}/mvc/TypeReferences.java | 2 +- .../mvc/UriComponentsBuilderFactory.java | 2 +- .../mvc/UriComponentsContributor.java | 4 +- .../{ => server}/mvc/WebMvcLinkBuilder.java | 15 ++- .../mvc/WebMvcLinkBuilderFactory.java | 10 +- .../{ => server}/mvc/package-info.java | 2 +- .../reactive/HypermediaWebFilter.java | 14 ++- .../reactive/ReactiveResourceAssembler.java | 7 +- .../SimpleReactiveResourceAssembler.java | 6 +- .../reactive/WebFluxLinkBuilder.java | 10 +- .../mvc/WebMvcAffordanceBuilderDsl.kt | 6 +- .../{ => server}/mvc/WebMvcLinkBuilderDsl.kt | 6 +- src/main/resources/META-INF/spring.factories | 17 +-- .../hateoas/LinkDiscoverersUnitTest.java | 4 +- .../hateoas/SimpleResourceAssemblerTest.java | 1 + .../hateoas/VndErrorsMarshallingTest.java | 8 +- .../hateoas/VndErrorsUnitTest.java | 3 +- .../hateoas/client/Server.java | 6 +- .../hateoas/client/TraversonTest.java | 4 +- .../CustomHypermediaWebFluxTest.java | 12 +-- .../{mvc => }/CustomHypermediaWebMvcTest.java | 7 +- .../EnableEntityLinksIntegrationTest.java | 4 +- ...nableHypermediaSupportIntegrationTest.java | 26 ++--- ...iaConfigurationImportSelectorUnitTest.java | 10 +- ...ediaRestTemplateBeanPostProcessorTest.java | 2 +- ...ermediaWebClientBeanPostProcessorTest.java | 4 +- .../HypermediaWebFluxConfigurerTest.java | 9 +- .../XmlConfigurationIntegrationTest.java | 2 +- .../alps/AlpsLinkDiscoverUnitTest.java | 7 +- .../alps/JacksonSerializationTest.java | 8 +- .../CollectionJsonLinkDiscovererUnitTest.java | 5 +- .../CollectionJsonSpecTest.java | 3 +- .../CollectionJsonWebFluxIntegrationTest.java | 4 +- .../CollectionJsonWebMvcIntegrationTest.java | 4 +- ...Jackson2CollectionJsonIntegrationTest.java | 5 +- .../JacksonSerializationTest.java | 5 +- .../hal/DefaultCurieProviderUnitTest.java | 7 +- .../hal/HalConfigurationUnitTest.java | 5 +- .../hal/HalEmbeddedBuilderUnitTest.java | 16 +-- .../hal/HalLinkDiscovererUnitTest.java | 7 +- .../hal/Jackson2HalIntegrationTest.java | 14 ++- ...HypermediaForDefaultAcceptHeadersTest.java | 4 +- .../hal/SimpleAnnotatedPojo.java | 4 +- .../{ => mediatype}/hal/SimplePojo.java | 2 +- .../forms/HalFormsLinkDiscovererUnitTest.java | 7 +- .../HalFormsMessageConverterUnitTest.java | 8 +- .../HalFormsValidationIntegrationTest.java | 4 +- .../forms/HalFormsWebFluxIntegrationTest.java | 4 +- .../forms/HalFormsWebMvcIntegrationTest.java | 2 +- .../Jackson2HalFormsIntegrationTest.java | 18 ++-- .../uber/Jackson2UberIntegrationTest.java | 3 +- .../uber/UberLinkDiscovererUnitTest.java | 9 +- .../uber/UberWebFluxIntegrationTest.java | 4 +- .../uber/UberWebMvcIntegrationTest.java | 2 +- .../core/AbstractLinkDiscovererUnitTest.java | 4 +- .../AnnotationMappingDiscovererUnitTest.java | 2 +- ...trollerEntityLinksFactoryBeanUnitTest.java | 8 +- .../core/ControllerEntityLinksUnitTest.java | 12 +-- .../core/DelegatingEntityLinksUnitTest.java | 6 +- .../core/DelegatingRelProviderUnitTest.java | 8 +- .../core/EmbeddedWrappersUnitTest.java | 4 +- .../core/EvoInflectorRelProviderUnitTest.java | 5 +- .../core/JsonPathLinkDiscovererUnitTest.java | 3 +- .../core/LinkBuilderSupportUnitTest.java | 2 +- .../core/MethodParametersUnitTest.java | 2 +- .../ControllerLinkBuilderFactoryUnitTest.java | 12 ++- ...erLinkBuilderOutsideSpringMvcUnitTest.java | 5 +- .../mvc/ControllerLinkBuilderUnitTest.java | 5 +- .../mvc/DummyInvocationUtilsUnitTest.java | 4 +- .../HeaderLinksResponseEntityUnitTest.java | 3 +- .../{ => server}/mvc/HttpEntityMatcher.java | 2 +- ...iableResourceAssemblerSupportUnitTest.java | 7 +- .../MultiMediaTypeWebMvcIntegrationTest.java | 13 ++- ...ndlerMethodReturnValueHandlerUnitTest.java | 10 +- ...gJackson2HttpMessageConverterUnitTest.java | 3 +- .../mvc/TypeReferencesIntegrationTest.java | 7 +- .../mvc/WebMvcLinkBuilderFactoryUnitTest.java | 12 ++- ...vcLinkBuilderOutsideSpringMvcUnitTest.java | 4 +- .../mvc/WebMvcLinkBuilderUnitTest.java | 4 +- .../reactive/HypermediaWebFilterTest.java | 6 +- .../ReactiveResourceAssemblerUnitTest.java | 3 +- .../SimpleReactiveResourceAssemblerTest.java | 3 +- .../reactive/WebFluxLinkBuilderTest.java | 7 +- .../hateoas/support/PropertyUtilsTest.java | 3 +- .../support/WebFluxEmployeeController.java | 4 +- .../support/WebMvcEmployeeController.java | 2 +- .../mvc/WebMvcAffordanceBuilderDslUnitTest.kt | 1 + .../mvc/WebMvcLinkBuilderDslUnitTest.kt | 1 + .../{mvc/frodo.json => webflux-frodo.json} | 0 .../frodo.json => webmvc-frodo.json} | 0 .../{ => mediatype}/alps/link-discoverer.json | 0 .../{ => mediatype}/alps/reference.json | 0 .../collectionjson/paged-resources.json | 0 .../collectionjson/reference.json | 0 .../collectionjson/resource-support-2.json | 0 .../collectionjson/resource-support-3.json | 0 .../collectionjson/resource-support.json | 0 .../collectionjson/resource.json | 0 .../resources-simple-pojos.json | 0 .../resources-with-resource-objects.json | 0 .../collectionjson/resources.json | 0 .../single-reactive-employee.json | 0 .../collectionjson/spec-part1.json | 0 .../collectionjson/spec-part2.json | 0 .../collectionjson/spec-part3.json | 0 .../collectionjson/spec-part4.json | 0 .../collectionjson/spec-part5.json | 0 .../collectionjson/spec-part6.json | 0 .../collectionjson/spec-part7-adjusted.json | 0 .../collectionjson/spec-part7.json | 0 ...nnotated-embedded-resources-reference.json | 0 .../hal/forms/annotated-paged-resources.json | 0 .../forms/annotated-resource-resources.json | 0 .../hal/forms/curied-document.json | 0 .../hal/forms/empty-document.json | 0 .../hal/forms/empty-embedded-pojos.json | 0 .../hal/forms/hal-forms-link-discoverer.json | 0 .../hal/forms/hal-forms-link.json | 0 .../hal/forms/link-template.json | 0 .../hal/forms/link-with-title.json | 0 .../hal/forms/list-link-reference.json | 0 .../hal/forms/multiple-curies-document.json | 0 .../forms/multiple-resource-resources.json | 0 .../hal/forms/new-employee.json | 0 .../{ => mediatype}/hal/forms/reference.json | 0 .../simple-embedded-resource-reference.json | 0 .../hal/forms/simple-resource-unwrapped.json | 0 .../single-embedded-resource-reference.json | 0 .../hal/forms/single-link-reference.json | 0 .../hal/forms/single-non-curie-document.json | 0 .../hal/hal-link-discoverer.json | 0 .../hateoas/{ => mediatype}/hal/hal-link.json | 0 .../{ => mediatype}/uber/create-employee.json | 0 .../{ => mediatype}/uber/link-discovery.json | 0 .../uber/paged-resources-empty-page.json | 0 .../{ => mediatype}/uber/paged-resources.json | 0 .../uber/reference-links-only.json | 0 .../uber/resource-support-2.json | 0 .../uber/resource-support-pojo-empty.json | 0 .../uber/resource-support-pojo.json | 0 .../uber/resource-support.json | 0 .../uber/resource-with-empty-pojo.json | 0 .../uber/resource-with-simple-pojo.json | 0 .../uber/resource-with-templated-link.json | 0 .../{ => mediatype}/uber/resource.json | 0 .../{ => mediatype}/uber/resource2.json | 0 .../{ => mediatype}/uber/resource3.json | 0 .../{ => mediatype}/uber/resource4.json | 0 ...resources-with-empty-resource-objects.json | 0 ...with-resource-objects-and-empty-value.json | 0 .../uber/resources-with-resource-objects.json | 0 .../{ => mediatype}/uber/resources.json | 0 280 files changed, 899 insertions(+), 571 deletions(-) create mode 100755 etc/migrate-to-1.0.sh create mode 100644 src/main/asciidoc/migrate-to-1.0.adoc rename src/main/java/org/springframework/hateoas/{core => client}/JsonPathLinkDiscoverer.java (98%) rename src/main/java/org/springframework/hateoas/{ => client}/LinkDiscoverer.java (95%) rename src/main/java/org/springframework/hateoas/{ => client}/LinkDiscoverers.java (96%) create mode 100644 src/main/java/org/springframework/hateoas/client/TraversonDefaults.java rename src/main/java/org/springframework/hateoas/config/{reactive => }/WebClientConfigurer.java (95%) rename src/main/java/org/springframework/hateoas/config/{reactive => }/WebFluxHateoasConfiguration.java (93%) rename src/main/java/org/springframework/hateoas/config/{mvc => }/WebMvcHateoasConfiguration.java (91%) rename src/main/java/org/springframework/hateoas/{support => mediatype}/JacksonHelper.java (96%) rename src/main/java/org/springframework/hateoas/{support => mediatype}/PropertyUtils.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Alps.java (85%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/AlpsLinkDiscoverer.java (84%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Descriptor.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Doc.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Ext.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Format.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/Type.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/alps/package-info.java (60%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJson.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonAffordanceModel.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonAffordanceModelFactory.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonData.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonDocument.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonError.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonItem.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonLinkDiscoverer.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonMediaTypeConfiguration.java (93%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonQuery.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonTemplate.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/Jackson2CollectionJsonModule.java (99%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/PagedResourcesMixin.java (85%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/ResourceMixin.java (85%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/ResourceSupportMixin.java (77%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/collectionjson/ResourcesMixin.java (85%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/CurieProvider.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/DefaultCurieProvider.java (99%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalConfiguration.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalEmbeddedBuilder.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalLinkDiscoverer.java (92%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalLinkRelation.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalMediaTypeConfiguration.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/HalMediaTypeConfigurationProvider.java (96%) create mode 100644 src/main/java/org/springframework/hateoas/mediatype/hal/HalTraversonDefaults.java rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/Jackson2HalModule.java (99%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/LinkMixin.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/ResourceSupportMixin.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/ResourcesMixin.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsAffordanceModel.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsAffordanceModelFactory.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsConfiguration.java (93%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsDeserializers.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsDocument.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsLinkDiscoverer.java (82%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsMediaTypeConfiguration.java (91%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsMediaTypeConfigurationProvider.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsProperty.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsSerializers.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsTemplate.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/forms/Jackson2HalFormsModule.java (89%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/hal/package-info.java (71%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/Jackson2UberModule.java (98%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/Uber.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberAction.java (94%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberAffordanceModel.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberAffordanceModelFactory.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberData.java (99%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberDocument.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberError.java (95%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberLinkDiscoverer.java (97%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberMediaTypeConfiguration.java (93%) rename src/main/java/org/springframework/hateoas/{ => mediatype}/uber/UberMediaTypeConfigurationProvider.java (96%) rename src/main/java/org/springframework/hateoas/{ => mediatype/vnderrors}/VndErrors.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/EntityLinks.java (96%) rename src/main/java/org/springframework/hateoas/{ => server}/ExposesResourceFor.java (91%) rename src/main/java/org/springframework/hateoas/{ => server}/LinkBuilder.java (89%) rename src/main/java/org/springframework/hateoas/{ => server}/LinkBuilderFactory.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/MethodLinkBuilderFactory.java (92%) rename src/main/java/org/springframework/hateoas/{ => server}/RelProvider.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/ResourceAssembler.java (91%) rename src/main/java/org/springframework/hateoas/{ => server}/ResourceProcessor.java (84%) rename src/main/java/org/springframework/hateoas/{ => server}/SimpleResourceAssembler.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/AbstractEntityLinks.java (92%) rename src/main/java/org/springframework/hateoas/{ => server}/core/AnnotationAttribute.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/core/AnnotationMappingDiscoverer.java (99%) rename src/main/java/org/springframework/hateoas/{ => server}/core/AnnotationRelProvider.java (92%) rename src/main/java/org/springframework/hateoas/{ => server}/core/CachingMappingDiscoverer.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/core/ControllerEntityLinks.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/ControllerEntityLinksFactoryBean.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/DefaultRelProvider.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/DelegatingEntityLinks.java (95%) rename src/main/java/org/springframework/hateoas/{ => server}/core/DelegatingRelProvider.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/DummyInvocationUtils.java (99%) rename src/main/java/org/springframework/hateoas/{ => server}/core/EmbeddedWrapper.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/core/EmbeddedWrappers.java (99%) rename src/main/java/org/springframework/hateoas/{ => server}/core/EncodingUtils.java (95%) rename src/main/java/org/springframework/hateoas/{ => server}/core/EvoInflectorRelProvider.java (92%) rename src/main/java/org/springframework/hateoas/{mvc => server/core}/HeaderLinksResponseEntity.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/core/LastInvocationAware.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/LinkBuilderSupport.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/core/MappingDiscoverer.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/core/MethodInvocation.java (94%) rename src/main/java/org/springframework/hateoas/{ => server}/core/MethodParameters.java (99%) rename src/main/java/org/springframework/hateoas/{ => server}/core/Relation.java (96%) rename src/main/java/org/springframework/hateoas/{ => server}/core/SpringAffordanceBuilder.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/core/TemplateVariableAwareLinkBuilderSupport.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/core/UriTemplateFactory.java (96%) rename src/main/java/org/springframework/hateoas/{ => server}/core/WebHandler.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/core/package-info.java (51%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ControllerLinkBuilder.java (95%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ControllerLinkBuilderFactory.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ControllerRelProvider.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/IdentifiableResourceAssemblerSupport.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/JacksonSerializers.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ResourceAssemblerSupport.java (95%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java (96%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ResourceProcessorInvoker.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/ResourceProcessorInvokingHandlerAdapter.java (97%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/TypeReferences.java (99%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/UriComponentsBuilderFactory.java (98%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/UriComponentsContributor.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilder.java (95%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderFactory.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/mvc/package-info.java (77%) rename src/main/java/org/springframework/hateoas/{ => server}/reactive/HypermediaWebFilter.java (78%) rename src/main/java/org/springframework/hateoas/{ => server}/reactive/ReactiveResourceAssembler.java (90%) rename src/main/java/org/springframework/hateoas/{ => server}/reactive/SimpleReactiveResourceAssembler.java (93%) rename src/main/java/org/springframework/hateoas/{ => server}/reactive/WebFluxLinkBuilder.java (95%) rename src/main/kotlin/org/springframework/hateoas/{ => server}/mvc/WebMvcAffordanceBuilderDsl.kt (89%) rename src/main/kotlin/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderDsl.kt (93%) rename src/test/java/org/springframework/hateoas/config/{reactive => }/CustomHypermediaWebFluxTest.java (90%) rename src/test/java/org/springframework/hateoas/config/{mvc => }/CustomHypermediaWebMvcTest.java (92%) rename src/test/java/org/springframework/hateoas/config/{mvc => }/HypermediaRestTemplateBeanPostProcessorTest.java (99%) rename src/test/java/org/springframework/hateoas/config/{reactive => }/HypermediaWebClientBeanPostProcessorTest.java (97%) rename src/test/java/org/springframework/hateoas/config/{reactive => }/HypermediaWebFluxConfigurerTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/alps/AlpsLinkDiscoverUnitTest.java (88%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/alps/JacksonSerializationTest.java (88%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonLinkDiscovererUnitTest.java (92%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonSpecTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonWebFluxIntegrationTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/CollectionJsonWebMvcIntegrationTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/Jackson2CollectionJsonIntegrationTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/collectionjson/JacksonSerializationTest.java (87%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/DefaultCurieProviderUnitTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/HalConfigurationUnitTest.java (92%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/HalEmbeddedBuilderUnitTest.java (89%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/HalLinkDiscovererUnitTest.java (91%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/Jackson2HalIntegrationTest.java (96%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/RenderHypermediaForDefaultAcceptHeadersTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/SimpleAnnotatedPojo.java (69%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/SimplePojo.java (80%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsLinkDiscovererUnitTest.java (89%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsMessageConverterUnitTest.java (90%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsValidationIntegrationTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsWebFluxIntegrationTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/HalFormsWebMvcIntegrationTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/hal/forms/Jackson2HalFormsIntegrationTest.java (95%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/uber/Jackson2UberIntegrationTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/uber/UberLinkDiscovererUnitTest.java (84%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/uber/UberWebFluxIntegrationTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => mediatype}/uber/UberWebMvcIntegrationTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => server}/core/AbstractLinkDiscovererUnitTest.java (96%) rename src/test/java/org/springframework/hateoas/{ => server}/core/AnnotationMappingDiscovererUnitTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => server}/core/ControllerEntityLinksFactoryBeanUnitTest.java (88%) rename src/test/java/org/springframework/hateoas/{ => server}/core/ControllerEntityLinksUnitTest.java (91%) rename src/test/java/org/springframework/hateoas/{ => server}/core/DelegatingEntityLinksUnitTest.java (93%) rename src/test/java/org/springframework/hateoas/{ => server}/core/DelegatingRelProviderUnitTest.java (83%) rename src/test/java/org/springframework/hateoas/{ => server}/core/EmbeddedWrappersUnitTest.java (91%) rename src/test/java/org/springframework/hateoas/{ => server}/core/EvoInflectorRelProviderUnitTest.java (88%) rename src/test/java/org/springframework/hateoas/{ => server}/core/JsonPathLinkDiscovererUnitTest.java (89%) rename src/test/java/org/springframework/hateoas/{ => server}/core/LinkBuilderSupportUnitTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => server}/core/MethodParametersUnitTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/ControllerLinkBuilderFactoryUnitTest.java (92%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java (88%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/ControllerLinkBuilderUnitTest.java (98%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/DummyInvocationUtilsUnitTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/HeaderLinksResponseEntityUnitTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/HttpEntityMatcher.java (97%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/IdentifiableResourceAssemblerSupportUnitTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/MultiMediaTypeWebMvcIntegrationTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/TypeReferencesIntegrationTest.java (96%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderFactoryUnitTest.java (92%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java (92%) rename src/test/java/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderUnitTest.java (99%) rename src/test/java/org/springframework/hateoas/{ => server}/reactive/HypermediaWebFilterTest.java (94%) rename src/test/java/org/springframework/hateoas/{ => server}/reactive/ReactiveResourceAssemblerUnitTest.java (97%) rename src/test/java/org/springframework/hateoas/{ => server}/reactive/SimpleReactiveResourceAssemblerTest.java (96%) rename src/test/java/org/springframework/hateoas/{ => server}/reactive/WebFluxLinkBuilderTest.java (96%) rename src/test/kotlin/org/springframework/hateoas/{ => server}/mvc/WebMvcAffordanceBuilderDslUnitTest.kt (98%) rename src/test/kotlin/org/springframework/hateoas/{ => server}/mvc/WebMvcLinkBuilderDslUnitTest.kt (98%) rename src/test/resources/org/springframework/hateoas/config/{mvc/frodo.json => webflux-frodo.json} (100%) rename src/test/resources/org/springframework/hateoas/config/{reactive/frodo.json => webmvc-frodo.json} (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/alps/link-discoverer.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/alps/reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/paged-resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resource-support-2.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resource-support-3.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resource-support.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resource.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resources-simple-pojos.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resources-with-resource-objects.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/single-reactive-employee.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part1.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part2.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part3.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part4.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part5.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part6.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part7-adjusted.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/collectionjson/spec-part7.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/annotated-embedded-resources-reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/annotated-paged-resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/annotated-resource-resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/curied-document.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/empty-document.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/empty-embedded-pojos.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/hal-forms-link-discoverer.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/hal-forms-link.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/link-template.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/link-with-title.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/list-link-reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/multiple-curies-document.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/multiple-resource-resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/new-employee.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/simple-embedded-resource-reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/simple-resource-unwrapped.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/single-embedded-resource-reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/single-link-reference.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/forms/single-non-curie-document.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/hal-link-discoverer.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/hal/hal-link.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/create-employee.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/link-discovery.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/paged-resources-empty-page.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/paged-resources.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/reference-links-only.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-support-2.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-support-pojo-empty.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-support-pojo.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-support.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-with-empty-pojo.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-with-simple-pojo.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource-with-templated-link.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource2.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource3.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resource4.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resources-with-empty-resource-objects.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resources-with-resource-objects-and-empty-value.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resources-with-resource-objects.json (100%) rename src/test/resources/org/springframework/hateoas/{ => mediatype}/uber/resources.json (100%) diff --git a/etc/migrate-to-1.0.sh b/etc/migrate-to-1.0.sh new file mode 100755 index 00000000..5b71b5ca --- /dev/null +++ b/etc/migrate-to-1.0.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +function usage() { + echo + echo "NAME" + echo "migrate-to-1.0.sh - Migrate a codebase from Spring HATEOAS 0.x to 1.0." + echo + echo "This script attempts to adjust a codebase for the package and type refactorings" + echo "made for Spring HATEOAS 1.0." + echo + echo "SYNOPSIS" + echo "migrate-to-1.0.sh [Pattern]" + echo + echo "OPTIONS" + echo " -h --help this help" + echo " [Pattern] a find pattern, default to *.java if you don't provide a pattern" + echo " don't forget to enclose your pattern with double quotes \"\" to " + echo " avoid pattern to be expanded by your shell prematurely." + echo + echo "EXAMPLE" + echo " migrate-to-1.0.sh \"*IT.java\"" + exit 0 +} + +if [ "$1" == "-h" -o "$1" == "--help" ] ; +then + usage +fi + +FILES_PATTERN=${1:-*.java} + +echo '' +echo "Migrating Spring HATEOAS references to 1.0 for files : $FILES_PATTERN" +echo '' + +FILES=`find . -name "$FILES_PATTERN"` + +EXPRESSION="s/Link\.REL_SELF/IanaLinkRelations.SELF/g;\ +s/Link\.REL_PREV/IanaLinkRelations.PREV/g;\ +s/Link\.REL_NEXT/IanaLinkRelations.NEXT/g;\ +s/hateoas\.EntityLinks/hateoas.server.EntityLinks/g;\ +s/hateoas\.JsonPathLinkDiscoverer/hateoas.client.JsonPathLinkDiscoverer/g;\ +s/hateoas\.LinkBuilder/hateoas.server.LinkBuilder/g;\ +s/hateoas\.LinkDiscoverer/hateoas.client.LinkDiscoverer/g;\ +s/hateoas\.LinkDiscoverers/hateoas.client.LinkDiscoverers/g;\ +s/hateoas\.MethodLinkBuilderFactory/hateoas.server.MethodLinkBuilderFactory/g;\ +s/hateoas\.RelProvider/hateoas.server.RelProvider/g;\ +s/hateoas\.ResourceAssembler/hateoas.server.ResourceAssembler/g;\ +s/hateoas\.ResourceProcessor/hateoas.server.ResourceProcessor/g;\ +s/hateoas\.alps/hateoas.mediatype.alps/g;\ +s/hateoas\.core\.AbstractEntityLinks/hateoas.server.core.AbstractEntityLinks/g;\ +s/hateoas\.core\.AnnotationAttribute/hateoas.server.core.AnnotationAttribute/g;\ +s/hateoas\.core\.AnnotationMappingDiscoverer/hateoas.server.core.AnnotationMappingDiscoverer/g;\ +s/hateoas\.core\.DefaultRelProvider/hateoas.server.core.DefaultRelProvider/g;\ +s/hateoas\.core\.EmbeddedWrapper/hateoas.server.core.EmbeddedWrapper/g;\ +s/hateoas\.core\.EvoInflectorRelProvider/hateoas.server.core.EvoInflectorRelProvider/g;\ +s/hateoas\.core\.JsonPathLinkDiscoverer/hateoas.client.JsonPathLinkDiscoverer/g;\ +s/hateoas\.core\.LinkBuilderSupport/hateoas.server.core.LinkBuilderSupport/g;\ +s/hateoas\.core\.MethodParameters/hateoas.server.core.MethodParameters/g;\ +s/hateoas\.hal/hateoas.mediatype.hal/g;\ +s/hateoas\.mvc\.ControllerLinkBuilder/hateoas.server.mvc.WebMvcLinkBuilder/g;\ +s/hateoas\.mvc\.ControllerLinkBuilderFactory/hateoas.server.mvc.WebMvcLinkBuilderFactory/g;\ +s/hateoas\.mvc\.HeaderLinksResponseEntity/hateoas.server.core.HeaderLinksResponseEntity/g;\ +s/hateoas\.mvc\.ResourceProcessorInvoker/hateoas.server.mvc.ResourceProcessorInvoker/g;\ +s/hateoas\.mvc\.ResourceProcessorInvokingHandlerAdapter/hateoas.server.mvc.ResourceProcessorInvokingHandlerAdapter/g;\ +s/hateoas\.mvc\.TypeConstrainedMappingJackson2HttpMessageConverter/hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter/g;\ +s/hateoas\.mvc\.UriComponentsContributor/hateoas.server.mvc.UriComponentsContributor/g;\ +s/ControllerLinkBuilderFactory/WebMvcLinkBuilderFactory/g;\ +s/ControllerLinkBuilder/WebMvcLinkBuilder/g;" + +for FILE in $FILES +do + echo "Adapting $FILE" + sed -i "" $EXPRESSION $FILE +done + +echo +echo 'Done!' +echo +echo 'If you have used link relation constants defined in Link (like Link.REL_SELF) in your ' +echo 'codebase, you will have to trigger an organize imports in your IDE to make sure the' +echo 'now referenced IanaLinkRelations gets imported.' +echo +echo 'After that, review your changes, commit and code on! \ö/' diff --git a/src/main/asciidoc/index.adoc b/src/main/asciidoc/index.adoc index f5b5fe94..77c0e90f 100644 --- a/src/main/asciidoc/index.adoc +++ b/src/main/asciidoc/index.adoc @@ -11,6 +11,10 @@ This project provides some APIs to ease creating REST representations that follo NOTE: Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. +[[preface]] +== Preface +include::migrate-to-1.0.adoc[leveloffset=+2] + [[fundamentals]] == Fundamentals @@ -31,7 +35,7 @@ The following example shows some typical links and how you might test them: ---- Link link = new Link("http://localhost:8080/something"); assertThat(link.getHref(), is("http://localhost:8080/something")); -assertThat(link.getRel(), is(IanaLinkRelation.SELF.value())); +assertThat(link.getRel(), is(IanaLinkRelation.SELF)); Link link = new Link("http://localhost:8080/something", "my-rel"); assertThat(link.getHref(), is("http://localhost:8080/something")); diff --git a/src/main/asciidoc/migrate-to-1.0.adoc b/src/main/asciidoc/migrate-to-1.0.adoc new file mode 100644 index 00000000..cbc16a79 --- /dev/null +++ b/src/main/asciidoc/migrate-to-1.0.adoc @@ -0,0 +1,42 @@ +[migrate-to-1.0] += Migrating to Spring HATEOAS 1.0 + +For 1.0 we took the chance to re-evaluate some of the design and package structure choices we had made for the 0.x branch. +There had been an incredible amount of feedback on it and the major version bump seemed to be the most natural place to refactor those. + +[migrate-to-1.0.changes] +== The changes + +The biggest changes in package structure were driven by the introduction of a hypermedia type registration API to support additional media types in Spring HATEOAS. +This lead to the clear separation of client and server APIs (packages named respectively) as well as media type implementations in the package `mediatype`. + +The easiest way to get your codebase upgraded to the new API is by using the <>. +Before we jump to that, here are the changes at a quick glance: + +* `ResourceSupport` now exposes a `Links` instance (over a `List`) as that exposes additional API to concatenate and merge different `Links` instances using various strategies. +* The `LinkDiscoverer` API has been moved to the `client` package. +* The `LinkBuilder` API has been moved to the `server` package. +* `ControllerLinkBuilder` has been moved into `server.mvc` and deprecated to be replaced by `WebMvcLinkBuilder`. + +[migrate-to-1.0.script] +== The migration script + +You can find https://github.com/spring-projects/spring-hateoas/tree/master/etc[a script] to run from your application root that will update all import statements and static method references to Spring HATEOAS types that moved in our source code repository. +Simply download that, run it from your project root. +By default it will inspect all Java source files and replace the legacy Spring HATEOAS type references with the new ones. + +.Sample application of the migration script +==== +---- +$ ./migrate-to-1.0.sh + +Migrating Spring HATEOAS references to 1.0 for files : *.java + +Adapting ./src/main/java/… +… + +Done! +---- +==== + +Now verify the changes made to the files in your favorite Git client and commit as appropriate. diff --git a/src/main/java/org/springframework/hateoas/core/JsonPathLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/JsonPathLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java index 03910b5b..7bead059 100644 --- a/src/main/java/org/springframework/hateoas/core/JsonPathLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/client/JsonPathLinkDiscoverer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.client; import net.minidev.json.JSONArray; @@ -28,7 +28,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/LinkDiscoverer.java b/src/main/java/org/springframework/hateoas/client/LinkDiscoverer.java similarity index 95% rename from src/main/java/org/springframework/hateoas/LinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/client/LinkDiscoverer.java index d552cd52..0e215e30 100644 --- a/src/main/java/org/springframework/hateoas/LinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/client/LinkDiscoverer.java @@ -13,11 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.client; import java.io.InputStream; import java.util.Optional; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.LinkRelation; +import org.springframework.hateoas.Links; import org.springframework.http.MediaType; import org.springframework.plugin.core.Plugin; diff --git a/src/main/java/org/springframework/hateoas/LinkDiscoverers.java b/src/main/java/org/springframework/hateoas/client/LinkDiscoverers.java similarity index 96% rename from src/main/java/org/springframework/hateoas/LinkDiscoverers.java rename to src/main/java/org/springframework/hateoas/client/LinkDiscoverers.java index 548fd040..b83f561f 100644 --- a/src/main/java/org/springframework/hateoas/LinkDiscoverers.java +++ b/src/main/java/org/springframework/hateoas/client/LinkDiscoverers.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.client; import java.util.Optional; +import org.springframework.hateoas.MediaTypes; import org.springframework.http.MediaType; import org.springframework.plugin.core.PluginRegistry; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/client/Rels.java b/src/main/java/org/springframework/hateoas/client/Rels.java index d3d3b3f0..f1794e7a 100644 --- a/src/main/java/org/springframework/hateoas/client/Rels.java +++ b/src/main/java/org/springframework/hateoas/client/Rels.java @@ -18,8 +18,6 @@ package org.springframework.hateoas.client; import java.util.Optional; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.LinkDiscoverers; import org.springframework.http.MediaType; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/client/Traverson.java b/src/main/java/org/springframework/hateoas/client/Traverson.java index c24c81ad..d8f0ea00 100644 --- a/src/main/java/org/springframework/hateoas/client/Traverson.java +++ b/src/main/java/org/springframework/hateoas/client/Traverson.java @@ -21,10 +21,8 @@ import lombok.RequiredArgsConstructor; import lombok.Value; import java.net.URI; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -32,28 +30,21 @@ import java.util.Map; import java.util.stream.Collectors; import org.springframework.core.ParameterizedTypeReference; +import org.springframework.core.io.support.SpringFactoriesLoader; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.LinkDiscoverers; -import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.UriTemplate; import org.springframework.hateoas.client.Rels.Rel; -import org.springframework.hateoas.hal.HalLinkDiscoverer; -import org.springframework.hateoas.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.StringHttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.plugin.core.OrderAwarePluginRegistry; import org.springframework.util.Assert; import org.springframework.web.client.RestOperations; import org.springframework.web.client.RestTemplate; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; import com.jayway.jsonpath.JsonPath; /** @@ -70,11 +61,21 @@ import com.jayway.jsonpath.JsonPath; */ public class Traverson { - private static final LinkDiscoverers DEFAULT_LINK_DISCOVERERS; + private static final TraversonDefaults DEFAULTS; static { - LinkDiscoverer discoverer = new HalLinkDiscoverer(); - DEFAULT_LINK_DISCOVERERS = new LinkDiscoverers(OrderAwarePluginRegistry.of(discoverer)); + + List ALL_DEFAULTS = SpringFactoriesLoader.loadFactories(TraversonDefaults.class, + Traverson.class.getClassLoader()); + + Assert.isTrue(ALL_DEFAULTS.size() == 1, + () -> String.format("Expected to find only one TraversonDefaults instance, but found: ", // + ALL_DEFAULTS.stream() // + .map(Object::getClass) // + .map(Class::getName) // + .collect(Collectors.joining(", ")))); + + DEFAULTS = ALL_DEFAULTS.get(0); } private final URI baseUri; @@ -108,8 +109,8 @@ public class Traverson { this.mediaTypes = mediaTypes; this.baseUri = baseUri; - this.discoverers = DEFAULT_LINK_DISCOVERERS; + setLinkDiscoverers(DEFAULTS.getLinkDiscoverers(mediaTypes)); setRestOperations(createDefaultTemplate(this.mediaTypes)); } @@ -120,71 +121,17 @@ public class Traverson { * @return */ public static List> getDefaultMessageConverters(MediaType... mediaTypes) { - return getDefaultMessageConverters(Arrays.asList(mediaTypes)); - } - - /** - * Returns all {@link HttpMessageConverter}s that will be registered for the given {@link MediaType}s by default. - * - * @param mediaTypes must not be {@literal null}. - * @return - */ - public static List> getDefaultMessageConverters(List mediaTypes) { - - Assert.notNull(mediaTypes, "Media types must not be null!"); - - List> converters = new ArrayList<>(); - converters.add(new StringHttpMessageConverter(Charset.forName("UTF-8"))); - - List halFlavors = getHalJsonFlavors(mediaTypes); - - if (!halFlavors.isEmpty()) { - converters.add(getHalConverter(halFlavors)); - } - - return converters; - } - - /** - * Returns all HAL JSON compatible media types from the given list. - * - * @param mediaTypes must not be {@literal null}. - * @return - */ - private static List getHalJsonFlavors(Collection mediaTypes) { - - return mediaTypes.stream() // - .filter(MediaTypes.HAL_JSON::isCompatibleWith) // - .collect(Collectors.toList()); + return DEFAULTS.getHttpMessageConverters(Arrays.asList(mediaTypes)); } private static final RestOperations createDefaultTemplate(List mediaTypes) { RestTemplate template = new RestTemplate(); - template.setMessageConverters(getDefaultMessageConverters(mediaTypes)); + template.setMessageConverters(DEFAULTS.getHttpMessageConverters(mediaTypes)); return template; } - /** - * Creates a new {@link HttpMessageConverter} to support HAL. - * - * @return - */ - private static final HttpMessageConverter getHalConverter(List halFlavours) { - - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new Jackson2HalModule()); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); - - converter.setObjectMapper(mapper); - converter.setSupportedMediaTypes(halFlavours); - - return converter; - } - /** * Configures the {@link RestOperations} to use. If {@literal null} is provided a default {@link RestTemplate} will be * used. @@ -194,7 +141,10 @@ public class Traverson { */ public Traverson setRestOperations(RestOperations operations) { - this.operations = operations == null ? createDefaultTemplate(this.mediaTypes) : operations; + this.operations = operations == null // + ? createDefaultTemplate(this.mediaTypes) // + : operations; + return this; } @@ -207,8 +157,11 @@ public class Traverson { */ public Traverson setLinkDiscoverers(List discoverer) { - this.discoverers = this.discoverers == null ? DEFAULT_LINK_DISCOVERERS - : new LinkDiscoverers(OrderAwarePluginRegistry.of(discoverer)); + List defaultedDiscoverers = discoverer == null // + ? DEFAULTS.getLinkDiscoverers(mediaTypes) // + : discoverer; + + this.discoverers = new LinkDiscoverers(OrderAwarePluginRegistry.of(defaultedDiscoverers)); return this; } diff --git a/src/main/java/org/springframework/hateoas/client/TraversonDefaults.java b/src/main/java/org/springframework/hateoas/client/TraversonDefaults.java new file mode 100644 index 00000000..e5adb736 --- /dev/null +++ b/src/main/java/org/springframework/hateoas/client/TraversonDefaults.java @@ -0,0 +1,47 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.hateoas.client; + +import java.util.Collection; +import java.util.List; + +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; + +/** + * SPI that exposes {@link HttpMessageConverter}s and {@link LinkDiscoverer}s to be used by default by + * {@link Traverson}. Not intended for public implementation. + * + * @author Oliver Drotbohm + */ +public interface TraversonDefaults { + + /** + * Returns the {@link HttpMessageConverter} instances to be registered for the given {@link MediaType}s. + * + * @param mediaTypes will never be {@literal null}. + * @return + */ + List> getHttpMessageConverters(Collection mediaTypes); + + /** + * Returns the {@link LinkDiscoverer}s to be registered by default for the given {@link MediaType}s. + * + * @param mediaTypes will never be {@literal null}. + * @return + */ + List getLinkDiscoverers(Collection mediaTypes); +} diff --git a/src/main/java/org/springframework/hateoas/config/EnableEntityLinks.java b/src/main/java/org/springframework/hateoas/config/EnableEntityLinks.java index 2f8ee029..2075fbc9 100644 --- a/src/main/java/org/springframework/hateoas/config/EnableEntityLinks.java +++ b/src/main/java/org/springframework/hateoas/config/EnableEntityLinks.java @@ -23,8 +23,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.context.annotation.Import; -import org.springframework.hateoas.LinkBuilder; -import org.springframework.hateoas.core.DelegatingEntityLinks; +import org.springframework.hateoas.server.LinkBuilder; +import org.springframework.hateoas.server.core.DelegatingEntityLinks; /** * Enables the collection of {@link LinkBuilder} instances from the application context. All found ones will be exposed diff --git a/src/main/java/org/springframework/hateoas/config/EntityLinksConfiguration.java b/src/main/java/org/springframework/hateoas/config/EntityLinksConfiguration.java index 3292fad4..bd9e6121 100644 --- a/src/main/java/org/springframework/hateoas/config/EntityLinksConfiguration.java +++ b/src/main/java/org/springframework/hateoas/config/EntityLinksConfiguration.java @@ -20,10 +20,10 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.Primary; -import org.springframework.hateoas.EntityLinks; -import org.springframework.hateoas.core.ControllerEntityLinksFactoryBean; -import org.springframework.hateoas.core.DelegatingEntityLinks; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderFactory; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.core.ControllerEntityLinksFactoryBean; +import org.springframework.hateoas.server.core.DelegatingEntityLinks; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderFactory; import org.springframework.plugin.core.PluginRegistry; import org.springframework.plugin.core.support.PluginRegistryFactoryBean; import org.springframework.stereotype.Controller; @@ -49,13 +49,13 @@ class EntityLinksConfiguration { @Primary @Bean - @DependsOn("controllerEntityLinks") + @DependsOn("webMvcEntityLinks") DelegatingEntityLinks delegatingEntityLinks(PluginRegistry> entityLinksPluginRegistry) { return new DelegatingEntityLinks(entityLinksPluginRegistry); } @Bean - ControllerEntityLinksFactoryBean controllerEntityLinks(ObjectProvider linkBuilderFactory) { + ControllerEntityLinksFactoryBean webMvcEntityLinks(ObjectProvider linkBuilderFactory) { ControllerEntityLinksFactoryBean factory = new ControllerEntityLinksFactoryBean(); factory.setAnnotation(Controller.class); diff --git a/src/main/java/org/springframework/hateoas/config/HateoasConfiguration.java b/src/main/java/org/springframework/hateoas/config/HateoasConfiguration.java index 080195e6..972edf5a 100644 --- a/src/main/java/org/springframework/hateoas/config/HateoasConfiguration.java +++ b/src/main/java/org/springframework/hateoas/config/HateoasConfiguration.java @@ -21,13 +21,13 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.context.support.MessageSourceAccessor; import org.springframework.context.support.ReloadableResourceBundleMessageSource; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.LinkDiscoverers; -import org.springframework.hateoas.RelProvider; -import org.springframework.hateoas.core.AnnotationRelProvider; -import org.springframework.hateoas.core.DefaultRelProvider; -import org.springframework.hateoas.core.DelegatingRelProvider; -import org.springframework.hateoas.core.EvoInflectorRelProvider; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverers; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.AnnotationRelProvider; +import org.springframework.hateoas.server.core.DefaultRelProvider; +import org.springframework.hateoas.server.core.DelegatingRelProvider; +import org.springframework.hateoas.server.core.EvoInflectorRelProvider; import org.springframework.http.MediaType; import org.springframework.plugin.core.PluginRegistry; import org.springframework.plugin.core.config.EnablePluginRegistries; @@ -48,7 +48,7 @@ class HateoasConfiguration { /** * The {@link MessageSourceAccessor} to provide messages for {@link ResourceDescription}s being rendered. - * + * * @return */ @Bean diff --git a/src/main/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelector.java b/src/main/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelector.java index 81b32cb6..a19c1852 100644 --- a/src/main/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelector.java +++ b/src/main/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelector.java @@ -62,4 +62,8 @@ class HypermediaConfigurationImportSelector implements ImportSelector { .map(Class::getName) // .toArray(String[]::new); } + + public String[] selectImports(Collection mediaType) { + return new String[] {}; + } } diff --git a/src/main/java/org/springframework/hateoas/config/reactive/WebClientConfigurer.java b/src/main/java/org/springframework/hateoas/config/WebClientConfigurer.java similarity index 95% rename from src/main/java/org/springframework/hateoas/config/reactive/WebClientConfigurer.java rename to src/main/java/org/springframework/hateoas/config/WebClientConfigurer.java index e30818c6..e47dba2c 100644 --- a/src/main/java/org/springframework/hateoas/config/reactive/WebClientConfigurer.java +++ b/src/main/java/org/springframework/hateoas/config/WebClientConfigurer.java @@ -1,4 +1,4 @@ -package org.springframework.hateoas.config.reactive; +package org.springframework.hateoas.config; import lombok.RequiredArgsConstructor; @@ -12,7 +12,6 @@ import org.springframework.core.codec.Decoder; import org.springframework.core.codec.Encoder; import org.springframework.core.codec.StringDecoder; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.config.HypermediaMappingInformation; import org.springframework.http.codec.json.Jackson2JsonDecoder; import org.springframework.http.codec.json.Jackson2JsonEncoder; import org.springframework.util.MimeType; diff --git a/src/main/java/org/springframework/hateoas/config/reactive/WebFluxHateoasConfiguration.java b/src/main/java/org/springframework/hateoas/config/WebFluxHateoasConfiguration.java similarity index 93% rename from src/main/java/org/springframework/hateoas/config/reactive/WebFluxHateoasConfiguration.java rename to src/main/java/org/springframework/hateoas/config/WebFluxHateoasConfiguration.java index 54929a02..29638b40 100644 --- a/src/main/java/org/springframework/hateoas/config/reactive/WebFluxHateoasConfiguration.java +++ b/src/main/java/org/springframework/hateoas/config/WebFluxHateoasConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.reactive; +package org.springframework.hateoas.config; import lombok.RequiredArgsConstructor; @@ -24,10 +24,10 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import org.springframework.core.codec.CharSequenceEncoder; import org.springframework.core.codec.StringDecoder; -import org.springframework.hateoas.config.HypermediaMappingInformation; -import org.springframework.hateoas.reactive.HypermediaWebFilter; +import org.springframework.hateoas.server.reactive.HypermediaWebFilter; import org.springframework.http.codec.CodecConfigurer; import org.springframework.http.codec.ServerCodecConfigurer; import org.springframework.http.codec.json.Jackson2JsonDecoder; @@ -42,7 +42,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; * Spring WebFlux HATEOAS configuration. * * @author Greg Turnquist - * @since 1.0 + * @since 1.0 TODO: Inspect ApplicationContext -> WebApplicationContext -> WebMVC */ @Configuration class WebFluxHateoasConfiguration { @@ -70,6 +70,7 @@ class WebFluxHateoasConfiguration { * completed. */ @Bean + @Lazy // To avoid creation on a WebMVC app using WebClient only HypermediaWebFilter hypermediaWebFilter() { return new HypermediaWebFilter(); } @@ -131,7 +132,6 @@ class WebFluxHateoasConfiguration { MimeType[] mimeTypes = hypermedia.getMediaTypes().toArray(new MimeType[0]); ObjectMapper objectMapper = hypermedia.configureObjectMapper(this.mapper.copy()); - customCodecs.encoder(new Jackson2JsonEncoder(objectMapper, mimeTypes)); customCodecs.decoder(new Jackson2JsonDecoder(objectMapper, mimeTypes)); }); diff --git a/src/main/java/org/springframework/hateoas/config/mvc/WebMvcHateoasConfiguration.java b/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java similarity index 91% rename from src/main/java/org/springframework/hateoas/config/mvc/WebMvcHateoasConfiguration.java rename to src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java index cbd601a3..d932f9cf 100644 --- a/src/main/java/org/springframework/hateoas/config/mvc/WebMvcHateoasConfiguration.java +++ b/src/main/java/org/springframework/hateoas/config/WebMvcHateoasConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.mvc; +package org.springframework.hateoas.config; import lombok.RequiredArgsConstructor; @@ -27,10 +27,9 @@ import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.hateoas.ResourceSupport; -import org.springframework.hateoas.config.HypermediaMappingInformation; -import org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; -import org.springframework.hateoas.mvc.UriComponentsContributor; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderFactory; +import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderFactory; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.client.RestTemplate; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; diff --git a/src/main/java/org/springframework/hateoas/config/WebStackImportSelector.java b/src/main/java/org/springframework/hateoas/config/WebStackImportSelector.java index 93c05e82..37b0b3a2 100644 --- a/src/main/java/org/springframework/hateoas/config/WebStackImportSelector.java +++ b/src/main/java/org/springframework/hateoas/config/WebStackImportSelector.java @@ -39,11 +39,11 @@ class WebStackImportSelector implements ImportSelector { List imports = new ArrayList<>(); if (WebStack.WEBMVC.isAvailable()) { - imports.add("org.springframework.hateoas.config.mvc.WebMvcHateoasConfiguration"); + imports.add("org.springframework.hateoas.config.WebMvcHateoasConfiguration"); } if (WebStack.WEBFLUX.isAvailable()) { - imports.add("org.springframework.hateoas.config.reactive.WebFluxHateoasConfiguration"); + imports.add("org.springframework.hateoas.config.WebFluxHateoasConfiguration"); } return imports.toArray(new String[imports.size()]); diff --git a/src/main/java/org/springframework/hateoas/support/JacksonHelper.java b/src/main/java/org/springframework/hateoas/mediatype/JacksonHelper.java similarity index 96% rename from src/main/java/org/springframework/hateoas/support/JacksonHelper.java rename to src/main/java/org/springframework/hateoas/mediatype/JacksonHelper.java index fddb9706..0f5ab512 100644 --- a/src/main/java/org/springframework/hateoas/support/JacksonHelper.java +++ b/src/main/java/org/springframework/hateoas/mediatype/JacksonHelper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.support; +package org.springframework.hateoas.mediatype; import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; diff --git a/src/main/java/org/springframework/hateoas/support/PropertyUtils.java b/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java similarity index 98% rename from src/main/java/org/springframework/hateoas/support/PropertyUtils.java rename to src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java index a00074a5..ba248a8f 100644 --- a/src/main/java/org/springframework/hateoas/support/PropertyUtils.java +++ b/src/main/java/org/springframework/hateoas/mediatype/PropertyUtils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.support; +package org.springframework.hateoas.mediatype; import java.beans.FeatureDescriptor; import java.beans.PropertyDescriptor; @@ -36,6 +36,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.core.ResolvableType; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.hateoas.Resource; +import org.springframework.hateoas.support.WebStack; import org.springframework.util.ReflectionUtils; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/org/springframework/hateoas/alps/Alps.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Alps.java similarity index 85% rename from src/main/java/org/springframework/hateoas/alps/Alps.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Alps.java index 4ec098b2..132c4886 100644 --- a/src/main/java/org/springframework/hateoas/alps/Alps.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Alps.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import lombok.Builder; import lombok.Value; import java.util.List; -import org.springframework.hateoas.alps.Descriptor.DescriptorBuilder; -import org.springframework.hateoas.alps.Doc.DocBuilder; -import org.springframework.hateoas.alps.Ext.ExtBuilder; +import org.springframework.hateoas.mediatype.alps.Descriptor.DescriptorBuilder; +import org.springframework.hateoas.mediatype.alps.Doc.DocBuilder; +import org.springframework.hateoas.mediatype.alps.Ext.ExtBuilder; import com.fasterxml.jackson.annotation.JsonPropertyOrder; diff --git a/src/main/java/org/springframework/hateoas/alps/AlpsLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverer.java similarity index 84% rename from src/main/java/org/springframework/hateoas/alps/AlpsLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverer.java index 69362700..71b2bfd8 100644 --- a/src/main/java/org/springframework/hateoas/alps/AlpsLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverer.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; /** * {@link LinkDiscoverer} implementation to find ALPS-based links. diff --git a/src/main/java/org/springframework/hateoas/alps/Descriptor.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Descriptor.java similarity index 95% rename from src/main/java/org/springframework/hateoas/alps/Descriptor.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Descriptor.java index 13a9883e..fb5874d1 100644 --- a/src/main/java/org/springframework/hateoas/alps/Descriptor.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Descriptor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/alps/Doc.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Doc.java similarity index 96% rename from src/main/java/org/springframework/hateoas/alps/Doc.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Doc.java index a3eaca6d..bc8aa5ee 100644 --- a/src/main/java/org/springframework/hateoas/alps/Doc.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Doc.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/org/springframework/hateoas/alps/Ext.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Ext.java similarity index 95% rename from src/main/java/org/springframework/hateoas/alps/Ext.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Ext.java index fedc1c11..e3d25685 100644 --- a/src/main/java/org/springframework/hateoas/alps/Ext.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Ext.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import lombok.Builder; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/alps/Format.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Format.java similarity index 94% rename from src/main/java/org/springframework/hateoas/alps/Format.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Format.java index 5b18e553..933ab20b 100644 --- a/src/main/java/org/springframework/hateoas/alps/Format.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Format.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import java.util.Locale; diff --git a/src/main/java/org/springframework/hateoas/alps/Type.java b/src/main/java/org/springframework/hateoas/mediatype/alps/Type.java similarity index 95% rename from src/main/java/org/springframework/hateoas/alps/Type.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/Type.java index 88299d64..5bbf9c55 100644 --- a/src/main/java/org/springframework/hateoas/alps/Type.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/Type.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import java.util.Locale; diff --git a/src/main/java/org/springframework/hateoas/alps/package-info.java b/src/main/java/org/springframework/hateoas/mediatype/alps/package-info.java similarity index 60% rename from src/main/java/org/springframework/hateoas/alps/package-info.java rename to src/main/java/org/springframework/hateoas/mediatype/alps/package-info.java index 620778cc..ba943974 100644 --- a/src/main/java/org/springframework/hateoas/alps/package-info.java +++ b/src/main/java/org/springframework/hateoas/mediatype/alps/package-info.java @@ -3,5 +3,5 @@ * * @see https://alps.io */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJson.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJson.java similarity index 98% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJson.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJson.java index fddeed12..3ce784c2 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJson.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJson.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.AccessLevel; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModel.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModel.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModel.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModel.java index 033a5777..0c049c39 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModel.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -29,7 +29,7 @@ import org.springframework.hateoas.Affordance; import org.springframework.hateoas.AffordanceModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.QueryParameter; -import org.springframework.hateoas.support.PropertyUtils; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.http.HttpMethod; /** diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModelFactory.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModelFactory.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModelFactory.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModelFactory.java index aa2ddc63..37490b31 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonAffordanceModelFactory.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonAffordanceModelFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.Getter; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonData.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonData.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonData.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonData.java index 99a9fd1e..b6689407 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonData.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.Value; import lombok.experimental.Wither; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonDocument.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonDocument.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonDocument.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonDocument.java index b38957e5..f6fbb958 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonDocument.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonDocument.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonError.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonError.java similarity index 95% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonError.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonError.java index c8216a57..1f7af474 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonError.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonError.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.AccessLevel; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonItem.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonItem.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonItem.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonItem.java index f39d89e3..f16fb0ba 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonItem.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonItem.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.AccessLevel; import lombok.Getter; @@ -29,7 +29,7 @@ import java.util.stream.Collectors; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.Links.MergeMode; -import org.springframework.hateoas.support.PropertyUtils; +import org.springframework.hateoas.mediatype.PropertyUtils; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscoverer.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscoverer.java index c469198f..2335a277 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscoverer.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import java.io.InputStream; import java.util.Optional; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfiguration.java similarity index 93% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfiguration.java index 74225268..81e16e0b 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfiguration.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.hateoas.config.HypermediaMappingInformation; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java index 66c14cd0..ccd69e3a 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonMediaTypeConfigurationProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonQuery.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonQuery.java similarity index 96% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonQuery.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonQuery.java index 77eaf8ff..c40d0e92 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonQuery.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonQuery.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static com.fasterxml.jackson.annotation.JsonInclude.*; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonTemplate.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonTemplate.java similarity index 94% rename from src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonTemplate.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonTemplate.java index 291d03c4..8cc1cc0f 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/CollectionJsonTemplate.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonTemplate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import lombok.Value; import lombok.experimental.Wither; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonModule.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java similarity index 99% rename from src/main/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonModule.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java index d4aa6b3d..7da9f7af 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonModule.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import java.io.IOException; import java.util.ArrayList; @@ -30,13 +30,13 @@ import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.Links.MergeMode; +import org.springframework.hateoas.mediatype.JacksonHelper; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.support.JacksonHelper; -import org.springframework.hateoas.support.PropertyUtils; import org.springframework.http.HttpMethod; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/PagedResourcesMixin.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/PagedResourcesMixin.java similarity index 85% rename from src/main/java/org/springframework/hateoas/collectionjson/PagedResourcesMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/PagedResourcesMixin.java index a4610c9d..f18e660d 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/PagedResourcesMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/PagedResourcesMixin.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; -import static org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.*; +import static org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.*; import org.springframework.hateoas.PagedResources; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/ResourceMixin.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceMixin.java similarity index 85% rename from src/main/java/org/springframework/hateoas/collectionjson/ResourceMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceMixin.java index be39c021..0cd83f9c 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/ResourceMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceMixin.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; -import static org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.*; +import static org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.*; import org.springframework.hateoas.Resource; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/ResourceSupportMixin.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceSupportMixin.java similarity index 77% rename from src/main/java/org/springframework/hateoas/collectionjson/ResourceSupportMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceSupportMixin.java index 830c35bb..c97b63c7 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/ResourceSupportMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourceSupportMixin.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import org.springframework.hateoas.Links; import org.springframework.hateoas.ResourceSupport; -import org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.CollectionJsonLinksDeserializer; -import org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.CollectionJsonLinksSerializer; -import org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.CollectionJsonResourceSupportDeserializer; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.CollectionJsonLinksDeserializer; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.CollectionJsonLinksSerializer; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.CollectionJsonResourceSupportDeserializer; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/org/springframework/hateoas/collectionjson/ResourcesMixin.java b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourcesMixin.java similarity index 85% rename from src/main/java/org/springframework/hateoas/collectionjson/ResourcesMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourcesMixin.java index 26dd2e63..b25acc60 100644 --- a/src/main/java/org/springframework/hateoas/collectionjson/ResourcesMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/collectionjson/ResourcesMixin.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; -import static org.springframework.hateoas.collectionjson.Jackson2CollectionJsonModule.*; +import static org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule.*; import org.springframework.hateoas.Resources; diff --git a/src/main/java/org/springframework/hateoas/hal/CurieProvider.java b/src/main/java/org/springframework/hateoas/mediatype/hal/CurieProvider.java similarity index 97% rename from src/main/java/org/springframework/hateoas/hal/CurieProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/CurieProvider.java index ba4225aa..e5bf535a 100644 --- a/src/main/java/org/springframework/hateoas/hal/CurieProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/CurieProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/hal/DefaultCurieProvider.java b/src/main/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProvider.java similarity index 99% rename from src/main/java/org/springframework/hateoas/hal/DefaultCurieProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProvider.java index 2d3bfaca..b4abc2a9 100644 --- a/src/main/java/org/springframework/hateoas/hal/DefaultCurieProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import lombok.Getter; diff --git a/src/main/java/org/springframework/hateoas/hal/HalConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalConfiguration.java similarity index 98% rename from src/main/java/org/springframework/hateoas/hal/HalConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalConfiguration.java index 2cfa2745..5927fca0 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/src/main/java/org/springframework/hateoas/hal/HalEmbeddedBuilder.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilder.java similarity index 95% rename from src/main/java/org/springframework/hateoas/hal/HalEmbeddedBuilder.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilder.java index 2f8f8421..255792e0 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalEmbeddedBuilder.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.util.ArrayList; import java.util.Collection; @@ -23,10 +23,10 @@ import java.util.List; import java.util.Map; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.core.EmbeddedWrapper; -import org.springframework.hateoas.core.EmbeddedWrappers; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.EmbeddedWrapper; +import org.springframework.hateoas.server.core.EmbeddedWrappers; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/hal/HalLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java similarity index 92% rename from src/main/java/org/springframework/hateoas/hal/HalLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java index 20b6b34b..5dd7ee99 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscoverer.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.util.Map; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.http.MediaType; /** diff --git a/src/main/java/org/springframework/hateoas/hal/HalLinkRelation.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkRelation.java similarity index 98% rename from src/main/java/org/springframework/hateoas/hal/HalLinkRelation.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkRelation.java index 7a974e5d..1e3112b0 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalLinkRelation.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalLinkRelation.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import lombok.AccessLevel; import lombok.EqualsAndHashCode; diff --git a/src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfiguration.java similarity index 94% rename from src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfiguration.java index 917eb760..d585a226 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import lombok.RequiredArgsConstructor; @@ -23,9 +23,9 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.MessageSourceAccessor; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.server.RelProvider; import org.springframework.hateoas.config.HypermediaMappingInformation; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfigurationProvider.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfigurationProvider.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfigurationProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfigurationProvider.java index 16e982d3..8800f523 100644 --- a/src/main/java/org/springframework/hateoas/hal/HalMediaTypeConfigurationProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalMediaTypeConfigurationProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/mediatype/hal/HalTraversonDefaults.java b/src/main/java/org/springframework/hateoas/mediatype/hal/HalTraversonDefaults.java new file mode 100644 index 00000000..0c999c2e --- /dev/null +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/HalTraversonDefaults.java @@ -0,0 +1,98 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.hateoas.mediatype.hal; + +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.hateoas.MediaTypes; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.client.TraversonDefaults; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * Traverson defaults to support HAL. + * + * @author Oliver Drotbohm + */ +class HalTraversonDefaults implements TraversonDefaults { + + private static final List HAL_FLAVORS = Arrays.asList(MediaTypes.HAL_JSON, MediaTypes.HAL_JSON_UTF8); + + /* + * (non-Javadoc) + * @see org.springframework.hateoas.config.TraversonDefaults#getHttpMessageConverters(java.util.Collection) + */ + @Override + public List> getHttpMessageConverters(Collection mediaTypes) { + + List> converters = new ArrayList<>(); + converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); + + List halFlavors = mediaTypes.stream() // + .filter(it -> HAL_FLAVORS.contains(it)) // + .collect(Collectors.toList()); + + if (!halFlavors.isEmpty()) { + converters.add(getHalConverter(halFlavors)); + } + + return converters; + } + + /* + * (non-Javadoc) + * @see org.springframework.hateoas.config.TraversonDefaults#getLinkDiscoverers(java.util.Collection) + */ + @Override + public List getLinkDiscoverers(Collection mediaTypes) { + + return mediaTypes.stream().anyMatch(it -> it.isCompatibleWith(MediaTypes.HAL_JSON)) // + ? Collections.singletonList(new HalLinkDiscoverer()) // + : Collections.emptyList(); + } + + /** + * Creates a new {@link HttpMessageConverter} to support HAL. + * + * @return + */ + private static final HttpMessageConverter getHalConverter(List halFlavours) { + + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new Jackson2HalModule()); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + + converter.setObjectMapper(mapper); + converter.setSupportedMediaTypes(halFlavours); + + return converter; + } + +} diff --git a/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java b/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java similarity index 99% rename from src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java index 828eb1ee..72ad6dbe 100644 --- a/src/main/java/org/springframework/hateoas/hal/Jackson2HalModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/Jackson2HalModule.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.io.IOException; import java.lang.reflect.Type; @@ -32,11 +32,11 @@ import org.springframework.context.support.MessageSourceAccessor; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.hal.HalConfiguration.RenderSingleLinks; +import org.springframework.hateoas.mediatype.hal.HalConfiguration.RenderSingleLinks; +import org.springframework.hateoas.server.RelProvider; import org.springframework.util.Assert; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/org/springframework/hateoas/hal/LinkMixin.java b/src/main/java/org/springframework/hateoas/mediatype/hal/LinkMixin.java similarity index 94% rename from src/main/java/org/springframework/hateoas/hal/LinkMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/LinkMixin.java index 16f4e4b3..bd68f8d6 100644 --- a/src/main/java/org/springframework/hateoas/hal/LinkMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/LinkMixin.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import org.springframework.hateoas.Link; -import org.springframework.hateoas.hal.Jackson2HalModule.TrueOnlyBooleanSerializer; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.TrueOnlyBooleanSerializer; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java b/src/main/java/org/springframework/hateoas/mediatype/hal/ResourceSupportMixin.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/ResourceSupportMixin.java index 363bad8b..43808ce3 100644 --- a/src/main/java/org/springframework/hateoas/hal/ResourceSupportMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/ResourceSupportMixin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; diff --git a/src/main/java/org/springframework/hateoas/hal/ResourcesMixin.java b/src/main/java/org/springframework/hateoas/mediatype/hal/ResourcesMixin.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/ResourcesMixin.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/ResourcesMixin.java index a00da9d1..57d894f7 100644 --- a/src/main/java/org/springframework/hateoas/hal/ResourcesMixin.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/ResourcesMixin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModel.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModel.java similarity index 95% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModel.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModel.java index 977a05fc..50759294 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModel.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.springframework.http.HttpMethod.*; @@ -31,7 +31,7 @@ import org.springframework.hateoas.Affordance; import org.springframework.hateoas.AffordanceModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.QueryParameter; -import org.springframework.hateoas.support.PropertyUtils; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModelFactory.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModelFactory.java similarity index 97% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModelFactory.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModelFactory.java index 9c381c0f..74023fbf 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsAffordanceModelFactory.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsAffordanceModelFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.Getter; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsConfiguration.java similarity index 93% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsConfiguration.java index a9952aae..4a76426c 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -22,7 +22,7 @@ import lombok.NoArgsConstructor; import lombok.experimental.Wither; import org.springframework.hateoas.Link; -import org.springframework.hateoas.hal.HalConfiguration; +import org.springframework.hateoas.mediatype.hal.HalConfiguration; /** * @author Greg Turnquist diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsDeserializers.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDeserializers.java similarity index 98% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsDeserializers.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDeserializers.java index f12a2e44..e541be02 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsDeserializers.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDeserializers.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsDocument.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDocument.java similarity index 94% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsDocument.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDocument.java index 9d4fd837..7752fe8a 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsDocument.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsDocument.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; @@ -29,9 +29,9 @@ import java.util.Map; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.PagedResources; -import org.springframework.hateoas.hal.HalLinkRelation; -import org.springframework.hateoas.hal.Jackson2HalModule.HalLinkListSerializer; -import org.springframework.hateoas.hal.forms.Jackson2HalFormsModule.HalFormsLinksDeserializer; +import org.springframework.hateoas.mediatype.hal.HalLinkRelation; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalLinkListSerializer; +import org.springframework.hateoas.mediatype.hal.forms.Jackson2HalFormsModule.HalFormsLinksDeserializer; import org.springframework.util.Assert; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscoverer.java similarity index 82% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscoverer.java index 370a2e92..87603ccd 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscoverer.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; -import org.springframework.hateoas.hal.HalLinkDiscoverer; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; /** * HAL-FORMS based {@link JsonPathLinkDiscoverer}. diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfiguration.java similarity index 91% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfiguration.java index 97ba53b4..cd5f543f 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.RequiredArgsConstructor; @@ -23,11 +23,11 @@ import org.springframework.beans.factory.ObjectProvider; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.MessageSourceAccessor; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.hateoas.config.HypermediaMappingInformation; -import org.springframework.hateoas.core.DelegatingRelProvider; -import org.springframework.hateoas.hal.CurieProvider; +import org.springframework.hateoas.server.core.DelegatingRelProvider; import org.springframework.http.MediaType; import com.fasterxml.jackson.databind.DeserializationFeature; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfigurationProvider.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfigurationProvider.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfigurationProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfigurationProvider.java index 39f112f3..bc60233f 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsMediaTypeConfigurationProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMediaTypeConfigurationProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsProperty.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsProperty.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsProperty.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsProperty.java index 312b42e4..f4b13abc 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsProperty.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsProperty.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsSerializers.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsSerializers.java similarity index 97% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsSerializers.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsSerializers.java index b17279e9..594c3e32 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsSerializers.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsSerializers.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import java.io.IOException; import java.util.Collections; @@ -29,8 +29,8 @@ import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.hal.HalLinkRelation; -import org.springframework.hateoas.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.hal.HalLinkRelation; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; import org.springframework.http.HttpMethod; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsTemplate.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsTemplate.java similarity index 96% rename from src/main/java/org/springframework/hateoas/hal/forms/HalFormsTemplate.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsTemplate.java index a91e4c9f..c3315261 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/HalFormsTemplate.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsTemplate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -27,7 +27,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.springframework.hateoas.hal.forms.HalFormsDeserializers.MediaTypesDeserializer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsDeserializers.MediaTypesDeserializer; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsModule.java b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsModule.java similarity index 89% rename from src/main/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsModule.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsModule.java index fd0513e8..d07d3c67 100644 --- a/src/main/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsModule.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import java.io.IOException; import java.util.Collection; @@ -25,20 +25,20 @@ import org.springframework.context.support.MessageSourceAccessor; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.PagedResources; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.hal.CurieProvider; -import org.springframework.hateoas.hal.Jackson2HalModule.EmbeddedMapper; -import org.springframework.hateoas.hal.Jackson2HalModule.HalHandlerInstantiator; -import org.springframework.hateoas.hal.Jackson2HalModule.HalLinkListDeserializer; -import org.springframework.hateoas.hal.Jackson2HalModule.HalLinkListSerializer; -import org.springframework.hateoas.hal.LinkMixin; -import org.springframework.hateoas.hal.ResourceSupportMixin; -import org.springframework.hateoas.hal.forms.HalFormsDeserializers.HalFormsResourcesDeserializer; -import org.springframework.hateoas.hal.forms.HalFormsSerializers.HalFormsResourceSerializer; -import org.springframework.hateoas.hal.forms.HalFormsSerializers.HalFormsResourcesSerializer; -import org.springframework.hateoas.mvc.JacksonSerializers.MediaTypeDeserializer; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.mediatype.hal.LinkMixin; +import org.springframework.hateoas.mediatype.hal.ResourceSupportMixin; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.EmbeddedMapper; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalHandlerInstantiator; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalLinkListDeserializer; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalLinkListSerializer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsDeserializers.HalFormsResourcesDeserializer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsSerializers.HalFormsResourceSerializer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsSerializers.HalFormsResourcesSerializer; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.mvc.JacksonSerializers.MediaTypeDeserializer; import org.springframework.http.MediaType; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/org/springframework/hateoas/hal/package-info.java b/src/main/java/org/springframework/hateoas/mediatype/hal/package-info.java similarity index 71% rename from src/main/java/org/springframework/hateoas/hal/package-info.java rename to src/main/java/org/springframework/hateoas/mediatype/hal/package-info.java index bf408dde..d7e2139c 100644 --- a/src/main/java/org/springframework/hateoas/hal/package-info.java +++ b/src/main/java/org/springframework/hateoas/mediatype/hal/package-info.java @@ -3,5 +3,5 @@ * * @see http://stateless.co/hal_specification.html */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; diff --git a/src/main/java/org/springframework/hateoas/uber/Jackson2UberModule.java b/src/main/java/org/springframework/hateoas/mediatype/uber/Jackson2UberModule.java similarity index 98% rename from src/main/java/org/springframework/hateoas/uber/Jackson2UberModule.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/Jackson2UberModule.java index e2302827..950ee544 100644 --- a/src/main/java/org/springframework/hateoas/uber/Jackson2UberModule.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/Jackson2UberModule.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; -import static org.springframework.hateoas.support.JacksonHelper.*; -import static org.springframework.hateoas.uber.UberData.*; +import static org.springframework.hateoas.mediatype.JacksonHelper.*; +import static org.springframework.hateoas.mediatype.uber.UberData.*; import java.io.IOException; import java.util.ArrayList; @@ -30,11 +30,11 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.PagedResources.PageMetadata; +import org.springframework.hateoas.mediatype.JacksonHelper; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.support.JacksonHelper; -import org.springframework.hateoas.support.PropertyUtils; import org.springframework.util.StringUtils; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/src/main/java/org/springframework/hateoas/uber/Uber.java b/src/main/java/org/springframework/hateoas/mediatype/uber/Uber.java similarity index 97% rename from src/main/java/org/springframework/hateoas/uber/Uber.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/Uber.java index 1487d81c..1fb8d303 100644 --- a/src/main/java/org/springframework/hateoas/uber/Uber.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/Uber.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.AccessLevel; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/uber/UberAction.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAction.java similarity index 94% rename from src/main/java/org/springframework/hateoas/uber/UberAction.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberAction.java index 3f15d290..f5c03c38 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberAction.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAction.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import java.util.Arrays; -import org.springframework.hateoas.uber.Jackson2UberModule.UberActionDeserializer; +import org.springframework.hateoas.mediatype.uber.Jackson2UberModule.UberActionDeserializer; import org.springframework.http.HttpMethod; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/org/springframework/hateoas/uber/UberAffordanceModel.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModel.java similarity index 96% rename from src/main/java/org/springframework/hateoas/uber/UberAffordanceModel.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModel.java index 6d588222..208dccc4 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberAffordanceModel.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.Getter; @@ -29,7 +29,7 @@ import org.springframework.hateoas.AffordanceModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.QueryParameter; -import org.springframework.hateoas.support.PropertyUtils; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/uber/UberAffordanceModelFactory.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModelFactory.java similarity index 97% rename from src/main/java/org/springframework/hateoas/uber/UberAffordanceModelFactory.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModelFactory.java index dad58b9b..528d163e 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberAffordanceModelFactory.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberAffordanceModelFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.Getter; diff --git a/src/main/java/org/springframework/hateoas/uber/UberData.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberData.java similarity index 99% rename from src/main/java/org/springframework/hateoas/uber/UberData.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberData.java index bb83c54d..c37534be 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberData.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.AccessLevel; import lombok.Data; @@ -39,7 +39,7 @@ import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.support.PropertyUtils; +import org.springframework.hateoas.mediatype.PropertyUtils; import org.springframework.http.HttpMethod; import org.springframework.util.StringUtils; diff --git a/src/main/java/org/springframework/hateoas/uber/UberDocument.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberDocument.java similarity index 96% rename from src/main/java/org/springframework/hateoas/uber/UberDocument.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberDocument.java index 2aea867e..3ecd7245 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberDocument.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberDocument.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/org/springframework/hateoas/uber/UberError.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberError.java similarity index 95% rename from src/main/java/org/springframework/hateoas/uber/UberError.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberError.java index 08154f19..29d7b5b1 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberError.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberError.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import lombok.AccessLevel; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/uber/UberLinkDiscoverer.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscoverer.java similarity index 97% rename from src/main/java/org/springframework/hateoas/uber/UberLinkDiscoverer.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscoverer.java index 6e5e8118..78a138af 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberLinkDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscoverer.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import java.io.IOException; import java.io.InputStream; import java.util.Optional; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; import org.springframework.hateoas.MediaTypes; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.http.MediaType; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfiguration.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfiguration.java similarity index 93% rename from src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfiguration.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfiguration.java index 45d65ecd..48e42672 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfiguration.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfiguration.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.client.LinkDiscoverer; import org.springframework.hateoas.config.HypermediaMappingInformation; import org.springframework.http.MediaType; diff --git a/src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfigurationProvider.java b/src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfigurationProvider.java similarity index 96% rename from src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfigurationProvider.java rename to src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfigurationProvider.java index 3c8e1151..f235a61a 100644 --- a/src/main/java/org/springframework/hateoas/uber/UberMediaTypeConfigurationProvider.java +++ b/src/main/java/org/springframework/hateoas/mediatype/uber/UberMediaTypeConfigurationProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/VndErrors.java b/src/main/java/org/springframework/hateoas/mediatype/vnderrors/VndErrors.java similarity index 97% rename from src/main/java/org/springframework/hateoas/VndErrors.java rename to src/main/java/org/springframework/hateoas/mediatype/vnderrors/VndErrors.java index eb182fea..70ddde88 100644 --- a/src/main/java/org/springframework/hateoas/VndErrors.java +++ b/src/main/java/org/springframework/hateoas/mediatype/vnderrors/VndErrors.java @@ -13,13 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.mediatype.vnderrors; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.ResourceSupport; import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/src/main/java/org/springframework/hateoas/EntityLinks.java b/src/main/java/org/springframework/hateoas/server/EntityLinks.java similarity index 96% rename from src/main/java/org/springframework/hateoas/EntityLinks.java rename to src/main/java/org/springframework/hateoas/server/EntityLinks.java index d7c7bac2..145c8719 100644 --- a/src/main/java/org/springframework/hateoas/EntityLinks.java +++ b/src/main/java/org/springframework/hateoas/server/EntityLinks.java @@ -13,8 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; +import org.springframework.hateoas.IanaLinkRelations; +import org.springframework.hateoas.Identifiable; +import org.springframework.hateoas.Link; import org.springframework.plugin.core.Plugin; /** diff --git a/src/main/java/org/springframework/hateoas/ExposesResourceFor.java b/src/main/java/org/springframework/hateoas/server/ExposesResourceFor.java similarity index 91% rename from src/main/java/org/springframework/hateoas/ExposesResourceFor.java rename to src/main/java/org/springframework/hateoas/server/ExposesResourceFor.java index 2ae92243..b93940b9 100644 --- a/src/main/java/org/springframework/hateoas/ExposesResourceFor.java +++ b/src/main/java/org/springframework/hateoas/server/ExposesResourceFor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; @@ -22,7 +22,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.springframework.hateoas.core.ControllerEntityLinks; +import org.springframework.hateoas.server.core.ControllerEntityLinks; /** * Annotation to demarcate controllers that expose URI templates of a structure according to diff --git a/src/main/java/org/springframework/hateoas/LinkBuilder.java b/src/main/java/org/springframework/hateoas/server/LinkBuilder.java similarity index 89% rename from src/main/java/org/springframework/hateoas/LinkBuilder.java rename to src/main/java/org/springframework/hateoas/server/LinkBuilder.java index 94f86548..ba08f0f0 100644 --- a/src/main/java/org/springframework/hateoas/LinkBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/LinkBuilder.java @@ -13,10 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.net.URI; +import org.springframework.hateoas.IanaLinkRelations; +import org.springframework.hateoas.Identifiable; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.LinkRelation; + /** * Builder to ease building {@link Link} instances. * diff --git a/src/main/java/org/springframework/hateoas/LinkBuilderFactory.java b/src/main/java/org/springframework/hateoas/server/LinkBuilderFactory.java similarity index 97% rename from src/main/java/org/springframework/hateoas/LinkBuilderFactory.java rename to src/main/java/org/springframework/hateoas/server/LinkBuilderFactory.java index 84cde679..c572169e 100644 --- a/src/main/java/org/springframework/hateoas/LinkBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/server/LinkBuilderFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.util.Map; diff --git a/src/main/java/org/springframework/hateoas/MethodLinkBuilderFactory.java b/src/main/java/org/springframework/hateoas/server/MethodLinkBuilderFactory.java similarity index 92% rename from src/main/java/org/springframework/hateoas/MethodLinkBuilderFactory.java rename to src/main/java/org/springframework/hateoas/server/MethodLinkBuilderFactory.java index 502f6da4..89b6d429 100644 --- a/src/main/java/org/springframework/hateoas/MethodLinkBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/server/MethodLinkBuilderFactory.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.lang.reflect.Method; -import org.springframework.hateoas.core.DummyInvocationUtils; -import org.springframework.hateoas.mvc.WebMvcLinkBuilder; +import org.springframework.hateoas.server.core.DummyInvocationUtils; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder; /** * Extension of {@link LinkBuilderFactory} for implementations that also support creating {@link LinkBuilder}s by diff --git a/src/main/java/org/springframework/hateoas/RelProvider.java b/src/main/java/org/springframework/hateoas/server/RelProvider.java similarity index 93% rename from src/main/java/org/springframework/hateoas/RelProvider.java rename to src/main/java/org/springframework/hateoas/server/RelProvider.java index 523cfde9..9a1fdf1b 100644 --- a/src/main/java/org/springframework/hateoas/RelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/RelProvider.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; +import org.springframework.hateoas.LinkRelation; import org.springframework.plugin.core.Plugin; /** diff --git a/src/main/java/org/springframework/hateoas/ResourceAssembler.java b/src/main/java/org/springframework/hateoas/server/ResourceAssembler.java similarity index 91% rename from src/main/java/org/springframework/hateoas/ResourceAssembler.java rename to src/main/java/org/springframework/hateoas/server/ResourceAssembler.java index 64a092a2..36f547c7 100755 --- a/src/main/java/org/springframework/hateoas/ResourceAssembler.java +++ b/src/main/java/org/springframework/hateoas/server/ResourceAssembler.java @@ -13,11 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.util.ArrayList; import java.util.List; +import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.Resources; + /** * Interface for components that convert a domain type into a {@link ResourceSupport}. * diff --git a/src/main/java/org/springframework/hateoas/ResourceProcessor.java b/src/main/java/org/springframework/hateoas/server/ResourceProcessor.java similarity index 84% rename from src/main/java/org/springframework/hateoas/ResourceProcessor.java rename to src/main/java/org/springframework/hateoas/server/ResourceProcessor.java index e66eca16..a5a7d66a 100644 --- a/src/main/java/org/springframework/hateoas/ResourceProcessor.java +++ b/src/main/java/org/springframework/hateoas/server/ResourceProcessor.java @@ -13,7 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; + +import org.springframework.hateoas.Resource; +import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.Resources; /** * SPI interface to allow components to process the {@link ResourceSupport} instances returned from Spring MVC diff --git a/src/main/java/org/springframework/hateoas/SimpleResourceAssembler.java b/src/main/java/org/springframework/hateoas/server/SimpleResourceAssembler.java similarity index 94% rename from src/main/java/org/springframework/hateoas/SimpleResourceAssembler.java rename to src/main/java/org/springframework/hateoas/server/SimpleResourceAssembler.java index 5f0db8b5..32b0f9e5 100644 --- a/src/main/java/org/springframework/hateoas/SimpleResourceAssembler.java +++ b/src/main/java/org/springframework/hateoas/server/SimpleResourceAssembler.java @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas; +package org.springframework.hateoas.server; import java.util.ArrayList; import java.util.List; +import org.springframework.hateoas.Resource; +import org.springframework.hateoas.Resources; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/core/AbstractEntityLinks.java b/src/main/java/org/springframework/hateoas/server/core/AbstractEntityLinks.java similarity index 92% rename from src/main/java/org/springframework/hateoas/core/AbstractEntityLinks.java rename to src/main/java/org/springframework/hateoas/server/core/AbstractEntityLinks.java index 3aebe2f4..92d48ac5 100644 --- a/src/main/java/org/springframework/hateoas/core/AbstractEntityLinks.java +++ b/src/main/java/org/springframework/hateoas/server/core/AbstractEntityLinks.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; -import org.springframework.hateoas.EntityLinks; import org.springframework.hateoas.Identifiable; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkBuilder; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.LinkBuilder; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/core/AnnotationAttribute.java b/src/main/java/org/springframework/hateoas/server/core/AnnotationAttribute.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/AnnotationAttribute.java rename to src/main/java/org/springframework/hateoas/server/core/AnnotationAttribute.java index d67ecac1..9644b52c 100644 --- a/src/main/java/org/springframework/hateoas/core/AnnotationAttribute.java +++ b/src/main/java/org/springframework/hateoas/server/core/AnnotationAttribute.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; diff --git a/src/main/java/org/springframework/hateoas/core/AnnotationMappingDiscoverer.java b/src/main/java/org/springframework/hateoas/server/core/AnnotationMappingDiscoverer.java similarity index 99% rename from src/main/java/org/springframework/hateoas/core/AnnotationMappingDiscoverer.java rename to src/main/java/org/springframework/hateoas/server/core/AnnotationMappingDiscoverer.java index 924d76eb..3243c46e 100644 --- a/src/main/java/org/springframework/hateoas/core/AnnotationMappingDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/server/core/AnnotationMappingDiscoverer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.springframework.core.annotation.AnnotatedElementUtils.*; import static org.springframework.core.annotation.AnnotationUtils.*; diff --git a/src/main/java/org/springframework/hateoas/core/AnnotationRelProvider.java b/src/main/java/org/springframework/hateoas/server/core/AnnotationRelProvider.java similarity index 92% rename from src/main/java/org/springframework/hateoas/core/AnnotationRelProvider.java rename to src/main/java/org/springframework/hateoas/server/core/AnnotationRelProvider.java index ff2b623c..340dd732 100644 --- a/src/main/java/org/springframework/hateoas/core/AnnotationRelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/core/AnnotationRelProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.HashMap; import java.util.Map; @@ -21,7 +21,7 @@ import java.util.Map; import org.springframework.core.Ordered; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; /** * @author Oliver Gierke @@ -32,11 +32,6 @@ public class AnnotationRelProvider implements RelProvider, Ordered { private final Map, Relation> annotationCache = new HashMap<>(); - @Override - public int getOrder() { - return 100; - } - /* * (non-Javadoc) * @see org.springframework.hateoas.RelProvider#getRelForCollectionResource(java.lang.Class) @@ -69,6 +64,15 @@ public class AnnotationRelProvider implements RelProvider, Ordered { return LinkRelation.of(annotation.value()); } + /* + * (non-Javadoc) + * @see org.springframework.core.Ordered#getOrder() + */ + @Override + public int getOrder() { + return 100; + } + /* * (non-Javadoc) * @see org.springframework.plugin.core.Plugin#supports(java.lang.Object) diff --git a/src/main/java/org/springframework/hateoas/core/CachingMappingDiscoverer.java b/src/main/java/org/springframework/hateoas/server/core/CachingMappingDiscoverer.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/CachingMappingDiscoverer.java rename to src/main/java/org/springframework/hateoas/server/core/CachingMappingDiscoverer.java index f060f0b2..2b54a75e 100644 --- a/src/main/java/org/springframework/hateoas/core/CachingMappingDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/server/core/CachingMappingDiscoverer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/org/springframework/hateoas/core/ControllerEntityLinks.java b/src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinks.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/ControllerEntityLinks.java rename to src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinks.java index 552f8676..98f7eb94 100644 --- a/src/main/java/org/springframework/hateoas/core/ControllerEntityLinks.java +++ b/src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinks.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.HashMap; import java.util.Map; import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.hateoas.EntityLinks; -import org.springframework.hateoas.ExposesResourceFor; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkBuilder; -import org.springframework.hateoas.LinkBuilderFactory; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.ExposesResourceFor; +import org.springframework.hateoas.server.LinkBuilder; +import org.springframework.hateoas.server.LinkBuilderFactory; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBean.java b/src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBean.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBean.java rename to src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBean.java index f4305446..7db017b3 100644 --- a/src/main/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBean.java +++ b/src/main/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBean.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.annotation.Annotation; import java.util.Collection; @@ -25,9 +25,9 @@ import org.springframework.beans.factory.config.AbstractFactoryBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.hateoas.ExposesResourceFor; -import org.springframework.hateoas.LinkBuilder; -import org.springframework.hateoas.LinkBuilderFactory; +import org.springframework.hateoas.server.ExposesResourceFor; +import org.springframework.hateoas.server.LinkBuilder; +import org.springframework.hateoas.server.LinkBuilderFactory; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/core/DefaultRelProvider.java b/src/main/java/org/springframework/hateoas/server/core/DefaultRelProvider.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/DefaultRelProvider.java rename to src/main/java/org/springframework/hateoas/server/core/DefaultRelProvider.java index c0d30963..5c715e3b 100644 --- a/src/main/java/org/springframework/hateoas/core/DefaultRelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/core/DefaultRelProvider.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import org.springframework.core.Ordered; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; import org.springframework.util.StringUtils; /** diff --git a/src/main/java/org/springframework/hateoas/core/DelegatingEntityLinks.java b/src/main/java/org/springframework/hateoas/server/core/DelegatingEntityLinks.java similarity index 95% rename from src/main/java/org/springframework/hateoas/core/DelegatingEntityLinks.java rename to src/main/java/org/springframework/hateoas/server/core/DelegatingEntityLinks.java index a73d011f..a09e4162 100644 --- a/src/main/java/org/springframework/hateoas/core/DelegatingEntityLinks.java +++ b/src/main/java/org/springframework/hateoas/server/core/DelegatingEntityLinks.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; -import org.springframework.hateoas.EntityLinks; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkBuilder; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.LinkBuilder; import org.springframework.plugin.core.PluginRegistry; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/core/DelegatingRelProvider.java b/src/main/java/org/springframework/hateoas/server/core/DelegatingRelProvider.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/DelegatingRelProvider.java rename to src/main/java/org/springframework/hateoas/server/core/DelegatingRelProvider.java index c9e65916..db49d00f 100644 --- a/src/main/java/org/springframework/hateoas/core/DelegatingRelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/core/DelegatingRelProvider.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; import org.springframework.plugin.core.PluginRegistry; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/core/DummyInvocationUtils.java b/src/main/java/org/springframework/hateoas/server/core/DummyInvocationUtils.java similarity index 99% rename from src/main/java/org/springframework/hateoas/core/DummyInvocationUtils.java rename to src/main/java/org/springframework/hateoas/server/core/DummyInvocationUtils.java index e60181e5..3cd36330 100644 --- a/src/main/java/org/springframework/hateoas/core/DummyInvocationUtils.java +++ b/src/main/java/org/springframework/hateoas/server/core/DummyInvocationUtils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import lombok.NonNull; import lombok.Value; diff --git a/src/main/java/org/springframework/hateoas/core/EmbeddedWrapper.java b/src/main/java/org/springframework/hateoas/server/core/EmbeddedWrapper.java similarity index 97% rename from src/main/java/org/springframework/hateoas/core/EmbeddedWrapper.java rename to src/main/java/org/springframework/hateoas/server/core/EmbeddedWrapper.java index 9bd69d24..f8992b03 100644 --- a/src/main/java/org/springframework/hateoas/core/EmbeddedWrapper.java +++ b/src/main/java/org/springframework/hateoas/server/core/EmbeddedWrapper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.Optional; diff --git a/src/main/java/org/springframework/hateoas/core/EmbeddedWrappers.java b/src/main/java/org/springframework/hateoas/server/core/EmbeddedWrappers.java similarity index 99% rename from src/main/java/org/springframework/hateoas/core/EmbeddedWrappers.java rename to src/main/java/org/springframework/hateoas/server/core/EmbeddedWrappers.java index 84fe91b3..94ff9e44 100644 --- a/src/main/java/org/springframework/hateoas/core/EmbeddedWrappers.java +++ b/src/main/java/org/springframework/hateoas/server/core/EmbeddedWrappers.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/org/springframework/hateoas/core/EncodingUtils.java b/src/main/java/org/springframework/hateoas/server/core/EncodingUtils.java similarity index 95% rename from src/main/java/org/springframework/hateoas/core/EncodingUtils.java rename to src/main/java/org/springframework/hateoas/server/core/EncodingUtils.java index 480eaa2c..49491912 100644 --- a/src/main/java/org/springframework/hateoas/core/EncodingUtils.java +++ b/src/main/java/org/springframework/hateoas/server/core/EncodingUtils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import lombok.experimental.UtilityClass; @@ -22,20 +22,20 @@ import org.springframework.web.util.UriUtils; /** * Utilities for URI encoding. - * + * * @author Oliver Gierke * @author Greg Turnquist * @since 0.22 * @soundtrack Don Philippe - Between Now And Now (Between Now And Now) */ @UtilityClass -public class EncodingUtils { +class EncodingUtils { private static final String ENCODING = "UTF-8"; /** * Encodes the given path value. - * + * * @param source must not be {@literal null}. * @return */ @@ -52,7 +52,7 @@ public class EncodingUtils { /** * Encodes the given request parameter value. - * + * * @param source must not be {@literal null}. * @return */ @@ -69,7 +69,7 @@ public class EncodingUtils { /** * Encodes the given fragment value. - * + * * @param source must not be {@literal null}. * @return */ diff --git a/src/main/java/org/springframework/hateoas/core/EvoInflectorRelProvider.java b/src/main/java/org/springframework/hateoas/server/core/EvoInflectorRelProvider.java similarity index 92% rename from src/main/java/org/springframework/hateoas/core/EvoInflectorRelProvider.java rename to src/main/java/org/springframework/hateoas/server/core/EvoInflectorRelProvider.java index 679d4520..c9ef0abd 100644 --- a/src/main/java/org/springframework/hateoas/core/EvoInflectorRelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/core/EvoInflectorRelProvider.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import org.atteo.evo.inflector.English; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; /** * {@link RelProvider} implementation using the Evo Inflector implementation of an algorithmic approach to English diff --git a/src/main/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntity.java b/src/main/java/org/springframework/hateoas/server/core/HeaderLinksResponseEntity.java similarity index 97% rename from src/main/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntity.java rename to src/main/java/org/springframework/hateoas/server/core/HeaderLinksResponseEntity.java index 4d89d595..0663dc48 100644 --- a/src/main/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntity.java +++ b/src/main/java/org/springframework/hateoas/server/core/HeaderLinksResponseEntity.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.core; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; -import org.springframework.hateoas.ResourceProcessor; import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.server.ResourceProcessor; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; diff --git a/src/main/java/org/springframework/hateoas/core/LastInvocationAware.java b/src/main/java/org/springframework/hateoas/server/core/LastInvocationAware.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/LastInvocationAware.java rename to src/main/java/org/springframework/hateoas/server/core/LastInvocationAware.java index 62925008..acafb0db 100644 --- a/src/main/java/org/springframework/hateoas/core/LastInvocationAware.java +++ b/src/main/java/org/springframework/hateoas/server/core/LastInvocationAware.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.Iterator; diff --git a/src/main/java/org/springframework/hateoas/core/LinkBuilderSupport.java b/src/main/java/org/springframework/hateoas/server/core/LinkBuilderSupport.java similarity index 97% rename from src/main/java/org/springframework/hateoas/core/LinkBuilderSupport.java rename to src/main/java/org/springframework/hateoas/server/core/LinkBuilderSupport.java index 74eed704..b166b846 100644 --- a/src/main/java/org/springframework/hateoas/core/LinkBuilderSupport.java +++ b/src/main/java/org/springframework/hateoas/server/core/LinkBuilderSupport.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; -import static org.springframework.hateoas.core.EncodingUtils.*; +import static org.springframework.hateoas.server.core.EncodingUtils.*; import lombok.Getter; @@ -31,8 +31,8 @@ import org.springframework.hateoas.Affordance; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Identifiable; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkBuilder; import org.springframework.hateoas.LinkRelation; +import org.springframework.hateoas.server.LinkBuilder; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.web.util.UriComponents; diff --git a/src/main/java/org/springframework/hateoas/core/MappingDiscoverer.java b/src/main/java/org/springframework/hateoas/server/core/MappingDiscoverer.java similarity index 97% rename from src/main/java/org/springframework/hateoas/core/MappingDiscoverer.java rename to src/main/java/org/springframework/hateoas/server/core/MappingDiscoverer.java index b058c7a2..d9fb7abe 100644 --- a/src/main/java/org/springframework/hateoas/core/MappingDiscoverer.java +++ b/src/main/java/org/springframework/hateoas/server/core/MappingDiscoverer.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.reflect.Method; import java.util.Collection; diff --git a/src/main/java/org/springframework/hateoas/core/MethodInvocation.java b/src/main/java/org/springframework/hateoas/server/core/MethodInvocation.java similarity index 94% rename from src/main/java/org/springframework/hateoas/core/MethodInvocation.java rename to src/main/java/org/springframework/hateoas/server/core/MethodInvocation.java index f7a713a5..c51052b0 100644 --- a/src/main/java/org/springframework/hateoas/core/MethodInvocation.java +++ b/src/main/java/org/springframework/hateoas/server/core/MethodInvocation.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.reflect.Method; diff --git a/src/main/java/org/springframework/hateoas/core/MethodParameters.java b/src/main/java/org/springframework/hateoas/server/core/MethodParameters.java similarity index 99% rename from src/main/java/org/springframework/hateoas/core/MethodParameters.java rename to src/main/java/org/springframework/hateoas/server/core/MethodParameters.java index cefef4c7..75b2622b 100644 --- a/src/main/java/org/springframework/hateoas/core/MethodParameters.java +++ b/src/main/java/org/springframework/hateoas/server/core/MethodParameters.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.annotation.Annotation; import java.lang.reflect.Method; diff --git a/src/main/java/org/springframework/hateoas/core/Relation.java b/src/main/java/org/springframework/hateoas/server/core/Relation.java similarity index 96% rename from src/main/java/org/springframework/hateoas/core/Relation.java rename to src/main/java/org/springframework/hateoas/server/core/Relation.java index d7696607..5977251b 100644 --- a/src/main/java/org/springframework/hateoas/core/Relation.java +++ b/src/main/java/org/springframework/hateoas/server/core/Relation.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/org/springframework/hateoas/core/SpringAffordanceBuilder.java b/src/main/java/org/springframework/hateoas/server/core/SpringAffordanceBuilder.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/SpringAffordanceBuilder.java rename to src/main/java/org/springframework/hateoas/server/core/SpringAffordanceBuilder.java index 52ab1c49..78bed68c 100644 --- a/src/main/java/org/springframework/hateoas/core/SpringAffordanceBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/core/SpringAffordanceBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/org/springframework/hateoas/core/TemplateVariableAwareLinkBuilderSupport.java b/src/main/java/org/springframework/hateoas/server/core/TemplateVariableAwareLinkBuilderSupport.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/TemplateVariableAwareLinkBuilderSupport.java rename to src/main/java/org/springframework/hateoas/server/core/TemplateVariableAwareLinkBuilderSupport.java index 7a8ce1a8..de81c07c 100644 --- a/src/main/java/org/springframework/hateoas/core/TemplateVariableAwareLinkBuilderSupport.java +++ b/src/main/java/org/springframework/hateoas/server/core/TemplateVariableAwareLinkBuilderSupport.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.List; diff --git a/src/main/java/org/springframework/hateoas/core/UriTemplateFactory.java b/src/main/java/org/springframework/hateoas/server/core/UriTemplateFactory.java similarity index 96% rename from src/main/java/org/springframework/hateoas/core/UriTemplateFactory.java rename to src/main/java/org/springframework/hateoas/server/core/UriTemplateFactory.java index 06404ef4..e7db344e 100644 --- a/src/main/java/org/springframework/hateoas/core/UriTemplateFactory.java +++ b/src/main/java/org/springframework/hateoas/server/core/UriTemplateFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import java.util.Map; diff --git a/src/main/java/org/springframework/hateoas/core/WebHandler.java b/src/main/java/org/springframework/hateoas/server/core/WebHandler.java similarity index 98% rename from src/main/java/org/springframework/hateoas/core/WebHandler.java rename to src/main/java/org/springframework/hateoas/server/core/WebHandler.java index 98f2e3cb..f6388215 100644 --- a/src/main/java/org/springframework/hateoas/core/WebHandler.java +++ b/src/main/java/org/springframework/hateoas/server/core/WebHandler.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.springframework.hateoas.TemplateVariable.VariableType.*; import static org.springframework.hateoas.TemplateVariables.*; -import static org.springframework.hateoas.core.EncodingUtils.*; +import static org.springframework.hateoas.server.core.EncodingUtils.*; import static org.springframework.web.util.UriComponents.UriTemplateVariables.*; import lombok.NonNull; @@ -39,9 +39,9 @@ import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.hateoas.Affordance; -import org.springframework.hateoas.LinkBuilder; import org.springframework.hateoas.TemplateVariable; import org.springframework.hateoas.TemplateVariables; +import org.springframework.hateoas.server.LinkBuilder; import org.springframework.util.Assert; import org.springframework.util.ConcurrentReferenceHashMap; import org.springframework.util.MultiValueMap; diff --git a/src/main/java/org/springframework/hateoas/core/package-info.java b/src/main/java/org/springframework/hateoas/server/core/package-info.java similarity index 51% rename from src/main/java/org/springframework/hateoas/core/package-info.java rename to src/main/java/org/springframework/hateoas/server/core/package-info.java index 2da22c30..2bcd529d 100644 --- a/src/main/java/org/springframework/hateoas/core/package-info.java +++ b/src/main/java/org/springframework/hateoas/server/core/package-info.java @@ -1,5 +1,5 @@ /** * Implementations of core API interfaces. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; diff --git a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilder.java b/src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilder.java similarity index 95% rename from src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilder.java rename to src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilder.java index dc82d68e..6763fed1 100755 --- a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.lang.reflect.Method; import java.net.URI; @@ -24,12 +24,12 @@ import java.util.Map; import org.springframework.hateoas.Affordance; import org.springframework.hateoas.Link; import org.springframework.hateoas.TemplateVariables; -import org.springframework.hateoas.core.AnnotationMappingDiscoverer; -import org.springframework.hateoas.core.CachingMappingDiscoverer; -import org.springframework.hateoas.core.DummyInvocationUtils; -import org.springframework.hateoas.core.MappingDiscoverer; -import org.springframework.hateoas.core.TemplateVariableAwareLinkBuilderSupport; -import org.springframework.hateoas.core.UriTemplateFactory; +import org.springframework.hateoas.server.core.AnnotationMappingDiscoverer; +import org.springframework.hateoas.server.core.CachingMappingDiscoverer; +import org.springframework.hateoas.server.core.DummyInvocationUtils; +import org.springframework.hateoas.server.core.MappingDiscoverer; +import org.springframework.hateoas.server.core.TemplateVariableAwareLinkBuilderSupport; +import org.springframework.hateoas.server.core.UriTemplateFactory; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.request.RequestContextHolder; diff --git a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java b/src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactory.java similarity index 93% rename from src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java rename to src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactory.java index c1e4127f..f16a570d 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.lang.reflect.Method; import java.util.ArrayList; @@ -25,10 +25,10 @@ import java.util.Map; import org.springframework.core.MethodParameter; import org.springframework.hateoas.Link; -import org.springframework.hateoas.MethodLinkBuilderFactory; -import org.springframework.hateoas.core.LinkBuilderSupport; -import org.springframework.hateoas.core.MethodParameters; -import org.springframework.hateoas.core.WebHandler; +import org.springframework.hateoas.server.MethodLinkBuilderFactory; +import org.springframework.hateoas.server.core.LinkBuilderSupport; +import org.springframework.hateoas.server.core.MethodParameters; +import org.springframework.hateoas.server.core.WebHandler; /** * Factory for {@link LinkBuilderSupport} instances based on the request mapping annotated on the given controller. diff --git a/src/main/java/org/springframework/hateoas/mvc/ControllerRelProvider.java b/src/main/java/org/springframework/hateoas/server/mvc/ControllerRelProvider.java similarity index 93% rename from src/main/java/org/springframework/hateoas/mvc/ControllerRelProvider.java rename to src/main/java/org/springframework/hateoas/server/mvc/ControllerRelProvider.java index dada1b2f..98149709 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ControllerRelProvider.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ControllerRelProvider.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.hateoas.ExposesResourceFor; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.ExposesResourceFor; +import org.springframework.hateoas.server.RelProvider; import org.springframework.plugin.core.PluginRegistry; import org.springframework.util.Assert; diff --git a/src/main/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupport.java b/src/main/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupport.java similarity index 93% rename from src/main/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupport.java rename to src/main/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupport.java index febdb66f..bc720e97 100644 --- a/src/main/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupport.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupport.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.Arrays; import org.springframework.hateoas.Identifiable; -import org.springframework.hateoas.ResourceAssembler; import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.server.ResourceAssembler; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/mvc/JacksonSerializers.java b/src/main/java/org/springframework/hateoas/server/mvc/JacksonSerializers.java similarity index 97% rename from src/main/java/org/springframework/hateoas/mvc/JacksonSerializers.java rename to src/main/java/org/springframework/hateoas/server/mvc/JacksonSerializers.java index 2cbc4017..1f72a1d7 100644 --- a/src/main/java/org/springframework/hateoas/mvc/JacksonSerializers.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/JacksonSerializers.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.io.IOException; diff --git a/src/main/java/org/springframework/hateoas/mvc/ResourceAssemblerSupport.java b/src/main/java/org/springframework/hateoas/server/mvc/ResourceAssemblerSupport.java similarity index 95% rename from src/main/java/org/springframework/hateoas/mvc/ResourceAssemblerSupport.java rename to src/main/java/org/springframework/hateoas/server/mvc/ResourceAssemblerSupport.java index 5f8b72fa..a0220aee 100755 --- a/src/main/java/org/springframework/hateoas/mvc/ResourceAssemblerSupport.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ResourceAssemblerSupport.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.springframework.beans.BeanUtils; -import org.springframework.hateoas.ResourceAssembler; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.server.ResourceAssembler; import org.springframework.util.Assert; /** diff --git a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java similarity index 96% rename from src/main/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java rename to src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java index c35094b3..570a8eed 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandler.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -23,9 +23,10 @@ import java.lang.reflect.Field; import org.springframework.core.MethodParameter; import org.springframework.core.ResolvableType; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceProcessor; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.server.ResourceProcessor; +import org.springframework.hateoas.server.core.HeaderLinksResponseEntity; import org.springframework.http.HttpEntity; import org.springframework.http.ResponseEntity; import org.springframework.util.ReflectionUtils; diff --git a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvoker.java b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvoker.java similarity index 98% rename from src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvoker.java rename to src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvoker.java index 2ee8abb4..50a25d4a 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvoker.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvoker.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.util.ArrayList; import java.util.Arrays; @@ -24,10 +24,10 @@ import org.springframework.core.Ordered; import org.springframework.core.ResolvableType; import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceProcessor; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.core.EmbeddedWrapper; +import org.springframework.hateoas.server.ResourceProcessor; +import org.springframework.hateoas.server.core.EmbeddedWrapper; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; diff --git a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvokingHandlerAdapter.java b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvokingHandlerAdapter.java similarity index 97% rename from src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvokingHandlerAdapter.java rename to src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvokingHandlerAdapter.java index 04648f4b..3e688cb3 100644 --- a/src/main/java/org/springframework/hateoas/mvc/ResourceProcessorInvokingHandlerAdapter.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/ResourceProcessorInvokingHandlerAdapter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -22,7 +22,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; -import org.springframework.hateoas.ResourceProcessor; +import org.springframework.hateoas.server.ResourceProcessor; import org.springframework.util.ReflectionUtils; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite; diff --git a/src/main/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java b/src/main/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java similarity index 98% rename from src/main/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java rename to src/main/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java index 39ef1ef5..975d8b1e 100644 --- a/src/main/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.lang.reflect.Type; import java.util.List; diff --git a/src/main/java/org/springframework/hateoas/mvc/TypeReferences.java b/src/main/java/org/springframework/hateoas/server/mvc/TypeReferences.java similarity index 99% rename from src/main/java/org/springframework/hateoas/mvc/TypeReferences.java rename to src/main/java/org/springframework/hateoas/server/mvc/TypeReferences.java index 00347397..21c8d2c0 100644 --- a/src/main/java/org/springframework/hateoas/mvc/TypeReferences.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/TypeReferences.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.io.Serializable; import java.lang.reflect.ParameterizedType; diff --git a/src/main/java/org/springframework/hateoas/mvc/UriComponentsBuilderFactory.java b/src/main/java/org/springframework/hateoas/server/mvc/UriComponentsBuilderFactory.java similarity index 98% rename from src/main/java/org/springframework/hateoas/mvc/UriComponentsBuilderFactory.java rename to src/main/java/org/springframework/hateoas/server/mvc/UriComponentsBuilderFactory.java index a1921583..45805236 100644 --- a/src/main/java/org/springframework/hateoas/mvc/UriComponentsBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/UriComponentsBuilderFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.net.URI; diff --git a/src/main/java/org/springframework/hateoas/mvc/UriComponentsContributor.java b/src/main/java/org/springframework/hateoas/server/mvc/UriComponentsContributor.java similarity index 93% rename from src/main/java/org/springframework/hateoas/mvc/UriComponentsContributor.java rename to src/main/java/org/springframework/hateoas/server/mvc/UriComponentsContributor.java index 74743d1a..e41bff03 100644 --- a/src/main/java/org/springframework/hateoas/mvc/UriComponentsContributor.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/UriComponentsContributor.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import org.springframework.core.MethodParameter; -import org.springframework.hateoas.MethodLinkBuilderFactory; +import org.springframework.hateoas.server.MethodLinkBuilderFactory; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.util.UriComponentsBuilder; diff --git a/src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilder.java b/src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilder.java similarity index 95% rename from src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilder.java rename to src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilder.java index 35889d70..a457f4ee 100644 --- a/src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.lang.reflect.Method; import java.net.URI; @@ -24,15 +24,14 @@ import java.util.Map; import org.springframework.hateoas.Affordance; import org.springframework.hateoas.Link; import org.springframework.hateoas.TemplateVariables; -import org.springframework.hateoas.core.AnnotationMappingDiscoverer; -import org.springframework.hateoas.core.CachingMappingDiscoverer; -import org.springframework.hateoas.core.DummyInvocationUtils; -import org.springframework.hateoas.core.MappingDiscoverer; -import org.springframework.hateoas.core.TemplateVariableAwareLinkBuilderSupport; -import org.springframework.hateoas.core.UriTemplateFactory; +import org.springframework.hateoas.server.core.AnnotationMappingDiscoverer; +import org.springframework.hateoas.server.core.CachingMappingDiscoverer; +import org.springframework.hateoas.server.core.DummyInvocationUtils; +import org.springframework.hateoas.server.core.MappingDiscoverer; +import org.springframework.hateoas.server.core.TemplateVariableAwareLinkBuilderSupport; +import org.springframework.hateoas.server.core.UriTemplateFactory; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.util.DefaultUriTemplateHandler; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; diff --git a/src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactory.java b/src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactory.java similarity index 93% rename from src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactory.java rename to src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactory.java index 389064a5..cff5af86 100644 --- a/src/main/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactory.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import java.lang.reflect.Method; import java.util.ArrayList; @@ -26,10 +26,10 @@ import java.util.function.Function; import org.springframework.core.MethodParameter; import org.springframework.hateoas.Link; -import org.springframework.hateoas.MethodLinkBuilderFactory; -import org.springframework.hateoas.core.LinkBuilderSupport; -import org.springframework.hateoas.core.MethodParameters; -import org.springframework.hateoas.core.WebHandler; +import org.springframework.hateoas.server.MethodLinkBuilderFactory; +import org.springframework.hateoas.server.core.LinkBuilderSupport; +import org.springframework.hateoas.server.core.MethodParameters; +import org.springframework.hateoas.server.core.WebHandler; import org.springframework.web.util.UriComponentsBuilder; /** diff --git a/src/main/java/org/springframework/hateoas/mvc/package-info.java b/src/main/java/org/springframework/hateoas/server/mvc/package-info.java similarity index 77% rename from src/main/java/org/springframework/hateoas/mvc/package-info.java rename to src/main/java/org/springframework/hateoas/server/mvc/package-info.java index 25579f55..0f536e49 100644 --- a/src/main/java/org/springframework/hateoas/mvc/package-info.java +++ b/src/main/java/org/springframework/hateoas/server/mvc/package-info.java @@ -2,5 +2,5 @@ * Spring MVC helper classes to build {@link org.springframework.hateoas.Link}s and assemble * {@link org.springframework.hateoas.ResourceSupport} types. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; diff --git a/src/main/java/org/springframework/hateoas/reactive/HypermediaWebFilter.java b/src/main/java/org/springframework/hateoas/server/reactive/HypermediaWebFilter.java similarity index 78% rename from src/main/java/org/springframework/hateoas/reactive/HypermediaWebFilter.java rename to src/main/java/org/springframework/hateoas/server/reactive/HypermediaWebFilter.java index 9f38c0ba..1bf572cd 100644 --- a/src/main/java/org/springframework/hateoas/reactive/HypermediaWebFilter.java +++ b/src/main/java/org/springframework/hateoas/server/reactive/HypermediaWebFilter.java @@ -13,17 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import reactor.core.publisher.Mono; import reactor.util.context.Context; + import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; /** * {@link WebFilter} that ensures a copy of the {@link ServerWebExchange} is added to the Reactor {@link Context}. - * + * * @author Greg Turnquist * @since 1.0 */ @@ -31,10 +32,13 @@ public class HypermediaWebFilter implements WebFilter { public static final String SERVER_WEB_EXCHANGE = "serverWebExchange"; + /* + * (non-Javadoc) + * @see org.springframework.web.server.WebFilter#filter(org.springframework.web.server.ServerWebExchange, org.springframework.web.server.WebFilterChain) + */ @Override public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { - - return chain.filter(exchange) - .subscriberContext(Context.of(SERVER_WEB_EXCHANGE, exchange)); + return chain.filter(exchange) // + .subscriberContext(Context.of(SERVER_WEB_EXCHANGE, exchange)); } } diff --git a/src/main/java/org/springframework/hateoas/reactive/ReactiveResourceAssembler.java b/src/main/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssembler.java similarity index 90% rename from src/main/java/org/springframework/hateoas/reactive/ReactiveResourceAssembler.java rename to src/main/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssembler.java index 10b73136..4acc1324 100644 --- a/src/main/java/org/springframework/hateoas/reactive/ReactiveResourceAssembler.java +++ b/src/main/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssembler.java @@ -13,14 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import org.springframework.hateoas.ResourceAssembler; + import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.SimpleResourceAssembler; +import org.springframework.hateoas.server.ResourceAssembler; +import org.springframework.hateoas.server.SimpleResourceAssembler; import org.springframework.web.server.ServerWebExchange; /** diff --git a/src/main/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssembler.java b/src/main/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssembler.java similarity index 93% rename from src/main/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssembler.java rename to src/main/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssembler.java index 97078ecc..8c4baa15 100644 --- a/src/main/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssembler.java +++ b/src/main/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssembler.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceAssembler; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.SimpleResourceAssembler; +import org.springframework.hateoas.server.ResourceAssembler; +import org.springframework.hateoas.server.SimpleResourceAssembler; import org.springframework.web.server.ServerWebExchange; /** diff --git a/src/main/java/org/springframework/hateoas/reactive/WebFluxLinkBuilder.java b/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java similarity index 95% rename from src/main/java/org/springframework/hateoas/reactive/WebFluxLinkBuilder.java rename to src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java index 4d3085d7..0e69bd8b 100644 --- a/src/main/java/org/springframework/hateoas/reactive/WebFluxLinkBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; -import static org.springframework.hateoas.reactive.HypermediaWebFilter.*; +import static org.springframework.hateoas.server.reactive.HypermediaWebFilter.*; import lombok.RequiredArgsConstructor; import reactor.core.publisher.Mono; @@ -28,9 +28,9 @@ import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.TemplateVariables; -import org.springframework.hateoas.core.DummyInvocationUtils; -import org.springframework.hateoas.core.TemplateVariableAwareLinkBuilderSupport; -import org.springframework.hateoas.core.WebHandler; +import org.springframework.hateoas.server.core.DummyInvocationUtils; +import org.springframework.hateoas.server.core.TemplateVariableAwareLinkBuilderSupport; +import org.springframework.hateoas.server.core.WebHandler; import org.springframework.util.Assert; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.util.UriComponents; diff --git a/src/main/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDsl.kt b/src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDsl.kt similarity index 89% rename from src/main/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDsl.kt rename to src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDsl.kt index 36cd307c..a2e07c3d 100644 --- a/src/main/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDsl.kt +++ b/src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDsl.kt @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.springframework.hateoas.mvc +package org.springframework.hateoas.server.mvc import org.springframework.hateoas.Affordance import org.springframework.hateoas.Link -import org.springframework.hateoas.mvc.WebMvcLinkBuilder.afford -import org.springframework.hateoas.mvc.WebMvcLinkBuilder.methodOn +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.afford +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn /** * Create a new [Link] with additional [Affordance]s. diff --git a/src/main/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDsl.kt b/src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDsl.kt similarity index 93% rename from src/main/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDsl.kt rename to src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDsl.kt index af3e5dc6..16749965 100644 --- a/src/main/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDsl.kt +++ b/src/main/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDsl.kt @@ -14,13 +14,13 @@ * limitations under the License. */ -package org.springframework.hateoas.mvc +package org.springframework.hateoas.server.mvc import org.springframework.hateoas.Link import org.springframework.hateoas.LinkRelation import org.springframework.hateoas.ResourceSupport -import org.springframework.hateoas.mvc.WebMvcLinkBuilder.linkTo -import org.springframework.hateoas.mvc.WebMvcLinkBuilder.methodOn +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn import kotlin.reflect.KClass diff --git a/src/main/resources/META-INF/spring.factories b/src/main/resources/META-INF/spring.factories index b876c698..3cdeef4d 100644 --- a/src/main/resources/META-INF/spring.factories +++ b/src/main/resources/META-INF/spring.factories @@ -1,10 +1,13 @@ org.springframework.hateoas.AffordanceModelFactory=\ - org.springframework.hateoas.hal.forms.HalFormsAffordanceModelFactory,\ - org.springframework.hateoas.collectionjson.CollectionJsonAffordanceModelFactory,\ - org.springframework.hateoas.uber.UberAffordanceModelFactory + org.springframework.hateoas.mediatype.collectionjson.CollectionJsonAffordanceModelFactory,\ + org.springframework.hateoas.mediatype.hal.forms.HalFormsAffordanceModelFactory,\ + org.springframework.hateoas.mediatype.uber.UberAffordanceModelFactory org.springframework.hateoas.config.MediaTypeConfigurationProvider=\ - org.springframework.hateoas.collectionjson.CollectionJsonMediaTypeConfigurationProvider,\ - org.springframework.hateoas.hal.HalMediaTypeConfigurationProvider,\ - org.springframework.hateoas.hal.forms.HalFormsMediaTypeConfigurationProvider,\ - org.springframework.hateoas.uber.UberMediaTypeConfigurationProvider + org.springframework.hateoas.mediatype.collectionjson.CollectionJsonMediaTypeConfigurationProvider,\ + org.springframework.hateoas.mediatype.hal.HalMediaTypeConfigurationProvider,\ + org.springframework.hateoas.mediatype.hal.forms.HalFormsMediaTypeConfigurationProvider,\ + org.springframework.hateoas.mediatype.uber.UberMediaTypeConfigurationProvider + +org.springframework.hateoas.client.TraversonDefaults=\ + org.springframework.hateoas.mediatype.hal.HalTraversonDefaults diff --git a/src/test/java/org/springframework/hateoas/LinkDiscoverersUnitTest.java b/src/test/java/org/springframework/hateoas/LinkDiscoverersUnitTest.java index 47d1fad8..14af03e6 100755 --- a/src/test/java/org/springframework/hateoas/LinkDiscoverersUnitTest.java +++ b/src/test/java/org/springframework/hateoas/LinkDiscoverersUnitTest.java @@ -19,7 +19,9 @@ import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.core.Ordered; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverers; import org.springframework.http.MediaType; import org.springframework.plugin.core.OrderAwarePluginRegistry; import org.springframework.plugin.core.PluginRegistry; diff --git a/src/test/java/org/springframework/hateoas/SimpleResourceAssemblerTest.java b/src/test/java/org/springframework/hateoas/SimpleResourceAssemblerTest.java index fb08b9c7..1c548c8e 100644 --- a/src/test/java/org/springframework/hateoas/SimpleResourceAssemblerTest.java +++ b/src/test/java/org/springframework/hateoas/SimpleResourceAssemblerTest.java @@ -23,6 +23,7 @@ import lombok.Data; import java.util.Collections; import org.junit.Test; +import org.springframework.hateoas.server.SimpleResourceAssembler; /** * @author Greg Turnquist diff --git a/src/test/java/org/springframework/hateoas/VndErrorsMarshallingTest.java b/src/test/java/org/springframework/hateoas/VndErrorsMarshallingTest.java index 56c1929b..0e442403 100755 --- a/src/test/java/org/springframework/hateoas/VndErrorsMarshallingTest.java +++ b/src/test/java/org/springframework/hateoas/VndErrorsMarshallingTest.java @@ -26,9 +26,11 @@ import java.nio.charset.Charset; import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; -import org.springframework.hateoas.VndErrors.VndError; -import org.springframework.hateoas.core.EvoInflectorRelProvider; -import org.springframework.hateoas.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.vnderrors.VndErrors; +import org.springframework.hateoas.mediatype.vnderrors.VndErrors.VndError; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.EvoInflectorRelProvider; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; diff --git a/src/test/java/org/springframework/hateoas/VndErrorsUnitTest.java b/src/test/java/org/springframework/hateoas/VndErrorsUnitTest.java index 18f68bc8..48f9d697 100755 --- a/src/test/java/org/springframework/hateoas/VndErrorsUnitTest.java +++ b/src/test/java/org/springframework/hateoas/VndErrorsUnitTest.java @@ -18,7 +18,8 @@ package org.springframework.hateoas; import static org.assertj.core.api.Assertions.*; import org.junit.Test; -import org.springframework.hateoas.VndErrors.VndError; +import org.springframework.hateoas.mediatype.vnderrors.VndErrors; +import org.springframework.hateoas.mediatype.vnderrors.VndErrors.VndError; /** * Unit tests for {@link VndErrors}. diff --git a/src/test/java/org/springframework/hateoas/client/Server.java b/src/test/java/org/springframework/hateoas/client/Server.java index 0974b297..c4f21a06 100644 --- a/src/test/java/org/springframework/hateoas/client/Server.java +++ b/src/test/java/org/springframework/hateoas/client/Server.java @@ -29,11 +29,11 @@ import org.springframework.core.io.ResourceLoader; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.core.EvoInflectorRelProvider; -import org.springframework.hateoas.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.EvoInflectorRelProvider; import org.springframework.http.MediaType; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; diff --git a/src/test/java/org/springframework/hateoas/client/TraversonTest.java b/src/test/java/org/springframework/hateoas/client/TraversonTest.java index 7935867c..615eb37d 100755 --- a/src/test/java/org/springframework/hateoas/client/TraversonTest.java +++ b/src/test/java/org/springframework/hateoas/client/TraversonTest.java @@ -37,7 +37,6 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.Resource; import org.springframework.hateoas.client.Traverson.TraversalBuilder; -import org.springframework.hateoas.core.JsonPathLinkDiscoverer; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpRequest; import org.springframework.http.MediaType; @@ -74,7 +73,6 @@ public class TraversonTest { @Before public void setUp() { - this.traverson = new Traverson(baseUri, MediaTypes.HAL_JSON_UTF8, MediaTypes.HAL_JSON); } @@ -274,7 +272,7 @@ public class TraversonTest { @Test public void returnsDefaultMessageConverters() { - List> converters = Traverson.getDefaultMessageConverters(Collections.emptyList()); + List> converters = Traverson.getDefaultMessageConverters(); assertThat(converters).hasSize(1); assertThat(converters.get(0)).isInstanceOf(StringHttpMessageConverter.class); diff --git a/src/test/java/org/springframework/hateoas/config/reactive/CustomHypermediaWebFluxTest.java b/src/test/java/org/springframework/hateoas/config/CustomHypermediaWebFluxTest.java similarity index 90% rename from src/test/java/org/springframework/hateoas/config/reactive/CustomHypermediaWebFluxTest.java rename to src/test/java/org/springframework/hateoas/config/CustomHypermediaWebFluxTest.java index 946f34e2..d87842e7 100644 --- a/src/test/java/org/springframework/hateoas/config/reactive/CustomHypermediaWebFluxTest.java +++ b/src/test/java/org/springframework/hateoas/config/CustomHypermediaWebFluxTest.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.reactive; +package org.springframework.hateoas.config; -import static org.springframework.hateoas.reactive.WebFluxLinkBuilder.*; +import static org.springframework.hateoas.server.reactive.WebFluxLinkBuilder.*; import static org.springframework.hateoas.support.CustomHypermediaType.*; import static org.springframework.hateoas.support.MappingUtils.*; @@ -30,7 +30,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.config.EnableHypermediaSupport; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; import org.springframework.hateoas.support.CustomHypermediaType; import org.springframework.hateoas.support.Employee; @@ -70,7 +69,7 @@ public class CustomHypermediaWebFluxTest { .expectStatus().isOk() // .expectHeader().contentType(FRODO_MEDIATYPE.toString()) // .expectBody(String.class) // - .isEqualTo(read(new ClassPathResource("frodo.json", getClass()))); + .isEqualTo(read(new ClassPathResource("webflux-frodo.json", getClass()))); } @Configuration @@ -95,8 +94,9 @@ public class CustomHypermediaWebFluxTest { @GetMapping("/employees/1") public Mono> findOne() { - return linkTo(methodOn(EmployeeController.class).findOne()).withSelfRel().toMono() - .map(link -> new Resource<>(new Employee("Frodo Baggins", "ring bearer"), link)); + return linkTo(methodOn(EmployeeController.class).findOne()).withSelfRel() // + .toMono() // + .map(link -> new Resource<>(new Employee("Frodo Baggins", "ring bearer"), link)); // } } } diff --git a/src/test/java/org/springframework/hateoas/config/mvc/CustomHypermediaWebMvcTest.java b/src/test/java/org/springframework/hateoas/config/CustomHypermediaWebMvcTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/config/mvc/CustomHypermediaWebMvcTest.java rename to src/test/java/org/springframework/hateoas/config/CustomHypermediaWebMvcTest.java index bfaf2c7e..34d5a17c 100644 --- a/src/test/java/org/springframework/hateoas/config/mvc/CustomHypermediaWebMvcTest.java +++ b/src/test/java/org/springframework/hateoas/config/CustomHypermediaWebMvcTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.mvc; +package org.springframework.hateoas.config; import static org.assertj.core.api.AssertionsForClassTypes.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.hateoas.support.CustomHypermediaType.*; import static org.springframework.hateoas.support.MappingUtils.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; @@ -31,7 +31,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.config.EnableHypermediaSupport; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; import org.springframework.hateoas.support.CustomHypermediaType; import org.springframework.hateoas.support.Employee; @@ -72,7 +71,7 @@ public class CustomHypermediaWebMvcTest { .getResponse() // .getContentAsString(); - assertThat(results).isEqualTo(read(new ClassPathResource("frodo.json", getClass()))); + assertThat(results).isEqualTo(read(new ClassPathResource("webmvc-frodo.json", getClass()))); } @Configuration diff --git a/src/test/java/org/springframework/hateoas/config/EnableEntityLinksIntegrationTest.java b/src/test/java/org/springframework/hateoas/config/EnableEntityLinksIntegrationTest.java index 8e6b1e60..da33b3f8 100755 --- a/src/test/java/org/springframework/hateoas/config/EnableEntityLinksIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/config/EnableEntityLinksIntegrationTest.java @@ -22,8 +22,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.hateoas.ExposesResourceFor; -import org.springframework.hateoas.core.DelegatingEntityLinks; +import org.springframework.hateoas.server.ExposesResourceFor; +import org.springframework.hateoas.server.core.DelegatingEntityLinks; import org.springframework.stereotype.Controller; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; diff --git a/src/test/java/org/springframework/hateoas/config/EnableHypermediaSupportIntegrationTest.java b/src/test/java/org/springframework/hateoas/config/EnableHypermediaSupportIntegrationTest.java index e8c055c3..3369eb83 100755 --- a/src/test/java/org/springframework/hateoas/config/EnableHypermediaSupportIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/config/EnableHypermediaSupportIntegrationTest.java @@ -16,7 +16,7 @@ package org.springframework.hateoas.config; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.hal.HalConfiguration.RenderSingleLinks.*; +import static org.springframework.hateoas.mediatype.hal.HalConfiguration.RenderSingleLinks.*; import static org.springframework.hateoas.support.ContextTester.*; import java.lang.reflect.Method; @@ -31,22 +31,22 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.hateoas.EntityLinks; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.LinkDiscoverers; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.ResourceSupport; -import org.springframework.hateoas.collectionjson.CollectionJsonLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverers; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.core.DelegatingEntityLinks; -import org.springframework.hateoas.core.DelegatingRelProvider; -import org.springframework.hateoas.hal.HalConfiguration; -import org.springframework.hateoas.hal.HalLinkDiscoverer; -import org.springframework.hateoas.hal.forms.HalFormsLinkDiscoverer; -import org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; -import org.springframework.hateoas.uber.UberLinkDiscoverer; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJsonLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.HalConfiguration; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsLinkDiscoverer; +import org.springframework.hateoas.mediatype.uber.UberLinkDiscoverer; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.DelegatingEntityLinks; +import org.springframework.hateoas.server.core.DelegatingRelProvider; +import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter; diff --git a/src/test/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelectorUnitTest.java b/src/test/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelectorUnitTest.java index 9dc553ef..c6fc7f7f 100644 --- a/src/test/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelectorUnitTest.java +++ b/src/test/java/org/springframework/hateoas/config/HypermediaConfigurationImportSelectorUnitTest.java @@ -22,11 +22,11 @@ import static org.springframework.hateoas.support.ContextTester.*; import java.util.Map; import org.junit.Test; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.collectionjson.CollectionJsonLinkDiscoverer; -import org.springframework.hateoas.hal.HalLinkDiscoverer; -import org.springframework.hateoas.hal.forms.HalFormsLinkDiscoverer; -import org.springframework.hateoas.uber.UberLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJsonLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsLinkDiscoverer; +import org.springframework.hateoas.mediatype.uber.UberLinkDiscoverer; /** * Unit tests for {@link HypermediaConfigurationImportSelector}. diff --git a/src/test/java/org/springframework/hateoas/config/mvc/HypermediaRestTemplateBeanPostProcessorTest.java b/src/test/java/org/springframework/hateoas/config/HypermediaRestTemplateBeanPostProcessorTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/config/mvc/HypermediaRestTemplateBeanPostProcessorTest.java rename to src/test/java/org/springframework/hateoas/config/HypermediaRestTemplateBeanPostProcessorTest.java index f0e9ea28..2a068836 100644 --- a/src/test/java/org/springframework/hateoas/config/mvc/HypermediaRestTemplateBeanPostProcessorTest.java +++ b/src/test/java/org/springframework/hateoas/config/HypermediaRestTemplateBeanPostProcessorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.mvc; +package org.springframework.hateoas.config; import static org.assertj.core.api.AssertionsForInterfaceTypes.*; import static org.springframework.hateoas.support.ContextTester.*; diff --git a/src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebClientBeanPostProcessorTest.java b/src/test/java/org/springframework/hateoas/config/HypermediaWebClientBeanPostProcessorTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebClientBeanPostProcessorTest.java rename to src/test/java/org/springframework/hateoas/config/HypermediaWebClientBeanPostProcessorTest.java index 36abd55b..49ddc16b 100644 --- a/src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebClientBeanPostProcessorTest.java +++ b/src/test/java/org/springframework/hateoas/config/HypermediaWebClientBeanPostProcessorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.reactive; +package org.springframework.hateoas.config; import static org.assertj.core.api.Assertions.*; import static org.springframework.hateoas.support.ContextTester.*; @@ -37,7 +37,7 @@ import org.springframework.hateoas.client.Movie; import org.springframework.hateoas.client.Server; import org.springframework.hateoas.config.EnableHypermediaSupport; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.mvc.TypeReferences.ResourceType; +import org.springframework.hateoas.server.mvc.TypeReferences.ResourceType; import org.springframework.web.reactive.function.client.WebClient; /** diff --git a/src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebFluxConfigurerTest.java b/src/test/java/org/springframework/hateoas/config/HypermediaWebFluxConfigurerTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebFluxConfigurerTest.java rename to src/test/java/org/springframework/hateoas/config/HypermediaWebFluxConfigurerTest.java index 189b84d8..7ab55f40 100644 --- a/src/test/java/org/springframework/hateoas/config/reactive/HypermediaWebFluxConfigurerTest.java +++ b/src/test/java/org/springframework/hateoas/config/HypermediaWebFluxConfigurerTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.config.reactive; +package org.springframework.hateoas.config; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; @@ -38,10 +38,11 @@ import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.SimpleResourceAssembler; import org.springframework.hateoas.config.EnableHypermediaSupport; -import org.springframework.hateoas.mvc.TypeReferences.ResourceType; -import org.springframework.hateoas.mvc.TypeReferences.ResourcesType; +import org.springframework.hateoas.config.WebClientConfigurer; +import org.springframework.hateoas.server.SimpleResourceAssembler; +import org.springframework.hateoas.server.mvc.TypeReferences.ResourceType; +import org.springframework.hateoas.server.mvc.TypeReferences.ResourcesType; import org.springframework.hateoas.support.Employee; import org.springframework.http.MediaType; import org.springframework.test.web.reactive.server.WebTestClient; diff --git a/src/test/java/org/springframework/hateoas/config/XmlConfigurationIntegrationTest.java b/src/test/java/org/springframework/hateoas/config/XmlConfigurationIntegrationTest.java index 75b594e8..840397e0 100755 --- a/src/test/java/org/springframework/hateoas/config/XmlConfigurationIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/config/XmlConfigurationIntegrationTest.java @@ -21,8 +21,8 @@ import org.junit.Test; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.server.RelProvider; /** * Integration tests for using {@link EnableHypermediaSupport} from within XML documents. diff --git a/src/test/java/org/springframework/hateoas/alps/AlpsLinkDiscoverUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverUnitTest.java similarity index 88% rename from src/test/java/org/springframework/hateoas/alps/AlpsLinkDiscoverUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverUnitTest.java index bc78cdd6..13f25e9d 100755 --- a/src/test/java/org/springframework/hateoas/alps/AlpsLinkDiscoverUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/alps/AlpsLinkDiscoverUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import static org.assertj.core.api.Assertions.*; @@ -24,8 +24,9 @@ import java.util.Optional; import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.core.AbstractLinkDiscovererUnitTest; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.alps.AlpsLinkDiscoverer; +import org.springframework.hateoas.server.core.AbstractLinkDiscovererUnitTest; import org.springframework.util.StreamUtils; /** diff --git a/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java b/src/test/java/org/springframework/hateoas/mediatype/alps/JacksonSerializationTest.java similarity index 88% rename from src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/alps/JacksonSerializationTest.java index 565f846d..1a045cc8 100755 --- a/src/test/java/org/springframework/hateoas/alps/JacksonSerializationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/alps/JacksonSerializationTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.alps; +package org.springframework.hateoas.mediatype.alps; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.alps.Alps.*; +import static org.springframework.hateoas.mediatype.alps.Alps.*; import java.io.IOException; import java.util.Arrays; @@ -26,6 +26,10 @@ import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; +import org.springframework.hateoas.mediatype.alps.Alps; +import org.springframework.hateoas.mediatype.alps.Doc; +import org.springframework.hateoas.mediatype.alps.Format; +import org.springframework.hateoas.mediatype.alps.Type; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscovererUnitTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscovererUnitTest.java index e1e8c600..c6b89d1f 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonLinkDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.assertj.core.api.Assertions.*; @@ -24,7 +24,8 @@ import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJsonLinkDiscoverer; import org.springframework.hateoas.support.MappingUtils; /** diff --git a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonSpecTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonSpecTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonSpecTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonSpecTest.java index 5111a5e3..336e2d0d 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonSpecTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonSpecTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.assertj.core.api.Assertions.*; @@ -31,6 +31,7 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule; import org.springframework.hateoas.support.Employee; import org.springframework.hateoas.support.MappingUtils; diff --git a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebFluxIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebFluxIntegrationTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebFluxIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebFluxIntegrationTest.java index 52ee8343..306883ef 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebFluxIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebFluxIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; @@ -30,8 +30,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.config.EnableHypermediaSupport; +import org.springframework.hateoas.config.WebClientConfigurer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.config.reactive.WebClientConfigurer; import org.springframework.hateoas.support.WebFluxEmployeeController; import org.springframework.http.HttpHeaders; import org.springframework.test.context.ContextConfiguration; diff --git a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebMvcIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebMvcIntegrationTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebMvcIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebMvcIntegrationTest.java index 6faad7a5..549810c0 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/CollectionJsonWebMvcIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/CollectionJsonWebMvcIntegrationTest.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; diff --git a/src/test/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonIntegrationTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonIntegrationTest.java index 76196a21..5fc92980 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/Jackson2CollectionJsonIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/Jackson2CollectionJsonIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.assertj.core.api.Assertions.*; @@ -36,7 +36,8 @@ import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.hal.SimplePojo; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule; +import org.springframework.hateoas.mediatype.hal.SimplePojo; import org.springframework.hateoas.support.MappingUtils; import com.fasterxml.jackson.databind.SerializationFeature; diff --git a/src/test/java/org/springframework/hateoas/collectionjson/JacksonSerializationTest.java b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/JacksonSerializationTest.java similarity index 87% rename from src/test/java/org/springframework/hateoas/collectionjson/JacksonSerializationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/collectionjson/JacksonSerializationTest.java index 12e24b5f..85885ae9 100644 --- a/src/test/java/org/springframework/hateoas/collectionjson/JacksonSerializationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/collectionjson/JacksonSerializationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.collectionjson; +package org.springframework.hateoas.mediatype.collectionjson; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -25,6 +25,9 @@ import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJson; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJsonItem; +import org.springframework.hateoas.mediatype.collectionjson.Jackson2CollectionJsonModule; import org.springframework.hateoas.support.MappingUtils; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/org/springframework/hateoas/hal/DefaultCurieProviderUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProviderUnitTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/hal/DefaultCurieProviderUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProviderUnitTest.java index bf7173af..0ba45455 100755 --- a/src/test/java/org/springframework/hateoas/hal/DefaultCurieProviderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/DefaultCurieProviderUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import static org.assertj.core.api.Assertions.*; @@ -27,7 +27,10 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.Links; import org.springframework.hateoas.UriTemplate; -import org.springframework.hateoas.hal.DefaultCurieProvider.Curie; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider; +import org.springframework.hateoas.mediatype.hal.HalLinkRelation; +import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider.Curie; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; diff --git a/src/test/java/org/springframework/hateoas/hal/HalConfigurationUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/HalConfigurationUnitTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/hal/HalConfigurationUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/HalConfigurationUnitTest.java index e103e42a..34f286f4 100644 --- a/src/test/java/org/springframework/hateoas/hal/HalConfigurationUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/HalConfigurationUnitTest.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.hal.HalConfiguration.RenderSingleLinks; +import org.springframework.hateoas.mediatype.hal.HalConfiguration; +import org.springframework.hateoas.mediatype.hal.HalConfiguration.RenderSingleLinks; /** * Unit tests for {@link HalConfiguration}. diff --git a/src/test/java/org/springframework/hateoas/hal/HalEmbeddedBuilderUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilderUnitTest.java similarity index 89% rename from src/test/java/org/springframework/hateoas/hal/HalEmbeddedBuilderUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilderUnitTest.java index 682c4424..73743e9f 100755 --- a/src/test/java/org/springframework/hateoas/hal/HalEmbeddedBuilderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/HalEmbeddedBuilderUnitTest.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import static org.springframework.hateoas.hal.HalLinkRelation.*; +import static org.springframework.hateoas.mediatype.hal.HalLinkRelation.*; import java.util.List; import java.util.Map; @@ -25,11 +25,15 @@ import java.util.Map; import org.junit.Before; import org.junit.Test; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; import org.springframework.hateoas.UriTemplate; -import org.springframework.hateoas.core.EmbeddedWrapper; -import org.springframework.hateoas.core.EmbeddedWrappers; -import org.springframework.hateoas.core.EvoInflectorRelProvider; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider; +import org.springframework.hateoas.mediatype.hal.HalEmbeddedBuilder; +import org.springframework.hateoas.mediatype.hal.HalLinkRelation; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.EmbeddedWrapper; +import org.springframework.hateoas.server.core.EmbeddedWrappers; +import org.springframework.hateoas.server.core.EvoInflectorRelProvider; /** * Unit tests for {@link HalEmbeddedBuilder}. diff --git a/src/test/java/org/springframework/hateoas/hal/HalLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscovererUnitTest.java similarity index 91% rename from src/test/java/org/springframework/hateoas/hal/HalLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscovererUnitTest.java index 924da7a5..9831e8f5 100755 --- a/src/test/java/org/springframework/hateoas/hal/HalLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/HalLinkDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import static org.assertj.core.api.Assertions.*; import static org.springframework.hateoas.support.MappingUtils.*; @@ -24,9 +24,10 @@ import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.MediaTypes; -import org.springframework.hateoas.core.AbstractLinkDiscovererUnitTest; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; +import org.springframework.hateoas.server.core.AbstractLinkDiscovererUnitTest; /** * Unit tests for {@link HalLinkDiscoverer}. diff --git a/src/test/java/org/springframework/hateoas/hal/Jackson2HalIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/Jackson2HalIntegrationTest.java similarity index 96% rename from src/test/java/org/springframework/hateoas/hal/Jackson2HalIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/Jackson2HalIntegrationTest.java index 59093879..03a7d24a 100755 --- a/src/test/java/org/springframework/hateoas/hal/Jackson2HalIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/Jackson2HalIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import static org.assertj.core.api.Assertions.*; @@ -37,14 +37,18 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.PagedResources.PageMetadata; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider; +import org.springframework.hateoas.mediatype.hal.HalConfiguration; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; +import org.springframework.hateoas.mediatype.hal.HalConfiguration.RenderSingleLinks; +import org.springframework.hateoas.mediatype.hal.Jackson2HalModule.HalHandlerInstantiator; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; import org.springframework.hateoas.UriTemplate; -import org.springframework.hateoas.core.AnnotationRelProvider; -import org.springframework.hateoas.core.EmbeddedWrappers; -import org.springframework.hateoas.hal.HalConfiguration.RenderSingleLinks; -import org.springframework.hateoas.hal.Jackson2HalModule.HalHandlerInstantiator; +import org.springframework.hateoas.server.core.AnnotationRelProvider; +import org.springframework.hateoas.server.core.EmbeddedWrappers; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/org/springframework/hateoas/hal/RenderHypermediaForDefaultAcceptHeadersTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/RenderHypermediaForDefaultAcceptHeadersTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/hal/RenderHypermediaForDefaultAcceptHeadersTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/RenderHypermediaForDefaultAcceptHeadersTest.java index 048d853f..ede2a319 100644 --- a/src/test/java/org/springframework/hateoas/hal/RenderHypermediaForDefaultAcceptHeadersTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/RenderHypermediaForDefaultAcceptHeadersTest.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; diff --git a/src/test/java/org/springframework/hateoas/hal/SimpleAnnotatedPojo.java b/src/test/java/org/springframework/hateoas/mediatype/hal/SimpleAnnotatedPojo.java similarity index 69% rename from src/test/java/org/springframework/hateoas/hal/SimpleAnnotatedPojo.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/SimpleAnnotatedPojo.java index 27dbb8d1..b89b9903 100644 --- a/src/test/java/org/springframework/hateoas/hal/SimpleAnnotatedPojo.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/SimpleAnnotatedPojo.java @@ -1,6 +1,6 @@ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; -import org.springframework.hateoas.core.Relation; +import org.springframework.hateoas.server.core.Relation; @Relation(value = "pojo", collectionRelation = "pojos") public class SimpleAnnotatedPojo extends SimplePojo { diff --git a/src/test/java/org/springframework/hateoas/hal/SimplePojo.java b/src/test/java/org/springframework/hateoas/mediatype/hal/SimplePojo.java similarity index 80% rename from src/test/java/org/springframework/hateoas/hal/SimplePojo.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/SimplePojo.java index e75c58bf..b41f62ba 100644 --- a/src/test/java/org/springframework/hateoas/hal/SimplePojo.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/SimplePojo.java @@ -1,4 +1,4 @@ -package org.springframework.hateoas.hal; +package org.springframework.hateoas.mediatype.hal; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscovererUnitTest.java similarity index 89% rename from src/test/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscovererUnitTest.java index 6e70ed5f..50e33b1d 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsLinkDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.assertj.core.api.Assertions.*; import static org.springframework.hateoas.support.MappingUtils.*; @@ -24,8 +24,9 @@ import org.junit.Test; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.core.AbstractLinkDiscovererUnitTest; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsLinkDiscoverer; +import org.springframework.hateoas.server.core.AbstractLinkDiscovererUnitTest; /** * Unit tests for {@link HalFormsLinkDiscoverer}. diff --git a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsMessageConverterUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMessageConverterUnitTest.java similarity index 90% rename from src/test/java/org/springframework/hateoas/hal/forms/HalFormsMessageConverterUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMessageConverterUnitTest.java index 48eb74fe..8fa57123 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsMessageConverterUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsMessageConverterUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.CoreMatchers.instanceOf; @@ -32,7 +32,11 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.ResourceSupport; -import org.springframework.hateoas.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsDocument; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsProperty; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsTemplate; +import org.springframework.hateoas.mediatype.hal.forms.Jackson2HalFormsModule; +import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpInputMessage; import org.springframework.http.HttpMethod; diff --git a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsValidationIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsValidationIntegrationTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/hal/forms/HalFormsValidationIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsValidationIntegrationTest.java index de4dff1f..686c320c 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsValidationIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsValidationIntegrationTest.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; diff --git a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebFluxIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebFluxIntegrationTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebFluxIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebFluxIntegrationTest.java index 1fc7df5c..50166f32 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebFluxIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebFluxIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; @@ -29,8 +29,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.config.EnableHypermediaSupport; +import org.springframework.hateoas.config.WebClientConfigurer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.config.reactive.WebClientConfigurer; import org.springframework.hateoas.support.MappingUtils; import org.springframework.hateoas.support.WebFluxEmployeeController; import org.springframework.http.HttpHeaders; diff --git a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebMvcIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebMvcIntegrationTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebMvcIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebMvcIntegrationTest.java index ec96d251..6e7d2a63 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/HalFormsWebMvcIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/HalFormsWebMvcIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; diff --git a/src/test/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsIntegrationTest.java similarity index 95% rename from src/test/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsIntegrationTest.java index 7384211b..c0a0351a 100644 --- a/src/test/java/org/springframework/hateoas/hal/forms/Jackson2HalFormsIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/hal/forms/Jackson2HalFormsIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.hal.forms; +package org.springframework.hateoas.mediatype.hal.forms; import static org.assertj.core.api.Assertions.*; @@ -41,13 +41,15 @@ import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; import org.springframework.hateoas.UriTemplate; -import org.springframework.hateoas.core.AnnotationRelProvider; -import org.springframework.hateoas.core.EmbeddedWrappers; -import org.springframework.hateoas.hal.CurieProvider; -import org.springframework.hateoas.hal.DefaultCurieProvider; -import org.springframework.hateoas.hal.SimpleAnnotatedPojo; -import org.springframework.hateoas.hal.SimplePojo; -import org.springframework.hateoas.hal.forms.Jackson2HalFormsModule.HalFormsHandlerInstantiator; +import org.springframework.hateoas.mediatype.hal.CurieProvider; +import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider; +import org.springframework.hateoas.mediatype.hal.SimpleAnnotatedPojo; +import org.springframework.hateoas.mediatype.hal.SimplePojo; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsConfiguration; +import org.springframework.hateoas.mediatype.hal.forms.Jackson2HalFormsModule; +import org.springframework.hateoas.mediatype.hal.forms.Jackson2HalFormsModule.HalFormsHandlerInstantiator; +import org.springframework.hateoas.server.core.AnnotationRelProvider; +import org.springframework.hateoas.server.core.EmbeddedWrappers; import org.springframework.hateoas.support.MappingUtils; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/src/test/java/org/springframework/hateoas/uber/Jackson2UberIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/uber/Jackson2UberIntegrationTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/uber/Jackson2UberIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/uber/Jackson2UberIntegrationTest.java index 0f011a68..8165e3d4 100644 --- a/src/test/java/org/springframework/hateoas/uber/Jackson2UberIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/uber/Jackson2UberIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import static org.assertj.core.api.Assertions.*; @@ -38,6 +38,7 @@ import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.mediatype.uber.Jackson2UberModule; import org.springframework.hateoas.support.MappingUtils; import com.fasterxml.jackson.databind.JavaType; diff --git a/src/test/java/org/springframework/hateoas/uber/UberLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscovererUnitTest.java similarity index 84% rename from src/test/java/org/springframework/hateoas/uber/UberLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscovererUnitTest.java index c17e5e53..13d2d330 100644 --- a/src/test/java/org/springframework/hateoas/uber/UberLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/uber/UberLinkDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import static org.assertj.core.api.Assertions.*; import static org.springframework.hateoas.support.MappingUtils.*; @@ -23,9 +23,10 @@ import java.io.IOException; import org.junit.Before; import org.junit.Test; import org.springframework.core.io.ClassPathResource; -import org.springframework.hateoas.LinkDiscoverer; -import org.springframework.hateoas.core.AbstractLinkDiscovererUnitTest; -import org.springframework.hateoas.hal.HalLinkDiscoverer; +import org.springframework.hateoas.client.LinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.HalLinkDiscoverer; +import org.springframework.hateoas.mediatype.uber.UberLinkDiscoverer; +import org.springframework.hateoas.server.core.AbstractLinkDiscovererUnitTest; /** * Unit tests for {@link HalLinkDiscoverer}. diff --git a/src/test/java/org/springframework/hateoas/uber/UberWebFluxIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/uber/UberWebFluxIntegrationTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/uber/UberWebFluxIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/uber/UberWebFluxIntegrationTest.java index 53bb9b61..1b3b80a2 100644 --- a/src/test/java/org/springframework/hateoas/uber/UberWebFluxIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/uber/UberWebFluxIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; @@ -30,8 +30,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.config.EnableHypermediaSupport; +import org.springframework.hateoas.config.WebClientConfigurer; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.config.reactive.WebClientConfigurer; import org.springframework.hateoas.support.WebFluxEmployeeController; import org.springframework.http.HttpHeaders; import org.springframework.test.context.ContextConfiguration; diff --git a/src/test/java/org/springframework/hateoas/uber/UberWebMvcIntegrationTest.java b/src/test/java/org/springframework/hateoas/mediatype/uber/UberWebMvcIntegrationTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/uber/UberWebMvcIntegrationTest.java rename to src/test/java/org/springframework/hateoas/mediatype/uber/UberWebMvcIntegrationTest.java index 0db0cfd7..0138925f 100644 --- a/src/test/java/org/springframework/hateoas/uber/UberWebMvcIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/mediatype/uber/UberWebMvcIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.uber; +package org.springframework.hateoas.mediatype.uber; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; diff --git a/src/test/java/org/springframework/hateoas/core/AbstractLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/AbstractLinkDiscovererUnitTest.java similarity index 96% rename from src/test/java/org/springframework/hateoas/core/AbstractLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/AbstractLinkDiscovererUnitTest.java index 17ef6b0c..83b4d7fa 100755 --- a/src/test/java/org/springframework/hateoas/core/AbstractLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/AbstractLinkDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; @@ -22,8 +22,8 @@ import java.io.InputStream; import org.junit.Test; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkDiscoverer; import org.springframework.hateoas.Links; +import org.springframework.hateoas.client.LinkDiscoverer; /** * Base class for unit tests for {@link LinkDiscoverer} implementations. diff --git a/src/test/java/org/springframework/hateoas/core/AnnotationMappingDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/AnnotationMappingDiscovererUnitTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/core/AnnotationMappingDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/AnnotationMappingDiscovererUnitTest.java index 663a919c..6fc3f106 100755 --- a/src/test/java/org/springframework/hateoas/core/AnnotationMappingDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/AnnotationMappingDiscovererUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; diff --git a/src/test/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBeanUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBeanUnitTest.java similarity index 88% rename from src/test/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBeanUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBeanUnitTest.java index 949f9682..4d05c7b8 100755 --- a/src/test/java/org/springframework/hateoas/core/ControllerEntityLinksFactoryBeanUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksFactoryBeanUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; @@ -22,9 +22,9 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; -import org.springframework.hateoas.core.ControllerEntityLinksUnitTest.Person; -import org.springframework.hateoas.core.ControllerEntityLinksUnitTest.SampleController; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderFactory; +import org.springframework.hateoas.server.core.ControllerEntityLinksUnitTest.Person; +import org.springframework.hateoas.server.core.ControllerEntityLinksUnitTest.SampleController; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderFactory; import org.springframework.stereotype.Controller; /** diff --git a/src/test/java/org/springframework/hateoas/core/ControllerEntityLinksUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksUnitTest.java similarity index 91% rename from src/test/java/org/springframework/hateoas/core/ControllerEntityLinksUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksUnitTest.java index dfb2ce63..9d875b5b 100755 --- a/src/test/java/org/springframework/hateoas/core/ControllerEntityLinksUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/ControllerEntityLinksUnitTest.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static java.util.Collections.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.Arrays; @@ -28,11 +28,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.hateoas.EntityLinks; -import org.springframework.hateoas.ExposesResourceFor; -import org.springframework.hateoas.LinkBuilder; -import org.springframework.hateoas.LinkBuilderFactory; import org.springframework.hateoas.TestUtils; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.ExposesResourceFor; +import org.springframework.hateoas.server.LinkBuilder; +import org.springframework.hateoas.server.LinkBuilderFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/src/test/java/org/springframework/hateoas/core/DelegatingEntityLinksUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/DelegatingEntityLinksUnitTest.java similarity index 93% rename from src/test/java/org/springframework/hateoas/core/DelegatingEntityLinksUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/DelegatingEntityLinksUnitTest.java index c2695911..901b7302 100755 --- a/src/test/java/org/springframework/hateoas/core/DelegatingEntityLinksUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/DelegatingEntityLinksUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -25,9 +25,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.hateoas.EntityLinks; -import org.springframework.hateoas.ExposesResourceFor; import org.springframework.hateoas.TestUtils; +import org.springframework.hateoas.server.EntityLinks; +import org.springframework.hateoas.server.ExposesResourceFor; import org.springframework.plugin.core.SimplePluginRegistry; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/src/test/java/org/springframework/hateoas/core/DelegatingRelProviderUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/DelegatingRelProviderUnitTest.java similarity index 83% rename from src/test/java/org/springframework/hateoas/core/DelegatingRelProviderUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/DelegatingRelProviderUnitTest.java index 0a74427f..2220879e 100755 --- a/src/test/java/org/springframework/hateoas/core/DelegatingRelProviderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/DelegatingRelProviderUnitTest.java @@ -13,13 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.AnnotationRelProvider; +import org.springframework.hateoas.server.core.DefaultRelProvider; +import org.springframework.hateoas.server.core.DelegatingRelProvider; +import org.springframework.hateoas.server.core.Relation; import org.springframework.plugin.core.OrderAwarePluginRegistry; import org.springframework.plugin.core.PluginRegistry; diff --git a/src/test/java/org/springframework/hateoas/core/EmbeddedWrappersUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/EmbeddedWrappersUnitTest.java similarity index 91% rename from src/test/java/org/springframework/hateoas/core/EmbeddedWrappersUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/EmbeddedWrappersUnitTest.java index bbe99b0f..345823ac 100755 --- a/src/test/java/org/springframework/hateoas/core/EmbeddedWrappersUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/EmbeddedWrappersUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; @@ -22,6 +22,8 @@ import java.util.Collections; import org.junit.Test; import org.springframework.hateoas.LinkRelation; +import org.springframework.hateoas.server.core.EmbeddedWrapper; +import org.springframework.hateoas.server.core.EmbeddedWrappers; /** * Unit tests for {@link EmbeddedWrappers}. diff --git a/src/test/java/org/springframework/hateoas/core/EvoInflectorRelProviderUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/EvoInflectorRelProviderUnitTest.java similarity index 88% rename from src/test/java/org/springframework/hateoas/core/EvoInflectorRelProviderUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/EvoInflectorRelProviderUnitTest.java index 8073077c..72a8bb98 100755 --- a/src/test/java/org/springframework/hateoas/core/EvoInflectorRelProviderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/EvoInflectorRelProviderUnitTest.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; import org.junit.Test; import org.springframework.hateoas.LinkRelation; -import org.springframework.hateoas.RelProvider; +import org.springframework.hateoas.server.RelProvider; +import org.springframework.hateoas.server.core.EvoInflectorRelProvider; /** * Unit tests for {@link EvoInflectorRelProvider}. diff --git a/src/test/java/org/springframework/hateoas/core/JsonPathLinkDiscovererUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/JsonPathLinkDiscovererUnitTest.java similarity index 89% rename from src/test/java/org/springframework/hateoas/core/JsonPathLinkDiscovererUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/JsonPathLinkDiscovererUnitTest.java index 9edf7361..874ae8d6 100755 --- a/src/test/java/org/springframework/hateoas/core/JsonPathLinkDiscovererUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/JsonPathLinkDiscovererUnitTest.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import org.junit.Test; +import org.springframework.hateoas.client.JsonPathLinkDiscoverer; import org.springframework.http.MediaType; /** diff --git a/src/test/java/org/springframework/hateoas/core/LinkBuilderSupportUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/LinkBuilderSupportUnitTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/core/LinkBuilderSupportUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/LinkBuilderSupportUnitTest.java index dc252848..ff710f07 100755 --- a/src/test/java/org/springframework/hateoas/core/LinkBuilderSupportUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/LinkBuilderSupportUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; diff --git a/src/test/java/org/springframework/hateoas/core/MethodParametersUnitTest.java b/src/test/java/org/springframework/hateoas/server/core/MethodParametersUnitTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/core/MethodParametersUnitTest.java rename to src/test/java/org/springframework/hateoas/server/core/MethodParametersUnitTest.java index d12280e1..90be7a0a 100755 --- a/src/test/java/org/springframework/hateoas/core/MethodParametersUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/core/MethodParametersUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.core; +package org.springframework.hateoas.server.core; import static org.assertj.core.api.Assertions.*; diff --git a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactoryUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactoryUnitTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactoryUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactoryUnitTest.java index f5c40b14..f1df734c 100755 --- a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderFactoryUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderFactoryUnitTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.ControllerLinkBuilder.*; import java.util.Arrays; import java.util.Collections; @@ -32,9 +32,11 @@ import org.springframework.format.annotation.DateTimeFormat.ISO; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.TestUtils; -import org.springframework.hateoas.mvc.ControllerLinkBuilderUnitTest.ControllerWithMethods; -import org.springframework.hateoas.mvc.ControllerLinkBuilderUnitTest.PersonControllerImpl; -import org.springframework.hateoas.mvc.ControllerLinkBuilderUnitTest.PersonsAddressesController; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilderFactory; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilderUnitTest.ControllerWithMethods; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilderUnitTest.PersonControllerImpl; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilderUnitTest.PersonsAddressesController; import org.springframework.http.HttpEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; diff --git a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java similarity index 88% rename from src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java index c8ca9982..6bc2cd8b 100755 --- a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderOutsideSpringMvcUnitTest.java @@ -13,14 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.ControllerLinkBuilder.*; import org.junit.Before; import org.junit.Test; import org.springframework.hateoas.Link; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilder; import org.springframework.web.context.request.RequestContextHolder; /** diff --git a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderUnitTest.java similarity index 98% rename from src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderUnitTest.java index 275a4b0d..2ca61a84 100755 --- a/src/test/java/org/springframework/hateoas/mvc/ControllerLinkBuilderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/ControllerLinkBuilderUnitTest.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; -import static org.springframework.hateoas.mvc.ControllerLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.ControllerLinkBuilder.*; import java.lang.reflect.Method; import java.util.Arrays; @@ -34,6 +34,7 @@ import org.springframework.hateoas.Identifiable; import org.springframework.hateoas.Link; import org.springframework.hateoas.TemplateVariable; import org.springframework.hateoas.TemplateVariable.VariableType; +import org.springframework.hateoas.server.mvc.ControllerLinkBuilder; import org.springframework.hateoas.TestUtils; import org.springframework.http.HttpEntity; import org.springframework.util.MultiValueMap; diff --git a/src/test/java/org/springframework/hateoas/mvc/DummyInvocationUtilsUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/DummyInvocationUtilsUnitTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/mvc/DummyInvocationUtilsUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/DummyInvocationUtilsUnitTest.java index c74a0c1f..7bb7358b 100755 --- a/src/test/java/org/springframework/hateoas/mvc/DummyInvocationUtilsUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/DummyInvocationUtilsUnitTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import org.junit.Test; import org.springframework.hateoas.Link; diff --git a/src/test/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntityUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/HeaderLinksResponseEntityUnitTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntityUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/HeaderLinksResponseEntityUnitTest.java index 017e4f34..2679ab1d 100755 --- a/src/test/java/org/springframework/hateoas/mvc/HeaderLinksResponseEntityUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/HeaderLinksResponseEntityUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; @@ -22,6 +22,7 @@ import java.util.List; import org.junit.Test; import org.springframework.hateoas.Link; import org.springframework.hateoas.Resource; +import org.springframework.hateoas.server.core.HeaderLinksResponseEntity; import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/test/java/org/springframework/hateoas/mvc/HttpEntityMatcher.java b/src/test/java/org/springframework/hateoas/server/mvc/HttpEntityMatcher.java similarity index 97% rename from src/test/java/org/springframework/hateoas/mvc/HttpEntityMatcher.java rename to src/test/java/org/springframework/hateoas/server/mvc/HttpEntityMatcher.java index 316e89e7..0e0cb2d4 100644 --- a/src/test/java/org/springframework/hateoas/mvc/HttpEntityMatcher.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/HttpEntityMatcher.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/src/test/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupportUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupportUnitTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupportUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupportUnitTest.java index 2f6f0101..b2024621 100755 --- a/src/test/java/org/springframework/hateoas/mvc/IdentifiableResourceAssemblerSupportUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/IdentifiableResourceAssemblerSupportUnitTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.Arrays; import java.util.List; @@ -27,10 +27,11 @@ import org.junit.Test; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Identifiable; import org.springframework.hateoas.Link; -import org.springframework.hateoas.LinkBuilder; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; import org.springframework.hateoas.TestUtils; +import org.springframework.hateoas.server.LinkBuilder; +import org.springframework.hateoas.server.mvc.IdentifiableResourceAssemblerSupport; import org.springframework.web.bind.annotation.RequestMapping; /** diff --git a/src/test/java/org/springframework/hateoas/mvc/MultiMediaTypeWebMvcIntegrationTest.java b/src/test/java/org/springframework/hateoas/server/mvc/MultiMediaTypeWebMvcIntegrationTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/mvc/MultiMediaTypeWebMvcIntegrationTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/MultiMediaTypeWebMvcIntegrationTest.java index 4a3b6b13..e5d12aae 100644 --- a/src/test/java/org/springframework/hateoas/mvc/MultiMediaTypeWebMvcIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/MultiMediaTypeWebMvcIntegrationTest.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.collection.IsCollectionWithSize.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; @@ -44,6 +44,9 @@ import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; import org.springframework.hateoas.config.EnableHypermediaSupport; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; +import org.springframework.hateoas.mediatype.collectionjson.CollectionJsonLinkDiscoverer; +import org.springframework.hateoas.mediatype.hal.forms.HalFormsLinkDiscoverer; +import org.springframework.hateoas.mediatype.uber.UberLinkDiscoverer; import org.springframework.hateoas.support.Employee; import org.springframework.hateoas.support.MappingUtils; import org.springframework.http.HttpHeaders; @@ -160,7 +163,7 @@ public class MultiMediaTypeWebMvcIntegrationTest { public void createNewEmployeeCollectionJson() throws Exception { String specBasedJson = MappingUtils - .read(new ClassPathResource("../collectionjson/spec-part7-adjusted.json", getClass())); + .read(new ClassPathResource("spec-part7-adjusted.json", CollectionJsonLinkDiscoverer.class)); this.mockMvc.perform(post("/employees").content(specBasedJson).contentType(MediaTypes.COLLECTION_JSON_VALUE)) .andExpect(status().isCreated()) @@ -243,7 +246,7 @@ public class MultiMediaTypeWebMvcIntegrationTest { @Test public void createNewEmployeeHalForms() throws Exception { - String specBasedJson = MappingUtils.read(new ClassPathResource("../hal/forms/new-employee.json", getClass())); + String specBasedJson = MappingUtils.read(new ClassPathResource("new-employee.json", HalFormsLinkDiscoverer.class)); this.mockMvc.perform(post("/employees").content(specBasedJson).contentType(MediaTypes.HAL_FORMS_JSON_VALUE)) .andExpect(status().isCreated()) @@ -387,7 +390,7 @@ public class MultiMediaTypeWebMvcIntegrationTest { @Test public void createNewEmployeeUber() throws Exception { - String input = MappingUtils.read(new ClassPathResource("../uber/create-employee.json", getClass())); + String input = MappingUtils.read(new ClassPathResource("create-employee.json", UberLinkDiscoverer.class)); this.mockMvc.perform(post("/employees").content(input).contentType(MediaTypes.UBER_JSON)) .andExpect(status().isCreated()) diff --git a/src/test/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java index c4a9a210..15eee0cf 100644 --- a/src/test/java/org/springframework/hateoas/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/ResourceProcessorHandlerMethodReturnValueHandlerUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; @@ -42,10 +42,12 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.PagedResources; import org.springframework.hateoas.PagedResources.PageMetadata; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.ResourceProcessor; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.core.EmbeddedWrappers; -import org.springframework.hateoas.mvc.ResourceProcessorInvoker.ResourcesProcessorWrapper; +import org.springframework.hateoas.server.ResourceProcessor; +import org.springframework.hateoas.server.core.EmbeddedWrappers; +import org.springframework.hateoas.server.core.HeaderLinksResponseEntity; +import org.springframework.hateoas.server.mvc.ResourceProcessorInvoker; +import org.springframework.hateoas.server.mvc.ResourceProcessorInvoker.ResourcesProcessorWrapper; import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/test/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java index 00bada2b..f97589cf 100755 --- a/src/test/java/org/springframework/hateoas/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/TypeConstrainedMappingJackson2HttpMessageConverterUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; import static org.springframework.http.MediaType.*; @@ -21,6 +21,7 @@ import static org.springframework.http.MediaType.*; import org.junit.Test; import org.springframework.hateoas.Resource; import org.springframework.hateoas.ResourceSupport; +import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter; import org.springframework.http.converter.GenericHttpMessageConverter; /** diff --git a/src/test/java/org/springframework/hateoas/mvc/TypeReferencesIntegrationTest.java b/src/test/java/org/springframework/hateoas/server/mvc/TypeReferencesIntegrationTest.java similarity index 96% rename from src/test/java/org/springframework/hateoas/mvc/TypeReferencesIntegrationTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/TypeReferencesIntegrationTest.java index 4f26f45a..dfc85a6e 100755 --- a/src/test/java/org/springframework/hateoas/mvc/TypeReferencesIntegrationTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/TypeReferencesIntegrationTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; import static org.springframework.test.web.client.MockRestServiceServer.*; @@ -35,8 +35,9 @@ import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; import org.springframework.hateoas.config.EnableHypermediaSupport; import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType; -import org.springframework.hateoas.mvc.TypeReferences.ResourceType; -import org.springframework.hateoas.mvc.TypeReferences.ResourcesType; +import org.springframework.hateoas.server.mvc.TypeReferences; +import org.springframework.hateoas.server.mvc.TypeReferences.ResourceType; +import org.springframework.hateoas.server.mvc.TypeReferences.ResourcesType; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.test.context.ContextConfiguration; diff --git a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactoryUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactoryUnitTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactoryUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactoryUnitTest.java index 5126e64e..e1a03c2e 100644 --- a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderFactoryUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderFactoryUnitTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.Arrays; import java.util.Collections; @@ -32,9 +32,11 @@ import org.springframework.format.annotation.DateTimeFormat.ISO; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.TestUtils; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderUnitTest.ControllerWithMethods; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderUnitTest.PersonControllerImpl; -import org.springframework.hateoas.mvc.WebMvcLinkBuilderUnitTest.PersonsAddressesController; +import org.springframework.hateoas.server.mvc.UriComponentsContributor; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderFactory; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderUnitTest.ControllerWithMethods; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderUnitTest.PersonControllerImpl; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilderUnitTest.PersonsAddressesController; import org.springframework.http.HttpEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; diff --git a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java similarity index 92% rename from src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java index 7ad175d8..037537ff 100644 --- a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderOutsideSpringMvcUnitTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderUnitTest.java b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderUnitTest.java similarity index 99% rename from src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderUnitTest.java rename to src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderUnitTest.java index 780c334a..9905e6bf 100644 --- a/src/test/java/org/springframework/hateoas/mvc/WebMvcLinkBuilderUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderUnitTest.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.mvc; +package org.springframework.hateoas.server.mvc; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.lang.reflect.Method; import java.util.Arrays; diff --git a/src/test/java/org/springframework/hateoas/reactive/HypermediaWebFilterTest.java b/src/test/java/org/springframework/hateoas/server/reactive/HypermediaWebFilterTest.java similarity index 94% rename from src/test/java/org/springframework/hateoas/reactive/HypermediaWebFilterTest.java rename to src/test/java/org/springframework/hateoas/server/reactive/HypermediaWebFilterTest.java index 785cdf76..21c07194 100644 --- a/src/test/java/org/springframework/hateoas/reactive/HypermediaWebFilterTest.java +++ b/src/test/java/org/springframework/hateoas/server/reactive/HypermediaWebFilterTest.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import static org.assertj.core.api.AssertionsForInterfaceTypes.*; import static org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType.*; -import static org.springframework.hateoas.reactive.WebFluxLinkBuilder.*; +import static org.springframework.hateoas.server.reactive.WebFluxLinkBuilder.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -32,7 +32,7 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.MediaTypes; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.config.EnableHypermediaSupport; -import org.springframework.hateoas.config.reactive.WebClientConfigurer; +import org.springframework.hateoas.config.WebClientConfigurer; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/src/test/java/org/springframework/hateoas/reactive/ReactiveResourceAssemblerUnitTest.java b/src/test/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssemblerUnitTest.java similarity index 97% rename from src/test/java/org/springframework/hateoas/reactive/ReactiveResourceAssemblerUnitTest.java rename to src/test/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssemblerUnitTest.java index d872b384..b2d53bbb 100644 --- a/src/test/java/org/springframework/hateoas/reactive/ReactiveResourceAssemblerUnitTest.java +++ b/src/test/java/org/springframework/hateoas/server/reactive/ReactiveResourceAssemblerUnitTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -33,6 +33,7 @@ import org.junit.Test; import org.springframework.hateoas.Link; import org.springframework.hateoas.ResourceSupport; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.server.reactive.ReactiveResourceAssembler; import org.springframework.web.server.ServerWebExchange; /** diff --git a/src/test/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssemblerTest.java b/src/test/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssemblerTest.java similarity index 96% rename from src/test/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssemblerTest.java rename to src/test/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssemblerTest.java index 06c5041f..a5603eb9 100644 --- a/src/test/java/org/springframework/hateoas/reactive/SimpleReactiveResourceAssemblerTest.java +++ b/src/test/java/org/springframework/hateoas/server/reactive/SimpleReactiveResourceAssemblerTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import static org.assertj.core.api.Assertions.*; @@ -27,6 +27,7 @@ import reactor.test.StepVerifier; import org.springframework.hateoas.Link; import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; +import org.springframework.hateoas.server.reactive.SimpleReactiveResourceAssembler; import org.springframework.web.server.ServerWebExchange; /** diff --git a/src/test/java/org/springframework/hateoas/reactive/WebFluxLinkBuilderTest.java b/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java similarity index 96% rename from src/test/java/org/springframework/hateoas/reactive/WebFluxLinkBuilderTest.java rename to src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java index 65b36242..f85f2872 100644 --- a/src/test/java/org/springframework/hateoas/reactive/WebFluxLinkBuilderTest.java +++ b/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.hateoas.reactive; +package org.springframework.hateoas.server.reactive; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.methodOn; -import static org.springframework.hateoas.reactive.HypermediaWebFilter.*; -import static org.springframework.hateoas.reactive.WebFluxLinkBuilder.linkTo; +import static org.springframework.hateoas.server.reactive.HypermediaWebFilter.*; +import static org.springframework.hateoas.server.reactive.WebFluxLinkBuilder.*; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; diff --git a/src/test/java/org/springframework/hateoas/support/PropertyUtilsTest.java b/src/test/java/org/springframework/hateoas/support/PropertyUtilsTest.java index bba5c8d9..9060067e 100644 --- a/src/test/java/org/springframework/hateoas/support/PropertyUtilsTest.java +++ b/src/test/java/org/springframework/hateoas/support/PropertyUtilsTest.java @@ -28,7 +28,8 @@ import java.util.Map; import org.junit.Test; import org.springframework.core.ResolvableType; import org.springframework.hateoas.Resource; -import org.springframework.hateoas.core.MethodParameters; +import org.springframework.hateoas.mediatype.PropertyUtils; +import org.springframework.hateoas.server.core.MethodParameters; import org.springframework.util.ReflectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/src/test/java/org/springframework/hateoas/support/WebFluxEmployeeController.java b/src/test/java/org/springframework/hateoas/support/WebFluxEmployeeController.java index 453ff264..d7a17b91 100644 --- a/src/test/java/org/springframework/hateoas/support/WebFluxEmployeeController.java +++ b/src/test/java/org/springframework/hateoas/support/WebFluxEmployeeController.java @@ -15,7 +15,7 @@ */ package org.springframework.hateoas.support; -import static org.springframework.hateoas.reactive.WebFluxLinkBuilder.*; +import static org.springframework.hateoas.server.reactive.WebFluxLinkBuilder.*; import static reactor.function.TupleUtils.*; import reactor.core.publisher.Flux; @@ -32,7 +32,7 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.Links; import org.springframework.hateoas.Resource; import org.springframework.hateoas.Resources; -import org.springframework.hateoas.reactive.WebFluxLinkBuilder; +import org.springframework.hateoas.server.reactive.WebFluxLinkBuilder; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; diff --git a/src/test/java/org/springframework/hateoas/support/WebMvcEmployeeController.java b/src/test/java/org/springframework/hateoas/support/WebMvcEmployeeController.java index dc54e8f8..8baa5dc5 100644 --- a/src/test/java/org/springframework/hateoas/support/WebMvcEmployeeController.java +++ b/src/test/java/org/springframework/hateoas/support/WebMvcEmployeeController.java @@ -15,7 +15,7 @@ */ package org.springframework.hateoas.support; -import static org.springframework.hateoas.mvc.WebMvcLinkBuilder.*; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.net.URI; import java.net.URISyntaxException; diff --git a/src/test/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDslUnitTest.kt b/src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDslUnitTest.kt similarity index 98% rename from src/test/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDslUnitTest.kt rename to src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDslUnitTest.kt index d6e1e503..25b6bf5e 100644 --- a/src/test/kotlin/org/springframework/hateoas/mvc/WebMvcAffordanceBuilderDslUnitTest.kt +++ b/src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcAffordanceBuilderDslUnitTest.kt @@ -18,6 +18,7 @@ package org.springframework.hateoas.mvc import org.assertj.core.api.Assertions.assertThat import org.junit.Test import org.springframework.hateoas.* +import org.springframework.hateoas.server.mvc.* import org.springframework.http.HttpMethod import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* diff --git a/src/test/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDslUnitTest.kt b/src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDslUnitTest.kt similarity index 98% rename from src/test/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDslUnitTest.kt rename to src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDslUnitTest.kt index 240a5d25..ef9a2555 100644 --- a/src/test/kotlin/org/springframework/hateoas/mvc/WebMvcLinkBuilderDslUnitTest.kt +++ b/src/test/kotlin/org/springframework/hateoas/server/mvc/WebMvcLinkBuilderDslUnitTest.kt @@ -18,6 +18,7 @@ package org.springframework.hateoas.mvc import org.assertj.core.api.Assertions.assertThat import org.junit.Test import org.springframework.hateoas.* +import org.springframework.hateoas.server.mvc.* import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* diff --git a/src/test/resources/org/springframework/hateoas/config/mvc/frodo.json b/src/test/resources/org/springframework/hateoas/config/webflux-frodo.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/config/mvc/frodo.json rename to src/test/resources/org/springframework/hateoas/config/webflux-frodo.json diff --git a/src/test/resources/org/springframework/hateoas/config/reactive/frodo.json b/src/test/resources/org/springframework/hateoas/config/webmvc-frodo.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/config/reactive/frodo.json rename to src/test/resources/org/springframework/hateoas/config/webmvc-frodo.json diff --git a/src/test/resources/org/springframework/hateoas/alps/link-discoverer.json b/src/test/resources/org/springframework/hateoas/mediatype/alps/link-discoverer.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/alps/link-discoverer.json rename to src/test/resources/org/springframework/hateoas/mediatype/alps/link-discoverer.json diff --git a/src/test/resources/org/springframework/hateoas/alps/reference.json b/src/test/resources/org/springframework/hateoas/mediatype/alps/reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/alps/reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/alps/reference.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/paged-resources.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/paged-resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/paged-resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/paged-resources.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/reference.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/reference.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resource-support-2.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support-2.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resource-support-2.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support-2.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resource-support-3.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support-3.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resource-support-3.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support-3.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resource-support.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resource-support.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource-support.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resource.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resource.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resource.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resources-simple-pojos.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources-simple-pojos.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resources-simple-pojos.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources-simple-pojos.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resources-with-resource-objects.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources-with-resource-objects.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resources-with-resource-objects.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources-with-resource-objects.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/resources.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/resources.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/single-reactive-employee.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/single-reactive-employee.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/single-reactive-employee.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/single-reactive-employee.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part1.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part1.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part1.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part1.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part2.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part2.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part2.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part2.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part3.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part3.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part3.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part3.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part4.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part4.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part4.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part4.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part5.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part5.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part5.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part5.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part6.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part6.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part6.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part6.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part7-adjusted.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part7-adjusted.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part7-adjusted.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part7-adjusted.json diff --git a/src/test/resources/org/springframework/hateoas/collectionjson/spec-part7.json b/src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part7.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/collectionjson/spec-part7.json rename to src/test/resources/org/springframework/hateoas/mediatype/collectionjson/spec-part7.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/annotated-embedded-resources-reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-embedded-resources-reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/annotated-embedded-resources-reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-embedded-resources-reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/annotated-paged-resources.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-paged-resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/annotated-paged-resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-paged-resources.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/annotated-resource-resources.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-resource-resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/annotated-resource-resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/annotated-resource-resources.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/curied-document.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/curied-document.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/curied-document.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/curied-document.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/empty-document.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/empty-document.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/empty-document.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/empty-document.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/empty-embedded-pojos.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/empty-embedded-pojos.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/empty-embedded-pojos.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/empty-embedded-pojos.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/hal-forms-link-discoverer.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/hal-forms-link-discoverer.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/hal-forms-link-discoverer.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/hal-forms-link-discoverer.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/hal-forms-link.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/hal-forms-link.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/hal-forms-link.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/hal-forms-link.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/link-template.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/link-template.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/link-template.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/link-template.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/link-with-title.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/link-with-title.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/link-with-title.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/link-with-title.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/list-link-reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/list-link-reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/list-link-reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/list-link-reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/multiple-curies-document.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/multiple-curies-document.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/multiple-curies-document.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/multiple-curies-document.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/multiple-resource-resources.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/multiple-resource-resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/multiple-resource-resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/multiple-resource-resources.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/new-employee.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/new-employee.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/new-employee.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/new-employee.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/simple-embedded-resource-reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/simple-embedded-resource-reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/simple-embedded-resource-reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/simple-embedded-resource-reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/simple-resource-unwrapped.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/simple-resource-unwrapped.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/simple-resource-unwrapped.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/simple-resource-unwrapped.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/single-embedded-resource-reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-embedded-resource-reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/single-embedded-resource-reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-embedded-resource-reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/single-link-reference.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-link-reference.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/single-link-reference.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-link-reference.json diff --git a/src/test/resources/org/springframework/hateoas/hal/forms/single-non-curie-document.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-non-curie-document.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/forms/single-non-curie-document.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/forms/single-non-curie-document.json diff --git a/src/test/resources/org/springframework/hateoas/hal/hal-link-discoverer.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/hal-link-discoverer.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/hal-link-discoverer.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/hal-link-discoverer.json diff --git a/src/test/resources/org/springframework/hateoas/hal/hal-link.json b/src/test/resources/org/springframework/hateoas/mediatype/hal/hal-link.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/hal/hal-link.json rename to src/test/resources/org/springframework/hateoas/mediatype/hal/hal-link.json diff --git a/src/test/resources/org/springframework/hateoas/uber/create-employee.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/create-employee.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/create-employee.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/create-employee.json diff --git a/src/test/resources/org/springframework/hateoas/uber/link-discovery.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/link-discovery.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/link-discovery.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/link-discovery.json diff --git a/src/test/resources/org/springframework/hateoas/uber/paged-resources-empty-page.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/paged-resources-empty-page.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/paged-resources-empty-page.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/paged-resources-empty-page.json diff --git a/src/test/resources/org/springframework/hateoas/uber/paged-resources.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/paged-resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/paged-resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/paged-resources.json diff --git a/src/test/resources/org/springframework/hateoas/uber/reference-links-only.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/reference-links-only.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/reference-links-only.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/reference-links-only.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-support-2.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-2.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-support-2.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-2.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-support-pojo-empty.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-pojo-empty.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-support-pojo-empty.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-pojo-empty.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-support-pojo.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-pojo.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-support-pojo.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support-pojo.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-support.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-support.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-support.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-with-empty-pojo.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-empty-pojo.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-with-empty-pojo.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-empty-pojo.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-with-simple-pojo.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-simple-pojo.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-with-simple-pojo.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-simple-pojo.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource-with-templated-link.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-templated-link.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource-with-templated-link.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource-with-templated-link.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource2.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource2.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource2.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource2.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource3.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource3.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource3.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource3.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resource4.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resource4.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resource4.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resource4.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resources-with-empty-resource-objects.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-empty-resource-objects.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resources-with-empty-resource-objects.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-empty-resource-objects.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resources-with-resource-objects-and-empty-value.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-resource-objects-and-empty-value.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resources-with-resource-objects-and-empty-value.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-resource-objects-and-empty-value.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resources-with-resource-objects.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-resource-objects.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resources-with-resource-objects.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resources-with-resource-objects.json diff --git a/src/test/resources/org/springframework/hateoas/uber/resources.json b/src/test/resources/org/springframework/hateoas/mediatype/uber/resources.json similarity index 100% rename from src/test/resources/org/springframework/hateoas/uber/resources.json rename to src/test/resources/org/springframework/hateoas/mediatype/uber/resources.json