Do not map spring-cloud-fonction-stream with Spring Boot 2.1+

Closes gh-759
This commit is contained in:
Stephane Nicoll
2018-11-01 16:45:03 +09:00
parent b009101aa6
commit 39dd9792cd
3 changed files with 37 additions and 2 deletions

View File

@@ -83,4 +83,17 @@ public class AbstractProjectRequestPostProcessor implements ProjectRequestPostPr
return version.compareTo(requestVersion) <= 0;
}
/**
* Specify if the Spring Boot version of the {@link ProjectRequest request} is lower
* than the specified {@link Version}.
* @param request the request to handle
* @param version the maximum version
* @return {@code true} if the requested version is lower than the specified
* {@code version}
*/
protected boolean isSpringBootVersionBefore(ProjectRequest request, Version version) {
Version requestVersion = Version.safeParse(request.getBootVersion());
return version.compareTo(requestVersion) > 0;
}
}

View File

@@ -31,6 +31,7 @@ import org.springframework.stereotype.Component;
* and/or platform dependencies requested.
*
* @author Dave Syer
* @author Stephane Nicoll
*/
@Component
class SpringCloudFunctionRequestPostProcessor
@@ -50,8 +51,9 @@ class SpringCloudFunctionRequestPostProcessor
Dependency cloudFunction = getDependency(request, "cloud-function");
if (cloudFunction != null) {
List<Dependency> swap = new ArrayList<>();
if (hasDependency(request, "cloud-stream")
|| hasDependency(request, "reactive-cloud-stream")) {
if ((hasDependency(request, "cloud-stream")
|| hasDependency(request, "reactive-cloud-stream"))
&& isSpringBootVersionBefore(request, VERSION_2_1_0_M1)) {
swap.add(SCS_ADAPTER);
}
if (hasDependency(request, "web")) {

View File

@@ -23,6 +23,7 @@ import org.junit.Test;
* Tests for {@link SpringCloudFunctionRequestPostProcessor}.
*
* @author Dave Syer
* @author Stephane Nicoll
*/
public class SpringCloudFunctionRequestPostProcessorTests
extends AbstractRequestPostProcessorTests {
@@ -38,6 +39,7 @@ public class SpringCloudFunctionRequestPostProcessorTests
public void springCloudStreamWithRabbit() {
ProjectRequest request = createProjectRequest("cloud-stream", "amqp",
"cloud-function");
request.setBootVersion("2.0.6.RELEASE");
generateMavenPom(request).hasDependency(getDependency("cloud-stream"))
.hasDependency(getDependency("amqp"))
.hasDependency(SpringCloudFunctionRequestPostProcessor.SCS_ADAPTER)
@@ -48,12 +50,30 @@ public class SpringCloudFunctionRequestPostProcessorTests
public void reactiveSpringCloudStreamWithKafka() {
ProjectRequest request = createProjectRequest("reactive-cloud-stream", "kafka",
"cloud-function");
request.setBootVersion("2.0.6.RELEASE");
generateMavenPom(request).hasDependency(getDependency("reactive-cloud-stream"))
.hasDependency(getDependency("kafka"))
.hasDependency(SpringCloudFunctionRequestPostProcessor.SCS_ADAPTER)
.hasDependenciesCount(6);
}
@Test
public void springCloudStreamWith21() {
ProjectRequest request = createProjectRequest("cloud-stream", "cloud-function");
request.setBootVersion("2.1.0.RC1");
generateMavenPom(request).hasDependency(getDependency("cloud-stream"))
.hasDependency(getDependency("cloud-function")).hasDependenciesCount(4);
}
@Test
public void reactiveSpringCloudStreamWith21() {
ProjectRequest request = createProjectRequest("reactive-cloud-stream",
"cloud-function");
request.setBootVersion("2.1.0.RELEASE");
generateMavenPom(request).hasDependency(getDependency("reactive-cloud-stream"))
.hasDependency(getDependency("cloud-function")).hasDependenciesCount(4);
}
@Test
public void web() {
ProjectRequest request = createProjectRequest("web", "cloud-function");