Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
654479a696 | ||
|
|
35b9de7f6e | ||
|
|
2294dee616 | ||
|
|
dabbfb7220 | ||
|
|
3e069b41af | ||
|
|
ead4c47fcb | ||
|
|
eda905684d | ||
|
|
2c73498398 | ||
|
|
ebd80b5115 | ||
|
|
866d20d976 | ||
|
|
27380898a8 | ||
|
|
d5031f8618 | ||
|
|
b5539198e6 | ||
|
|
36d63a1b9f |
+1
-1
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-openfeign</artifactId>
|
||||
<version>2.2.0.M1</version>
|
||||
<version>2.2.0.M2</version>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-openfeign-docs</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
spring-cloud-openfeign.adoc
|
||||
@@ -4,14 +4,14 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>spring-cloud-openfeign</artifactId>
|
||||
<version>2.2.0.M1</version>
|
||||
<version>2.2.0.M2</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Spring Cloud OpenFeign</name>
|
||||
<description>Spring Cloud OpenFeign</description>
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-build</artifactId>
|
||||
<version>2.2.0.M3</version>
|
||||
<version>2.2.0.M4</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<scm>
|
||||
@@ -26,8 +26,8 @@
|
||||
<properties>
|
||||
<main.basedir>${basedir}</main.basedir>
|
||||
<jackson.version>2.7.3</jackson.version>
|
||||
<spring-cloud-commons.version>2.2.0.M1</spring-cloud-commons.version>
|
||||
<spring-cloud-netflix.version>2.2.0.M1</spring-cloud-netflix.version>
|
||||
<spring-cloud-commons.version>2.2.0.M2</spring-cloud-commons.version>
|
||||
<spring-cloud-netflix.version>2.2.0.M2</spring-cloud-netflix.version>
|
||||
|
||||
<!-- Plugin versions -->
|
||||
<maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-openfeign</artifactId>
|
||||
<version>2.2.0.M1</version>
|
||||
<version>2.2.0.M2</version>
|
||||
<relativePath>..</relativePath> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<artifactId>spring-cloud-openfeign-core</artifactId>
|
||||
|
||||
+6
-7
@@ -34,8 +34,8 @@ import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConf
|
||||
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.support.MessageSourceAccessor;
|
||||
import org.springframework.hateoas.RepresentationModel;
|
||||
import org.springframework.hateoas.mediatype.MessageResolver;
|
||||
import org.springframework.hateoas.mediatype.hal.CurieProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.DefaultCurieProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.HalConfiguration;
|
||||
@@ -44,7 +44,6 @@ import org.springframework.hateoas.server.LinkRelationProvider;
|
||||
import org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter;
|
||||
|
||||
import static org.springframework.hateoas.MediaTypes.HAL_JSON;
|
||||
import static org.springframework.hateoas.MediaTypes.HAL_JSON_UTF8;
|
||||
|
||||
/**
|
||||
* @author Hector Espert
|
||||
@@ -63,9 +62,9 @@ public class FeignHalAutoConfiguration {
|
||||
public TypeConstrainedMappingJackson2HttpMessageConverter halJacksonHttpMessageConverter(
|
||||
ObjectProvider<ObjectMapper> objectMapper,
|
||||
ObjectProvider<HalConfiguration> halConfiguration,
|
||||
ObjectProvider<LinkRelationProvider> relProvider,
|
||||
ObjectProvider<MessageResolver> messageResolver,
|
||||
ObjectProvider<CurieProvider> curieProvider,
|
||||
ObjectProvider<MessageSourceAccessor> linkRelationMessageSource) {
|
||||
ObjectProvider<LinkRelationProvider> linkRelationProvider) {
|
||||
|
||||
ObjectMapper mapper = objectMapper.getIfAvailable(ObjectMapper::new).copy();
|
||||
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
||||
@@ -77,8 +76,8 @@ public class FeignHalAutoConfiguration {
|
||||
.getIfAvailable(() -> new DefaultCurieProvider(Collections.emptyMap()));
|
||||
|
||||
Jackson2HalModule.HalHandlerInstantiator halHandlerInstantiator = new Jackson2HalModule.HalHandlerInstantiator(
|
||||
relProvider.getObject(), curieProviderInstance,
|
||||
linkRelationMessageSource.getObject(), configuration);
|
||||
linkRelationProvider.getIfAvailable(), curieProviderInstance,
|
||||
messageResolver.getIfAvailable(), configuration);
|
||||
|
||||
mapper.setHandlerInstantiator(halHandlerInstantiator);
|
||||
|
||||
@@ -89,7 +88,7 @@ public class FeignHalAutoConfiguration {
|
||||
|
||||
TypeConstrainedMappingJackson2HttpMessageConverter converter = new TypeConstrainedMappingJackson2HttpMessageConverter(
|
||||
RepresentationModel.class);
|
||||
converter.setSupportedMediaTypes(Arrays.asList(HAL_JSON, HAL_JSON_UTF8));
|
||||
converter.setSupportedMediaTypes(Arrays.asList(HAL_JSON));
|
||||
converter.setObjectMapper(mapper);
|
||||
return converter;
|
||||
}
|
||||
|
||||
+6
-2
@@ -81,8 +81,12 @@ public class PageableSpringEncoder implements Encoder {
|
||||
if (supports(object)) {
|
||||
if (object instanceof Pageable) {
|
||||
Pageable pageable = (Pageable) object;
|
||||
template.query(pageParameter, pageable.getPageNumber() + "");
|
||||
template.query(sizeParameter, pageable.getPageSize() + "");
|
||||
|
||||
if (pageable.isPaged()) {
|
||||
template.query(pageParameter, pageable.getPageNumber() + "");
|
||||
template.query(sizeParameter, pageable.getPageSize() + "");
|
||||
}
|
||||
|
||||
if (pageable.getSort() != null) {
|
||||
applySort(template, pageable.getSort());
|
||||
}
|
||||
|
||||
+6
-9
@@ -26,7 +26,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.context.support.MessageSourceAccessor;
|
||||
import org.springframework.hateoas.mediatype.MessageResolver;
|
||||
import org.springframework.hateoas.mediatype.hal.CurieProvider;
|
||||
import org.springframework.hateoas.mediatype.hal.HalConfiguration;
|
||||
import org.springframework.hateoas.mediatype.hal.Jackson2HalModule;
|
||||
@@ -38,7 +38,6 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.hateoas.MediaTypes.HAL_JSON;
|
||||
import static org.springframework.hateoas.MediaTypes.HAL_JSON_UTF8;
|
||||
|
||||
/**
|
||||
* @author Hector Espert
|
||||
@@ -59,7 +58,7 @@ public class FeignHalAutoConfigurationTests {
|
||||
private ObjectProvider<CurieProvider> curieProvider;
|
||||
|
||||
@Mock
|
||||
private ObjectProvider<MessageSourceAccessor> linkRelationMessageSource;
|
||||
private ObjectProvider<MessageResolver> messageResolver;
|
||||
|
||||
@InjectMocks
|
||||
private FeignHalAutoConfiguration feignHalAutoConfiguration;
|
||||
@@ -71,19 +70,17 @@ public class FeignHalAutoConfigurationTests {
|
||||
|
||||
when(halConfiguration.getIfAvailable(any()))
|
||||
.thenReturn(mock(HalConfiguration.class));
|
||||
when(relProvider.getObject()).thenReturn(mock(LinkRelationProvider.class));
|
||||
when(relProvider.getIfAvailable()).thenReturn(mock(LinkRelationProvider.class));
|
||||
when(curieProvider.getIfAvailable(any())).thenReturn(mock(CurieProvider.class));
|
||||
when(linkRelationMessageSource.getObject())
|
||||
.thenReturn(mock(MessageSourceAccessor.class));
|
||||
when(messageResolver.getIfAvailable()).thenReturn(mock(MessageResolver.class));
|
||||
|
||||
TypeConstrainedMappingJackson2HttpMessageConverter converter = feignHalAutoConfiguration
|
||||
.halJacksonHttpMessageConverter(objectMapper, halConfiguration,
|
||||
relProvider, curieProvider, linkRelationMessageSource);
|
||||
messageResolver, curieProvider, relProvider);
|
||||
|
||||
assertThat(converter).isNotNull();
|
||||
assertThat(converter.getObjectMapper()).isNotNull();
|
||||
assertThat(converter.getSupportedMediaTypes())
|
||||
.isEqualTo(Arrays.asList(HAL_JSON, HAL_JSON_UTF8));
|
||||
assertThat(converter.getSupportedMediaTypes()).isEqualTo(Arrays.asList(HAL_JSON));
|
||||
|
||||
assertThat(Jackson2HalModule.isAlreadyRegisteredIn(converter.getObjectMapper()))
|
||||
.isTrue();
|
||||
|
||||
+29
-8
@@ -64,13 +64,18 @@ public class PageableEncoderTests {
|
||||
encoder.encode(createPageAndSortRequest(), null, request);
|
||||
|
||||
// Request queries shall contain three entries
|
||||
assertThat(request.queries().size()).isEqualTo(3);
|
||||
assertThat(request.queries()).hasSize(3);
|
||||
// Request page shall contain page
|
||||
assertThat(request.queries().get("page")).contains(String.valueOf(PAGE));
|
||||
// Request size shall contain size
|
||||
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE));
|
||||
// Request sort size shall contain sort entries
|
||||
assertThat(request.queries().get("sort").size()).isEqualTo(2);
|
||||
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request
|
||||
// sort
|
||||
// size
|
||||
// shall
|
||||
// contain
|
||||
// sort
|
||||
// entries
|
||||
assertThat(request.queries().get("sort")).hasSize(2);
|
||||
}
|
||||
|
||||
private Pageable createPageAndSortRequest() {
|
||||
@@ -87,9 +92,14 @@ public class PageableEncoderTests {
|
||||
// Request page shall contain page
|
||||
assertThat(request.queries().get("page")).contains(String.valueOf(PAGE));
|
||||
// Request size shall contain size
|
||||
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE));
|
||||
// Request sort size shall contain sort entries
|
||||
assertThat(request.queries().containsKey("sort")).isEqualTo(false);
|
||||
assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request
|
||||
// sort
|
||||
// size
|
||||
// shall
|
||||
// contain
|
||||
// sort
|
||||
// entries
|
||||
assertThat(request.queries()).doesNotContainKey("sort");
|
||||
}
|
||||
|
||||
private Pageable createPageAndRequest() {
|
||||
@@ -106,11 +116,22 @@ public class PageableEncoderTests {
|
||||
// Request queries shall contain three entries
|
||||
assertThat(request.queries().size()).isEqualTo(1);
|
||||
// Request sort size shall contain sort entries
|
||||
assertThat(request.queries().get("sort").size()).isEqualTo(2);
|
||||
assertThat(request.queries().get("sort")).hasSize(2);
|
||||
}
|
||||
|
||||
private Sort createSort() {
|
||||
return Sort.by(SORT_1, SORT_2).ascending();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnpagedRequest() {
|
||||
Encoder encoder = this.context.getInstance("foo", Encoder.class);
|
||||
assertThat(encoder).isNotNull();
|
||||
RequestTemplate request = new RequestTemplate();
|
||||
|
||||
encoder.encode(Pageable.unpaged(), null, request);
|
||||
// Request queries shall contain three entries
|
||||
assertThat(request.queries()).isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
<parent>
|
||||
<artifactId>spring-cloud-dependencies-parent</artifactId>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<version>2.2.0.M3</version>
|
||||
<version>2.2.0.M4</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-openfeign-dependencies</artifactId>
|
||||
<version>2.2.0.M1</version>
|
||||
<version>2.2.0.M2</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>spring-cloud-openfeign-dependencies</name>
|
||||
<description>Spring Cloud OpenFeign Dependencies</description>
|
||||
@@ -100,6 +100,11 @@
|
||||
<artifactId>feign-sax</artifactId>
|
||||
<version>${feign.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
<artifactId>feign-mock</artifactId>
|
||||
<version>${feign.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<profiles>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-openfeign</artifactId>
|
||||
<version>2.2.0.M1</version>
|
||||
<version>2.2.0.M2</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||
|
||||
Reference in New Issue
Block a user