From 26813fac24cf735b1b69df4bd0bba3bf93ecb627 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 12 Sep 2018 09:31:00 +0100 Subject: [PATCH] Add support for webflux in spring-cloud-function Closes gh-733 --- .../SpringCloudFunctionRequestPostProcessor.java | 7 +++++++ .../SpringCloudFunctionRequestPostProcessorTests.java | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessor.java b/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessor.java index 0188d5ff..dc4779c3 100644 --- a/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessor.java +++ b/initializr-service/src/main/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessor.java @@ -22,6 +22,7 @@ import java.util.List; import io.spring.initializr.generator.ProjectRequest; import io.spring.initializr.metadata.Dependency; import io.spring.initializr.metadata.InitializrMetadata; +import io.spring.initializr.util.Version; import org.springframework.stereotype.Component; @@ -41,6 +42,8 @@ class SpringCloudFunctionRequestPostProcessor static final Dependency WEB_ADAPTER = Dependency.withId("cloud-function-web", "org.springframework.cloud", "spring-cloud-function-web"); + static final Version BOOT_21 = Version.parse("2.1.0.x"); + @Override public void postProcessAfterResolution(ProjectRequest request, InitializrMetadata metadata) { @@ -54,6 +57,10 @@ class SpringCloudFunctionRequestPostProcessor if (hasDependency(request, "web")) { swap.add(WEB_ADAPTER); } + if (hasDependency(request, "webflux") + && Version.parse(request.getBootVersion()).compareTo(BOOT_21) >= 0) { + swap.add(WEB_ADAPTER); + } if (!swap.isEmpty()) { request.getResolvedDependencies().remove(cloudFunction); request.getResolvedDependencies().addAll(swap); diff --git a/initializr-service/src/test/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessorTests.java b/initializr-service/src/test/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessorTests.java index 23797043..fb1b1f5a 100644 --- a/initializr-service/src/test/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessorTests.java +++ b/initializr-service/src/test/java/io/spring/initializr/service/extension/SpringCloudFunctionRequestPostProcessorTests.java @@ -17,6 +17,7 @@ package io.spring.initializr.service.extension; import io.spring.initializr.generator.ProjectRequest; + import org.junit.Test; /** @@ -62,4 +63,13 @@ public class SpringCloudFunctionRequestPostProcessorTests .hasDependenciesCount(3); } + @Test + public void webflux() { + ProjectRequest request = createProjectRequest("webflux", "cloud-function"); + request.setBootVersion("2.1.0.BUILD-SNAPSHOT"); + generateMavenPom(request).hasDependency(getDependency("webflux")) + .hasDependency(SpringCloudFunctionRequestPostProcessor.WEB_ADAPTER) + .hasDependenciesCount(4); + } + }