diff --git a/spring-cloud-gateway-sample/pom.xml b/spring-cloud-gateway-sample/pom.xml index 6d991264..06456cf8 100644 --- a/spring-cloud-gateway-sample/pom.xml +++ b/spring-cloud-gateway-sample/pom.xml @@ -92,6 +92,44 @@ org.springframework.boot spring-boot-maven-plugin + + org.jetbrains.kotlin + kotlin-maven-plugin + + + -Xjsr305=strict + + 17 + + + + compile + compile + + compile + + + + src/main/java + src/main/kotlin + + + + + test-compile + test-compile + + test-compile + + + + src/test/java + src/test/kotlin + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -135,55 +173,5 @@ - - - javaLowerThan16 - - (,16) - - - - - org.jetbrains.kotlin - kotlin-maven-plugin - - - -Xjsr305=strict - - 1.8 - - - - compile - compile - - compile - - - - src/main/java - src/main/kotlin - - - - - test-compile - test-compile - - test-compile - - - - src/test/java - src/test/kotlin - - - - - - - - - diff --git a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/AdditionalRoutesImportSelector.java b/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/AdditionalRoutesImportSelector.java deleted file mode 100644 index bd372b0c..00000000 --- a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/AdditionalRoutesImportSelector.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2013-2021 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 - * - * https://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.cloud.gateway.sample; - -import org.springframework.context.annotation.DeferredImportSelector; -import org.springframework.core.type.AnnotationMetadata; -import org.springframework.util.ClassUtils; - -class AdditionalRoutesImportSelector implements DeferredImportSelector { - - @Override - public String[] selectImports(AnnotationMetadata importingClassMetadata) { - if (ClassUtils.isPresent("org.springframework.cloud.gateway.sample.AdditionalRoutes", null)) { - return new String[] { "org.springframework.cloud.gateway.sample.AdditionalRoutes" }; - } - return new String[0]; - } - -} diff --git a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java b/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java index 7e4dbafa..15842cac 100644 --- a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java +++ b/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java @@ -41,7 +41,7 @@ import org.springframework.web.reactive.function.server.ServerResponse; */ @SpringBootConfiguration @EnableAutoConfiguration -@Import(AdditionalRoutesImportSelector.class) +@Import(AdditionalRoutes.class) public class GatewaySampleApplication { public static final String HELLO_FROM_FAKE_ACTUATOR_METRICS_GATEWAY_REQUESTS = "hello from fake /actuator/metrics/spring.cloud.gateway.requests"; diff --git a/spring-cloud-gateway-sample/src/test/java/org/springframework/cloud/gateway/sample/GatewaySampleApplicationTests.java b/spring-cloud-gateway-sample/src/test/java/org/springframework/cloud/gateway/sample/GatewaySampleApplicationTests.java index fc0645a4..60aa4fdf 100644 --- a/spring-cloud-gateway-sample/src/test/java/org/springframework/cloud/gateway/sample/GatewaySampleApplicationTests.java +++ b/spring-cloud-gateway-sample/src/test/java/org/springframework/cloud/gateway/sample/GatewaySampleApplicationTests.java @@ -26,8 +26,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledForJreRange; -import org.junit.jupiter.api.condition.JRE; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -159,7 +157,6 @@ public class GatewaySampleApplicationTests { } @Test - @DisabledForJreRange(min = JRE.JAVA_16) public void routeFromKotlin() { webClient.get().uri("/anything/kotlinroute").header("Host", "kotlin.abc.org").exchange().expectHeader() .valueEquals("X-TestHeader", "foobar").expectStatus().isOk(); diff --git a/spring-cloud-gateway-server/pom.xml b/spring-cloud-gateway-server/pom.xml index 18222d6f..b0afd78f 100644 --- a/spring-cloud-gateway-server/pom.xml +++ b/spring-cloud-gateway-server/pom.xml @@ -88,6 +88,11 @@ io.projectreactor.addons reactor-extra + + io.projectreactor.kotlin + reactor-kotlin-extensions + true + com.fasterxml.jackson.dataformat jackson-dataformat-protobuf @@ -221,6 +226,40 @@ + + + kotlin-maven-plugin + org.jetbrains.kotlin + + 17 + + + + compile + + compile + + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/main/java + + + + + test-compile + + test-compile + + + + ${project.basedir}/src/test/kotlin + ${project.basedir}/src/test/java + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -271,50 +310,6 @@ - - javaLowerThan16 - - (,16) - - - - - - kotlin-maven-plugin - org.jetbrains.kotlin - - 1.8 - - - - compile - - compile - - - - ${project.basedir}/src/main/kotlin - ${project.basedir}/src/main/java - - - - - test-compile - - test-compile - - - - ${project.basedir}/src/test/kotlin - ${project.basedir}/src/test/java - - - - - - - - java13plus diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/AdhocTestSuite.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/AdhocTestSuite.java index 976487b3..5d1bf14f 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/AdhocTestSuite.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/AdhocTestSuite.java @@ -101,7 +101,7 @@ import static org.junit.Assume.assumeThat; org.springframework.cloud.gateway.route.RouteTests.class, org.springframework.cloud.gateway.route.CachingRouteLocatorTests.class, org.springframework.cloud.gateway.route.RouteRefreshListenerTests.class, - // org.springframework.cloud.gateway.route.builder.RouteDslTests.class, + org.springframework.cloud.gateway.route.builder.RouteDslTests.class, org.springframework.cloud.gateway.route.builder.RouteBuilderTests.class, org.springframework.cloud.gateway.route.builder.GatewayFilterSpecTests.class, org.springframework.cloud.gateway.route.CachingRouteDefinitionLocatorTests.class, diff --git a/spring-cloud-gateway-server/src/test/kotlin/org/springframework/cloud/gateway/route/builder/RouteDslTests.kt b/spring-cloud-gateway-server/src/test/kotlin/org/springframework/cloud/gateway/route/builder/RouteDslTests.kt index 2c276301..ce14c50a 100644 --- a/spring-cloud-gateway-server/src/test/kotlin/org/springframework/cloud/gateway/route/builder/RouteDslTests.kt +++ b/spring-cloud-gateway-server/src/test/kotlin/org/springframework/cloud/gateway/route/builder/RouteDslTests.kt @@ -24,13 +24,12 @@ import org.springframework.cloud.gateway.support.ServerWebExchangeUtils import org.springframework.context.annotation.Configuration import org.springframework.mock.http.server.reactive.MockServerHttpRequest import org.springframework.mock.web.server.MockServerWebExchange -import org.springframework.test.context.junit4.SpringRunner import org.springframework.web.server.ServerWebExchange -import reactor.core.publisher.toMono +import reactor.kotlin.core.publisher.toMono import reactor.test.StepVerifier import java.net.URI -@SpringBootTest(classes = arrayOf(Config::class)) +@SpringBootTest(classes = [Config::class]) class RouteDslTests { @Autowired