#130 - Removed @Inherited annotation from @EnableHypermediaSupport.
This commit is contained in:
@@ -17,7 +17,6 @@ package org.springframework.hateoas.config;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Inherited;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
@@ -44,7 +43,6 @@ import org.springframework.hateoas.LinkDiscoverer;
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Inherited
|
||||
@Documented
|
||||
@Import(HypermediaSupportBeanDefinitionRegistrar.class)
|
||||
public @interface EnableHypermediaSupport {
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
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.LinkDiscoverer;
|
||||
import org.springframework.hateoas.LinkDiscoverers;
|
||||
@@ -56,21 +57,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
public class EnableHypermediaSupportIntegrationTest {
|
||||
|
||||
@Test
|
||||
@SuppressWarnings({ "unchecked" })
|
||||
public void bootstrapHalConfiguration() {
|
||||
|
||||
ApplicationContext context = new AnnotationConfigApplicationContext(HalConfig.class);
|
||||
assertEntityLinksSetUp(context);
|
||||
assertThat(context.getBean(LinkDiscoverer.class), is(instanceOf(HalLinkDiscoverer.class)));
|
||||
assertThat(context.getBean(ObjectMapper.class), is(notNullValue()));
|
||||
|
||||
RequestMappingHandlerAdapter rmha = context.getBean(RequestMappingHandlerAdapter.class);
|
||||
assertThat(rmha.getMessageConverters(), Matchers.<HttpMessageConverter<?>> hasItems(
|
||||
instanceOf(MappingJackson2HttpMessageConverter.class), instanceOf(MappingJacksonHttpMessageConverter.class)));
|
||||
|
||||
AnnotationMethodHandlerAdapter amha = context.getBean(AnnotationMethodHandlerAdapter.class);
|
||||
assertThat(Arrays.asList(amha.getMessageConverters()), Matchers.<HttpMessageConverter<?>> hasItems(
|
||||
instanceOf(MappingJackson2HttpMessageConverter.class), instanceOf(MappingJacksonHttpMessageConverter.class)));
|
||||
assertHalSetupForConfigClass(HalConfig.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -84,6 +72,11 @@ public class EnableHypermediaSupportIntegrationTest {
|
||||
assertRelProvidersSetUp(context);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
assertHalSetupForConfigClass(ExtendedHalConfig.class);
|
||||
}
|
||||
|
||||
private static void assertEntityLinksSetUp(ApplicationContext context) {
|
||||
|
||||
Map<String, EntityLinks> discoverers = context.getBeansOfType(EntityLinks.class);
|
||||
@@ -96,8 +89,25 @@ public class EnableHypermediaSupportIntegrationTest {
|
||||
assertThat(discoverers.values(), Matchers.<RelProvider> hasItem(instanceOf(DelegatingRelProvider.class)));
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked" })
|
||||
private static void assertHalSetupForConfigClass(Class<?> configClass) {
|
||||
|
||||
ApplicationContext context = new AnnotationConfigApplicationContext(configClass);
|
||||
assertEntityLinksSetUp(context);
|
||||
assertThat(context.getBean(LinkDiscoverer.class), is(instanceOf(HalLinkDiscoverer.class)));
|
||||
assertThat(context.getBean(ObjectMapper.class), is(notNullValue()));
|
||||
|
||||
RequestMappingHandlerAdapter rmha = context.getBean(RequestMappingHandlerAdapter.class);
|
||||
assertThat(rmha.getMessageConverters(), Matchers.<HttpMessageConverter<?>> hasItems(
|
||||
instanceOf(MappingJackson2HttpMessageConverter.class), instanceOf(MappingJacksonHttpMessageConverter.class)));
|
||||
|
||||
AnnotationMethodHandlerAdapter amha = context.getBean(AnnotationMethodHandlerAdapter.class);
|
||||
assertThat(Arrays.asList(amha.getMessageConverters()), Matchers.<HttpMessageConverter<?>> hasItems(
|
||||
instanceOf(MappingJackson2HttpMessageConverter.class), instanceOf(MappingJacksonHttpMessageConverter.class)));
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableHypermediaSupport(type = HypermediaType.HAL)
|
||||
@Import(DelegateConfig.class)
|
||||
static class HalConfig {
|
||||
|
||||
static int numberOfMessageConverters = 0;
|
||||
@@ -117,4 +127,15 @@ public class EnableHypermediaSupportIntegrationTest {
|
||||
return adapter;
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class ExtendedHalConfig extends HalConfig {
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableHypermediaSupport(type = HypermediaType.HAL)
|
||||
static class DelegateConfig {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user