|
|
@ -1,5 +1,5 @@
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* Copyright 2012-2020 the original author or authors.
|
|
|
|
* Copyright 2012-2021 the original author or authors.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
@ -22,18 +22,21 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|
|
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
|
|
|
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
|
|
|
|
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
|
|
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import org.springframework.context.annotation.Import;
|
|
|
|
|
|
|
|
import org.springframework.hateoas.EntityModel;
|
|
|
|
import org.springframework.hateoas.EntityModel;
|
|
|
|
import org.springframework.hateoas.client.LinkDiscoverers;
|
|
|
|
import org.springframework.hateoas.client.LinkDiscoverers;
|
|
|
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
|
|
|
import org.springframework.hateoas.config.EnableHypermediaSupport;
|
|
|
|
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
|
|
|
import org.springframework.hateoas.config.EnableHypermediaSupport.HypermediaType;
|
|
|
|
|
|
|
|
import org.springframework.hateoas.mediatype.hal.HalConfiguration;
|
|
|
|
|
|
|
|
import org.springframework.http.MediaType;
|
|
|
|
import org.springframework.plugin.core.Plugin;
|
|
|
|
import org.springframework.plugin.core.Plugin;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
|
|
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
|
|
@ -53,9 +56,17 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl
|
|
|
|
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class,
|
|
|
|
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class,
|
|
|
|
HttpMessageConvertersAutoConfiguration.class, RepositoryRestMvcAutoConfiguration.class })
|
|
|
|
HttpMessageConvertersAutoConfiguration.class, RepositoryRestMvcAutoConfiguration.class })
|
|
|
|
@EnableConfigurationProperties(HateoasProperties.class)
|
|
|
|
@EnableConfigurationProperties(HateoasProperties.class)
|
|
|
|
@Import(HypermediaHttpMessageConverterConfiguration.class)
|
|
|
|
|
|
|
|
public class HypermediaAutoConfiguration {
|
|
|
|
public class HypermediaAutoConfiguration {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
|
|
|
@ConditionalOnMissingBean
|
|
|
|
|
|
|
|
@ConditionalOnClass(name = "com.fasterxml.jackson.databind.ObjectMapper")
|
|
|
|
|
|
|
|
@ConditionalOnProperty(prefix = "spring.hateoas", name = "use-hal-as-default-json-media-type",
|
|
|
|
|
|
|
|
matchIfMissing = true)
|
|
|
|
|
|
|
|
HalConfiguration applicationJsonHalConfiguration() {
|
|
|
|
|
|
|
|
return new HalConfiguration().withMediaType(MediaType.APPLICATION_JSON);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration(proxyBeanMethods = false)
|
|
|
|
@Configuration(proxyBeanMethods = false)
|
|
|
|
@ConditionalOnMissingBean(LinkDiscoverers.class)
|
|
|
|
@ConditionalOnMissingBean(LinkDiscoverers.class)
|
|
|
|
@ConditionalOnClass(ObjectMapper.class)
|
|
|
|
@ConditionalOnClass(ObjectMapper.class)
|
|
|
|