From 702253bc084b8d573dad6cfa0ba665689713f79a Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Sun, 27 Jul 2014 20:16:51 -0700 Subject: [PATCH 1/2] Update git properties plugin --- spring-boot-starters/spring-boot-starter-parent/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-starters/spring-boot-starter-parent/pom.xml b/spring-boot-starters/spring-boot-starter-parent/pom.xml index 401691cd9b2..33c88bc95c0 100644 --- a/spring-boot-starters/spring-boot-starter-parent/pom.xml +++ b/spring-boot-starters/spring-boot-starter-parent/pom.xml @@ -118,7 +118,7 @@ pl.project13.maven git-commit-id-plugin - 2.1.7 + 2.1.10 @@ -130,7 +130,7 @@ true yyyy-MM-dd'T'HH:mm:ssZ true - ${basedir}/src/main/resources/git.properties + ${basedir}/target/classes/git.properties From 05e6af23cf2e60d5c61388fbb954bd56f00b9f94 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 28 Jul 2014 09:30:34 -0700 Subject: [PATCH 2/2] Prepend without replacing in HttpMessageConverters It was incorrect to simply replace existing instances because you can't tell from the instance which media types and java types it supports. This fix just prepends the custom converters so they get higher priority. Fixes gh-1293 --- .../web/HttpMessageConverters.java | 20 +------------------ .../web/HttpMessageConvertersTests.java | 9 +++++++++ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpMessageConverters.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpMessageConverters.java index ef903d4806d..ac52b71fd98 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpMessageConverters.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/HttpMessageConverters.java @@ -75,15 +75,7 @@ public class HttpMessageConverters implements Iterable> public HttpMessageConverters(Collection> additionalConverters) { List> converters = new ArrayList>(); List> defaultConverters = getDefaultConverters(); - for (HttpMessageConverter converter : additionalConverters) { - int defaultConverterIndex = indexOfItemClass(defaultConverters, converter); - if (defaultConverterIndex == -1) { - converters.add(converter); - } - else { - defaultConverters.set(defaultConverterIndex, converter); - } - } + converters.addAll(additionalConverters); converters.addAll(defaultConverters); this.converters = Collections.unmodifiableList(converters); } @@ -120,16 +112,6 @@ public class HttpMessageConverters implements Iterable> converters.addAll(xml); } - private int indexOfItemClass(List list, E item) { - Class itemClass = item.getClass(); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getClass().isAssignableFrom(itemClass)) { - return i; - } - } - return -1; - } - @Override public Iterator> iterator() { return getConverters().iterator(); diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java index 0d26af9144c..49ad34abf80 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java @@ -69,6 +69,15 @@ public class HttpMessageConvertersTests { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); HttpMessageConverters converters = new HttpMessageConverters(converter); assertTrue(converters.getConverters().contains(converter)); + int count = 0; + for (HttpMessageConverter httpMessageConverter : converters) { + if (httpMessageConverter instanceof MappingJackson2HttpMessageConverter) { + count++; + } + } + // The existing converter is still there, but with a lower priority + assertEquals(2, count); + assertEquals(0, converters.getConverters().indexOf(converter)); } @Test