From a399326f39ee9f15c01d7210f20bde55c6745dd6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Nov 2022 12:35:11 +0000 Subject: [PATCH 1/4] Update spring core to v6 --- cucumber-spring/pom.xml | 22 +-------- .../AnnotationContextConfiguration.java | 1 - ...tationContextConfigurationDefinitions.java | 6 +-- .../cucumber/spring/beans/TestController.java | 16 +------ .../threading/ThreadingStepDefinitions.java | 1 - .../spring/webappconfig/RunCucumberTest.java | 16 ------- .../SpringInjectionStepDefinitions.java | 45 ------------------- .../spring/springWebContextInjection.feature | 6 --- examples/spring-java-junit5/pom.xml | 4 +- .../examples/spring/application/Message.java | 18 ++++---- .../examples/spring/application/User.java | 20 ++++----- 11 files changed, 27 insertions(+), 128 deletions(-) delete mode 100644 cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/RunCucumberTest.java delete mode 100644 cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/SpringInjectionStepDefinitions.java delete mode 100644 cucumber-spring/src/test/resources/io/cucumber/spring/springWebContextInjection.feature diff --git a/cucumber-spring/pom.xml b/cucumber-spring/pom.xml index d7552ad793..ef005e63c6 100644 --- a/cucumber-spring/pom.xml +++ b/cucumber-spring/pom.xml @@ -14,9 +14,8 @@ 1.1.2 2.2 - 4.0.1 5.9.1 - 5.3.24 + 6.0.3 io.cucumber.spring 4.11.0 @@ -65,25 +64,6 @@ ${apiguardian-api.version} - - org.springframework - spring-web - ${spring.version} - test - - - org.springframework - spring-webmvc - ${spring.version} - test - - - javax.servlet - javax.servlet-api - ${javax.servlet-api.version} - test - - io.cucumber cucumber-java diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfiguration.java b/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfiguration.java index e263d1a100..41ac02f8b8 100644 --- a/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfiguration.java +++ b/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfiguration.java @@ -4,7 +4,6 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.web.WebAppConfiguration; -@WebAppConfiguration @ContextConfiguration("classpath:cucumber.xml") @CucumberContextConfiguration public class AnnotationContextConfiguration { diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfigurationDefinitions.java b/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfigurationDefinitions.java index bd253c792f..3f293cae1d 100644 --- a/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfigurationDefinitions.java +++ b/cucumber-spring/src/test/java/io/cucumber/spring/annotationconfig/AnnotationContextConfigurationDefinitions.java @@ -2,18 +2,18 @@ import io.cucumber.java.en.Then; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.context.WebApplicationContext; +import org.springframework.context.ApplicationContext; import static org.junit.jupiter.api.Assertions.assertNotNull; public class AnnotationContextConfigurationDefinitions { @Autowired - private WebApplicationContext wac; + private ApplicationContext context; @Then("cucumber picks up configuration class without step defs") public void pickUpContext() { - assertNotNull(wac); + assertNotNull(context); } } diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/beans/TestController.java b/cucumber-spring/src/test/java/io/cucumber/spring/beans/TestController.java index d59fdf8474..4bcc26a898 100644 --- a/cucumber-spring/src/test/java/io/cucumber/spring/beans/TestController.java +++ b/cucumber-spring/src/test/java/io/cucumber/spring/beans/TestController.java @@ -1,20 +1,8 @@ package io.cucumber.spring.beans; -import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.stereotype.Controller; -@Component -@RequestMapping(TestController.BASE_URL) +@Controller public class TestController { - public static final String BASE_URL = "/test"; - - @ResponseBody - @RequestMapping(method = RequestMethod.GET) - public String test() { - return "ok"; - } - } diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/threading/ThreadingStepDefinitions.java b/cucumber-spring/src/test/java/io/cucumber/spring/threading/ThreadingStepDefinitions.java index 223ecf79a0..a074d1a5b6 100644 --- a/cucumber-spring/src/test/java/io/cucumber/spring/threading/ThreadingStepDefinitions.java +++ b/cucumber-spring/src/test/java/io/cucumber/spring/threading/ThreadingStepDefinitions.java @@ -18,7 +18,6 @@ import static org.junit.jupiter.api.Assertions.assertSame; @CucumberContextConfiguration -@WebAppConfiguration @ContextConfiguration("classpath:cucumber.xml") public class ThreadingStepDefinitions { diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/RunCucumberTest.java b/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/RunCucumberTest.java deleted file mode 100644 index 37fd28d431..0000000000 --- a/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/RunCucumberTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package io.cucumber.spring.webappconfig; - -import org.junit.platform.suite.api.ConfigurationParameter; -import org.junit.platform.suite.api.IncludeEngines; -import org.junit.platform.suite.api.SelectClasspathResource; -import org.junit.platform.suite.api.Suite; - -import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME; - -@Suite -@IncludeEngines("cucumber") -@SelectClasspathResource("io/cucumber/spring/springWebContextInjection.feature") -@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "io.cucumber.spring.webappconfig") -public class RunCucumberTest { - -} diff --git a/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/SpringInjectionStepDefinitions.java b/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/SpringInjectionStepDefinitions.java deleted file mode 100644 index ab911503c5..0000000000 --- a/cucumber-spring/src/test/java/io/cucumber/spring/webappconfig/SpringInjectionStepDefinitions.java +++ /dev/null @@ -1,45 +0,0 @@ -package io.cucumber.spring.webappconfig; - -import io.cucumber.java.en.Given; -import io.cucumber.java.en.Then; -import io.cucumber.java.en.When; -import io.cucumber.spring.CucumberContextConfiguration; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.ResultActions; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -@CucumberContextConfiguration -@WebAppConfiguration -@ContextConfiguration("classpath:cucumber.xml") -public class SpringInjectionStepDefinitions { - - @Autowired - private WebApplicationContext wac; - - private ResultActions callUrl; - - @Given("I have the web context set") - public void I_have_the_web_context_set() { - assertNotNull(wac); - } - - @When("I call the url {string}") - public void I_call_the_url(String url) throws Throwable { - MockMvc mock = MockMvcBuilders.webAppContextSetup(wac).build(); - callUrl = mock.perform(get(url)); - } - - @Then("it should return {int}") - public void it_should_return(int httpCode) throws Throwable { - callUrl.andExpect(status().is(httpCode)); - } - -} diff --git a/cucumber-spring/src/test/resources/io/cucumber/spring/springWebContextInjection.feature b/cucumber-spring/src/test/resources/io/cucumber/spring/springWebContextInjection.feature deleted file mode 100644 index 9af5d36568..0000000000 --- a/cucumber-spring/src/test/resources/io/cucumber/spring/springWebContextInjection.feature +++ /dev/null @@ -1,6 +0,0 @@ -Feature: Spring web contextrenam injection with annotations - - Scenario: Inject web context - Given I have the web context set - When I call the url "/test" - Then it should return 200 diff --git a/examples/spring-java-junit5/pom.xml b/examples/spring-java-junit5/pom.xml index cdc4b7e930..80c193224c 100644 --- a/examples/spring-java-junit5/pom.xml +++ b/examples/spring-java-junit5/pom.xml @@ -12,8 +12,8 @@ io.cucumber.examples.spring.application - 2.6.0 - 5.8.2 + 3.0.1 + 5.9.1 diff --git a/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/Message.java b/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/Message.java index 0ac4e532ba..4773330543 100644 --- a/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/Message.java +++ b/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/Message.java @@ -1,14 +1,14 @@ package io.cucumber.examples.spring.application; -import javax.persistence.Access; -import javax.persistence.AccessType; -import javax.persistence.Basic; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.Basic; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import java.io.Serializable; import java.util.StringJoiner; diff --git a/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/User.java b/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/User.java index 67456a10b2..fbe9f8f04a 100644 --- a/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/User.java +++ b/examples/spring-java-junit5/src/main/java/io/cucumber/examples/spring/application/User.java @@ -1,15 +1,15 @@ package io.cucumber.examples.spring.application; -import javax.persistence.Access; -import javax.persistence.AccessType; -import javax.persistence.Basic; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; +import jakarta.persistence.Access; +import jakarta.persistence.AccessType; +import jakarta.persistence.Basic; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import java.io.Serializable; import java.util.List; From 2273d15ae5c7cf595e0ad54fe8aa636edf941da2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Jan 2023 15:52:57 +0000 Subject: [PATCH 2/4] Update spring core to v6 --- cucumber-spring/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cucumber-spring/pom.xml b/cucumber-spring/pom.xml index d7552ad793..81a2a75242 100644 --- a/cucumber-spring/pom.xml +++ b/cucumber-spring/pom.xml @@ -16,7 +16,7 @@ 2.2 4.0.1 5.9.1 - 5.3.24 + 6.0.3 io.cucumber.spring 4.11.0 From 6cdeb3f7d9a3e4a33cb3c45b6ad6d90586fef9de Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Fri, 6 Jan 2023 17:01:30 +0100 Subject: [PATCH 3/4] Fix stuff --- examples/spring-java-junit5/pom.xml | 7 +++++++ .../spring-java-junit5/src/main/resources/application.yml | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 examples/spring-java-junit5/src/main/resources/application.yml diff --git a/examples/spring-java-junit5/pom.xml b/examples/spring-java-junit5/pom.xml index 80c193224c..9ef1404ddc 100644 --- a/examples/spring-java-junit5/pom.xml +++ b/examples/spring-java-junit5/pom.xml @@ -96,6 +96,13 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + true + + org.apache.maven.plugins maven-surefire-plugin diff --git a/examples/spring-java-junit5/src/main/resources/application.yml b/examples/spring-java-junit5/src/main/resources/application.yml new file mode 100644 index 0000000000..b65e36deb9 --- /dev/null +++ b/examples/spring-java-junit5/src/main/resources/application.yml @@ -0,0 +1,3 @@ +spring: + jpa: + open-in-view: false From 1aed9accaed68b5e443894aaffa596506e9360ec Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Fri, 6 Jan 2023 17:10:41 +0100 Subject: [PATCH 4/4] Update CHANGELOG --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13237a8266..f4777ba0d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,15 +10,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] + +### Added +- [Spring] Upgrade to Spring Boot 3 and Spring 6 ([#2644](https://github.com/cucumber/cucumber-jvm/pull/2644) M.P. Korstanje) + ### Changed - [Core] Use a [message based JUnit XML Formatter](https://github.com/cucumber/cucumber-junit-xml-formatter) ([#2638](https://github.com/cucumber/cucumber-jvm/pull/2638) M.P. Korstanje) - [Core] Throw an exception when tag expressions are incorrectly escaped ([tag-expressions/#17](https://github.com/cucumber/tag-expressions/pull/17) Aslak Hellesøy) -- [DeltaSpike] Un-Deprecated deltaspike - can be made to work on Java 17. +- [DeltaSpike] Un-Deprecated deltaspike - can be made to work on Java 17 ([#2674](https://github.com/cucumber/cucumber-jvm/pull/2674) M.P. Korstanje) ### Fixed - [Core] Improve test step creation performance ([#2666](https://github.com/cucumber/cucumber-jvm/issues/2666), Julien Kronegg) - ## [7.10.1] - 2022-12-16 ### Fixed - [Spring] Inject CucumberContextConfiguration constructor dependencies ([#2664](https://github.com/cucumber/cucumber-jvm/pull/2664) M.P. Korstanje)