From 822593b7676d423b109ff8bf09a5992455fc5b71 Mon Sep 17 00:00:00 2001
From: Gary Russell <grussell@pivotal.io>
Date: Thu, 21 Dec 2017 13:18:32 -0500
Subject: [PATCH] Fix JUnit dependencies

- eliminate the `platform-commons` dependency
- make the `jupiter-api` dependency optional
---
 build.gradle                                           |  4 +---
 .../junit/LongRunningIntegrationTestCondition.java     |  8 ++++----
 .../amqp/rabbit/junit/RabbitAvailableCondition.java    | 10 +++++-----
 3 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/build.gradle b/build.gradle
index 976010d88e..0d314b8fd2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -130,7 +130,6 @@ subprojects { subproject ->
 
 		testCompile "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}"
 		testRuntime "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}"
-		testRuntime "org.junit.platform:junit-platform-commons:${junitPlatformVersion}"
 		testRuntime "org.junit.platform:junit-platform-launcher:${junitPlatformVersion}"
 
 		// To support JUnit 4 tests
@@ -287,8 +286,7 @@ project('spring-rabbit-junit') {
 			exclude group: 'org.springframework', module: 'spring-web'
 		}
 		compile "org.springframework:spring-web:$springVersion"
-		compile "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}"
-		compile "org.junit.platform:junit-platform-commons:${junitPlatformVersion}"
+		compile ("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}", optional)
 		compileOnly 'org.apiguardian:apiguardian-api:1.0.0'
 
 	}
diff --git a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/LongRunningIntegrationTestCondition.java b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/LongRunningIntegrationTestCondition.java
index 778a3cdb98..a93d44727d 100644
--- a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/LongRunningIntegrationTestCondition.java
+++ b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/LongRunningIntegrationTestCondition.java
@@ -22,8 +22,8 @@
 import org.junit.jupiter.api.extension.ConditionEvaluationResult;
 import org.junit.jupiter.api.extension.ExecutionCondition;
 import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.platform.commons.util.AnnotationUtils;
 
+import org.springframework.core.annotation.AnnotationUtils;
 import org.springframework.util.StringUtils;
 
 /**
@@ -42,9 +42,9 @@ public class LongRunningIntegrationTestCondition implements ExecutionCondition {
 	@Override
 	public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) {
 		Optional<AnnotatedElement> element = context.getElement();
-		Optional<LongRunning> longRunning = AnnotationUtils.findAnnotation(element, LongRunning.class);
-		if (longRunning.isPresent()) {
-			String property = longRunning.get().value();
+		LongRunning longRunning = AnnotationUtils.findAnnotation(element.get(), LongRunning.class);
+		if (longRunning != null) {
+			String property = longRunning.value();
 			if (!StringUtils.hasText(property)) {
 				property = LongRunningIntegrationTest.RUN_LONG_INTEGRATION_TESTS;
 			}
diff --git a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/RabbitAvailableCondition.java b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/RabbitAvailableCondition.java
index bf8bf04ef6..caf4e6484c 100644
--- a/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/RabbitAvailableCondition.java
+++ b/spring-rabbit-junit/src/main/java/org/springframework/amqp/rabbit/junit/RabbitAvailableCondition.java
@@ -28,8 +28,8 @@
 import org.junit.jupiter.api.extension.ParameterContext;
 import org.junit.jupiter.api.extension.ParameterResolutionException;
 import org.junit.jupiter.api.extension.ParameterResolver;
-import org.junit.platform.commons.util.AnnotationUtils;
 
+import org.springframework.core.annotation.AnnotationUtils;
 import org.springframework.util.Assert;
 
 import com.rabbitmq.client.ConnectionFactory;
@@ -53,13 +53,13 @@ public class RabbitAvailableCondition implements ExecutionCondition, AfterAllCal
 	@Override
 	public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) {
 		Optional<AnnotatedElement> element = context.getElement();
-		Optional<RabbitAvailable> rabbit = AnnotationUtils.findAnnotation(element, RabbitAvailable.class);
-		if (rabbit.isPresent()) {
+		RabbitAvailable rabbit = AnnotationUtils.findAnnotation(element.get(), RabbitAvailable.class);
+		if (rabbit != null) {
 			try {
-				String[] queues = rabbit.get().queues();
+				String[] queues = rabbit.queues();
 				BrokerRunning brokerRunning = getStore(context).get("brokerRunning", BrokerRunning.class);
 				if (brokerRunning == null) {
-					if (rabbit.get().management()) {
+					if (rabbit.management()) {
 						brokerRunning = BrokerRunning.isBrokerAndManagementRunningWithEmptyQueues(queues);
 					}
 					else {