Merge branch '1.4.x' into 1.5.x
This commit is contained in:
		
						commit
						b2a8be8bbe
					
				|  | @ -128,6 +128,11 @@ | |||
| 			<optional>true</optional> | ||||
| 		</dependency> | ||||
| 		<!-- Test --> | ||||
| 		<dependency> | ||||
| 			<groupId>org.springframework.boot</groupId> | ||||
| 			<artifactId>spring-boot-junit-runners</artifactId> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>ch.qos.logback</groupId> | ||||
| 			<artifactId>logback-classic</artifactId> | ||||
|  |  | |||
|  | @ -21,8 +21,6 @@ import java.util.Collections; | |||
| import java.util.LinkedHashSet; | ||||
| import java.util.Set; | ||||
| 
 | ||||
| import com.fasterxml.jackson.databind.Module; | ||||
| 
 | ||||
| import org.springframework.boot.context.TypeExcludeFilter; | ||||
| import org.springframework.boot.jackson.JsonComponent; | ||||
| 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.type.classreading.MetadataReader; | ||||
| import org.springframework.core.type.classreading.MetadataReaderFactory; | ||||
| import org.springframework.util.ClassUtils; | ||||
| 
 | ||||
| /** | ||||
|  * {@link TypeExcludeFilter} for {@link RestClientTest @RestClientTest}. | ||||
|  | @ -38,12 +37,24 @@ import org.springframework.core.type.classreading.MetadataReaderFactory; | |||
|  */ | ||||
| class RestClientExcludeFilter extends AnnotationCustomizableTypeExcludeFilter { | ||||
| 
 | ||||
| 	private static final String DATABIND_MODULE_CLASS_NAME = "com.fasterxml.jackson.databind.Module"; | ||||
| 
 | ||||
| 	private static final Set<Class<?>> DEFAULT_INCLUDES; | ||||
| 
 | ||||
| 	static { | ||||
| 		Set<Class<?>> includes = new LinkedHashSet<Class<?>>(); | ||||
| 		includes.add(Module.class); | ||||
| 		if (ClassUtils.isPresent("com.fasterxml.jackson.databind.Module", | ||||
| 				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); | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -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