Merge branch '1.4.x' into 1.5.x
This commit is contained in:
		
						commit
						b2a8be8bbe
					
				|  | @ -128,6 +128,11 @@ | ||||||
| 			<optional>true</optional> | 			<optional>true</optional> | ||||||
| 		</dependency> | 		</dependency> | ||||||
| 		<!-- Test --> | 		<!-- Test --> | ||||||
|  | 		<dependency> | ||||||
|  | 			<groupId>org.springframework.boot</groupId> | ||||||
|  | 			<artifactId>spring-boot-junit-runners</artifactId> | ||||||
|  | 			<scope>test</scope> | ||||||
|  | 		</dependency> | ||||||
| 		<dependency> | 		<dependency> | ||||||
| 			<groupId>ch.qos.logback</groupId> | 			<groupId>ch.qos.logback</groupId> | ||||||
| 			<artifactId>logback-classic</artifactId> | 			<artifactId>logback-classic</artifactId> | ||||||
|  |  | ||||||
|  | @ -21,8 +21,6 @@ import java.util.Collections; | ||||||
| import java.util.LinkedHashSet; | import java.util.LinkedHashSet; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
| 
 | 
 | ||||||
| import com.fasterxml.jackson.databind.Module; |  | ||||||
| 
 |  | ||||||
| import org.springframework.boot.context.TypeExcludeFilter; | import org.springframework.boot.context.TypeExcludeFilter; | ||||||
| import org.springframework.boot.jackson.JsonComponent; | import org.springframework.boot.jackson.JsonComponent; | ||||||
| import org.springframework.boot.test.autoconfigure.filter.AnnotationCustomizableTypeExcludeFilter; | import org.springframework.boot.test.autoconfigure.filter.AnnotationCustomizableTypeExcludeFilter; | ||||||
|  | @ -30,6 +28,7 @@ import org.springframework.context.annotation.ComponentScan.Filter; | ||||||
| import org.springframework.core.annotation.AnnotatedElementUtils; | import org.springframework.core.annotation.AnnotatedElementUtils; | ||||||
| import org.springframework.core.type.classreading.MetadataReader; | import org.springframework.core.type.classreading.MetadataReader; | ||||||
| import org.springframework.core.type.classreading.MetadataReaderFactory; | import org.springframework.core.type.classreading.MetadataReaderFactory; | ||||||
|  | import org.springframework.util.ClassUtils; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * {@link TypeExcludeFilter} for {@link RestClientTest @RestClientTest}. |  * {@link TypeExcludeFilter} for {@link RestClientTest @RestClientTest}. | ||||||
|  | @ -38,12 +37,24 @@ import org.springframework.core.type.classreading.MetadataReaderFactory; | ||||||
|  */ |  */ | ||||||
| class RestClientExcludeFilter extends AnnotationCustomizableTypeExcludeFilter { | class RestClientExcludeFilter extends AnnotationCustomizableTypeExcludeFilter { | ||||||
| 
 | 
 | ||||||
|  | 	private static final String DATABIND_MODULE_CLASS_NAME = "com.fasterxml.jackson.databind.Module"; | ||||||
|  | 
 | ||||||
| 	private static final Set<Class<?>> DEFAULT_INCLUDES; | 	private static final Set<Class<?>> DEFAULT_INCLUDES; | ||||||
| 
 | 
 | ||||||
| 	static { | 	static { | ||||||
| 		Set<Class<?>> includes = new LinkedHashSet<Class<?>>(); | 		Set<Class<?>> includes = new LinkedHashSet<Class<?>>(); | ||||||
| 		includes.add(Module.class); | 		if (ClassUtils.isPresent("com.fasterxml.jackson.databind.Module", | ||||||
| 		includes.add(JsonComponent.class); | 				RestClientExcludeFilter.class.getClassLoader())) { | ||||||
|  | 			try { | ||||||
|  | 				includes.add(Class.forName(DATABIND_MODULE_CLASS_NAME, true, | ||||||
|  | 						RestClientExcludeFilter.class.getClassLoader())); | ||||||
|  | 			} | ||||||
|  | 			catch (ClassNotFoundException ex) { | ||||||
|  | 				throw new IllegalStateException( | ||||||
|  | 						"Failed to load " + DATABIND_MODULE_CLASS_NAME, ex); | ||||||
|  | 			} | ||||||
|  | 			includes.add(JsonComponent.class); | ||||||
|  | 		} | ||||||
| 		DEFAULT_INCLUDES = Collections.unmodifiableSet(includes); | 		DEFAULT_INCLUDES = Collections.unmodifiableSet(includes); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | /* | ||||||
|  |  * Copyright 2012-2016 the original author or authors. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *      http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package org.springframework.boot.test.autoconfigure.web.client; | ||||||
|  | 
 | ||||||
|  | import org.junit.Test; | ||||||
|  | import org.junit.runner.JUnitCore; | ||||||
|  | import org.junit.runner.Result; | ||||||
|  | import org.junit.runner.RunWith; | ||||||
|  | 
 | ||||||
|  | import org.springframework.boot.junit.runner.classpath.ClassPathExclusions; | ||||||
|  | import org.springframework.boot.junit.runner.classpath.ModifiedClassPathRunner; | ||||||
|  | import org.springframework.util.ClassUtils; | ||||||
|  | 
 | ||||||
|  | import static org.assertj.core.api.Assertions.assertThat; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Tests for {@link RestClientTest} without Jackson. | ||||||
|  |  * | ||||||
|  |  * @author Andy Wilkinson | ||||||
|  |  */ | ||||||
|  | @RunWith(ModifiedClassPathRunner.class) | ||||||
|  | @ClassPathExclusions("jackson-*.jar") | ||||||
|  | public class RestClientTestWithoutJacksonIntegrationTests { | ||||||
|  | 
 | ||||||
|  | 	@Test | ||||||
|  | 	public void restClientTestCanBeUsedWhenJacksonIsNotOnTheClassPath() { | ||||||
|  | 		assertThat(ClassUtils.isPresent("com.fasterxml.jackson.databind.Module", | ||||||
|  | 				getClass().getClassLoader())).isFalse(); | ||||||
|  | 		Result result = JUnitCore | ||||||
|  | 				.runClasses(RestClientTestWithComponentIntegrationTests.class); | ||||||
|  | 		assertThat(result.getFailureCount()).isEqualTo(0); | ||||||
|  | 		assertThat(result.getRunCount()).isGreaterThan(0); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue