Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spring-boot-cucumber broken because it depends only on the spring-server module #5104

Closed
bagnier opened this issue Jan 21, 2023 · 4 comments · Fixed by #5272
Closed

spring-boot-cucumber broken because it depends only on the spring-server module #5104

bagnier opened this issue Jan 21, 2023 · 4 comments · Fixed by #5272
Labels

Comments

@bagnier
Copy link

bagnier commented Jan 21, 2023

Apply spring-boot-mvc module does not provide the spring-boot-starter-web Maven dependency.
Apply spring-boot-tomcat module does. This seems to me a little bit misleading.

For instance, the spring-boot-cucumber module can be broken because it depends only on the spring-server module.
The Maven dependencies are broken when:

  • spring-boot-mvc module is selected
  • spring-boot-cucumber is selected
  • none of the spring-boot-tomcat or spring-boot-undertow modules are provided.
@pascalgrimaud
Copy link
Member

It is a workaround for fixing #4153

Probably this fix is not perfect but it was the easiest for now.

I don't know if spring-boot-cucumber works with webflux. We should test it and if it doesn't work, we can simply change the dependency: spring-boot-cucumber should depend on spring-mvc-server

Another solution would be to rename spring-boot-mvc to spring-boot-mvc-empty so it's totally clear this module is just an empty module

@pascalgrimaud
Copy link
Member

Anyway, thanks for giving a try to this project @bagnier
Don't hesitate of you have better ideas than mine :-D

@bagnier
Copy link
Author

bagnier commented Jan 21, 2023

At first, thank you folks for this useful and ambitious project 💪 !

Thank you @pascalgrimaud for pointing me to this bug report and giving me a better understanding of the context. I will refocus this report around spring-boot-cucumber.

I tried these configurations :

  • ✅ spring-boot-cucumber + spring-boot-mvc + spring-boot-tomcat
  • ✅ spring-boot-cucumber + spring-boot-mvc + spring-boot-undertow
  • ✅ spring-boot-cucumber + spring-boot-webflux + spring-boot-webflux-netty
  • ❌ spring-boot-cucumber + spring-boot-mvc
  • ❌ spring-boot-cucumber + spring-boot-webflux

If the goal of this project is to provide a working software for any valid configuration as selected in the tool, then this issue is a bug. The spring-boot-cucumber module can be enabled without working dependencies.

my 2 cents:

  • given the context of an hexagonal architecture, a cucumber module without any dependence to the web would be useful.
  • spring-boot-cucumber may become a group around two concrete implementations, spring-boot-mvc-cucumber depending on spring-mvc-server and spring-boot-webflux-cucumber depending on spring-boot-webflux-netty
  • spring-boot-mvc-empty may be a good name, maybe spring-boot-mvc-choice ? IMHO it still feels like a workaround

@bagnier bagnier changed the title spring-boot-mvc module does not provide spring-boot-starter-web spring-boot-cucumber broken because it depends only on the spring-server module Jan 21, 2023
@pascalgrimaud pascalgrimaud added area: bug 🐛 Something isn't working and removed area: question ❓ labels Jan 21, 2023
@pascalgrimaud
Copy link
Member

Cc @DamnClin as he's the one who implemented the Cucumber module

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants