Add @EnableEntityLinks to hypermedia support
This commit is contained in:
parent
2ddf322a65
commit
571a82fe90
|
@ -23,11 +23,14 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.hateoas.EntityLinks;
|
||||
import org.springframework.hateoas.LinkDiscoverers;
|
||||
import org.springframework.hateoas.Resource;
|
||||
import org.springframework.hateoas.config.EnableEntityLinks;
|
||||
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
||||
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
||||
import org.springframework.plugin.core.Plugin;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
/**
|
||||
* {@link EnableAutoConfiguration Auto-configuration} for Spring HATEOAS's
|
||||
|
@ -38,17 +41,21 @@ import org.springframework.plugin.core.Plugin;
|
|||
* @since 1.1.0
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(Resource.class)
|
||||
@ConditionalOnMissingBean(LinkDiscoverers.class)
|
||||
@ConditionalOnClass({ Resource.class, RequestMapping.class, Plugin.class })
|
||||
@ConditionalOnWebApplication
|
||||
@AutoConfigureAfter(WebMvcAutoConfiguration.class)
|
||||
public class HypermediaAutoConfiguration {
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnMissingBean(LinkDiscoverers.class)
|
||||
@EnableHypermediaSupport(type = HypermediaType.HAL)
|
||||
@ConditionalOnClass(Plugin.class)
|
||||
@ConditionalOnWebApplication
|
||||
protected static class HypermediaConfiguration {
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnMissingBean(EntityLinks.class)
|
||||
@EnableEntityLinks
|
||||
protected static class EntityLinksConfiguration {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.springframework.boot.autoconfigure.hateoas;
|
|||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.hateoas.EntityLinks;
|
||||
import org.springframework.hateoas.LinkDiscoverer;
|
||||
import org.springframework.hateoas.LinkDiscoverers;
|
||||
import org.springframework.hateoas.MediaTypes;
|
||||
|
@ -58,6 +59,15 @@ public class HypermediaAutoConfigurationTests {
|
|||
assertTrue(HalLinkDiscoverer.class.isInstance(discoverer));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void entityLinksCreated() throws Exception {
|
||||
this.context = new AnnotationConfigWebApplicationContext();
|
||||
this.context.register(HypermediaAutoConfiguration.class);
|
||||
this.context.refresh();
|
||||
EntityLinks discoverers = this.context.getBean(EntityLinks.class);
|
||||
assertNotNull(discoverers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesBackOffIfEnableHypermediaSupportIsDeclaredManually() {
|
||||
|
||||
|
|
Loading…
Reference in New Issue