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)