karibu-testing icon indicating copy to clipboard operation
karibu-testing copied to clipboard

Karibu Vaadin 8 for Spring Boot 3

Open tdq opened this issue 1 year ago • 6 comments

Hey! Karibu is nice tool, but it looks like it is not adapted for being used with Vaadin 8 and Spring Boot 3. Maybe you can prepare some addon for this?

Best regards, Nikolay

tdq avatar Dec 04 '24 06:12 tdq

I doubt this is possible. Vaadin >= 10 has a very different architecture. Additionally Vaadin 8 is end of life since February 2022.

simasch avatar Dec 04 '24 06:12 simasch

@simasch Vaadin 8 has extended support until 2032. Some companies are using it.

tdq avatar Dec 04 '24 07:12 tdq

I know. The biggest problem is the architecture. This would require a complete rewrite of Karibu Testing and for a product that is end of life not worth the effort.

simasch avatar Dec 04 '24 07:12 simasch

Hm... the only issue is that javax package was replaced by jakarta, I thought it would be very simple task.

tdq avatar Dec 04 '24 07:12 tdq

Thanks @simasch . There are the following arguments against doing that:

  • Vaadin 8 uses javax APIs while Spring Boot 3+ uses jakarta APIs.
  • There's Vaadin 8 build which uses jakarta APIs and is in theory compatible with Spring Boot 3, but that for sure requires a paid Vaadin8jakarta which is on extended support.
  • Vaadin 8 is only supported in Karibu-Testing 1.3.x which is no longer maintained.
  • Karibu-Testing is OSS; it's not a goal of this project to support commercial offerings.
  • The audience for this kind of change will be limited and shrinking.

That being said, you can fork Karibu-Testing 1.4.x, make it work with jakarta APIs, then create an example project of Karibu+Vaadin8jakarta+SB3. If that works, we can then discuss some way of merging this back and releasing a new Karibu for Vaadin8jakarta. Alternatively, please feel free to reach out to the Vaadin company itself and have Vaadin do it as a sponsored development.

EDIT: Karibu-Testing 1.4.x still includes support for Vaadin 8 and KT 1.4.x is maintained, that's true... but the Vaadin 8 bits are in hibernation mode, so it doesn't really change the argument.

mvysny avatar Dec 04 '24 07:12 mvysny

Hm... the only issue is that javax package was replaced by jakarta, I thought it would be very simple task.

True, that indeed is; it could be as simple as a text replacement javax->jakarta. But there are other tasks as well:

  • make sure GitHub Actions use Vaadin license when running tests
  • investigate which Vaadin 8 version to use
  • Do the change and fix any incompatibilities introduced by Vaadin version upgrade
  • prepare a Vaadin8+SB3 example app + write tests for it + prepare GitHub Actions to run those tests
  • update documentation
  • Figure out a way to inline this: will we drop support for javax and thus non-commercial Vaadin 8's? Or, will we duplicate the Karibu-Testing Vaadin 8-related bits into a new Gradle module and release it side-by-side with the old offering? This would probably be the best way to do it. Alternatively, a separate git branch and release off that? I'd then have to remember to merge things between branches, probably not a good idea.

mvysny avatar Dec 04 '24 07:12 mvysny