Deprecating Kotlin and Undertow modules

29 views
Skip to first unread message

Andrus Adamchik

unread,
Nov 10, 2023, 10:36:57 AM11/10/23
to Bootique User Group
Hi,

We are planning to release the second 3.0 milestone of Bootique probably by the end of next week. It is shaping up really well, and features a lot of upstream library upgrades, as well as new features across many modules.

But this email is about something else - I am thinking we should deprecate a few Bootique integrations, and would like to discuss any counter-arguments:

1. bootique-kotlin: the idea to provide an even friendlier Bootique API and configuration for server-side Kotlin developers using Kotlin-specific features was a solid one. But there's currently no way to support, let alone to modernize and improve it properly. So we'll have to let it go.

2. bootique-undertow: Here we provided a whole custom API for handling web requests. There's nothing wrong with this, and I know that Servlet specification is no longer the universal standard that it used to be. But nobody in the part of the Bootique community known to me is using it, hence no motivation to support it and/or make it better.

3. bootique-jdbc-tomcat: it works perfectly well, but we also have a Hikari DataSource, so just reducing the support footprint.

4. javax versions of everything that has a jakarta flavor. This is just a part of the upgrade cycle. Jakarta community is already well-established, and once you switch over, you will never look back.

The deprecation will happen in M3, i.e. after the M2 is released. All these modules will be fully removed in the future Bootique 4.0. Please feel free to advocate for keeping any of them around for longer (or permanently). We'd be happy to hear the feedback and discuss support options.

Andrus


Andrus Adamchik

unread,
Nov 10, 2023, 10:53:42 AM11/10/23
to Bootique User Group
Forgot one more candidate for deprecation:

5. bootique-aws v1 API modules

I think we might add "deprecated" flag to module metadata, so that the use of such modules can be explicitly detected in an app and e.g. logged on startup.

Andrus

Andrus Adamchik

unread,
Nov 25, 2023, 6:51:06 PM11/25/23
to Bootique User Group
The deprecation run was just finished on "master" for all modules listed here. I also added a deprecation startup check to Bootique, so if you are using any deprecated modules, it would print a list to "stderr". E.g. from our own unit tests:

** Deprecation alert - JettyModule: Deprecated, can be replaced with 'bootique-jetty-jakarta'.
** Deprecation alert - AgrestModule: Deprecated, can be replaced with 'bootique-agrest5-jakarta'.
** Deprecation alert - AgrestSwaggerModule: Deprecated, can be replaced with 'bootique-agrest5-jakarta-swagger'.
** Deprecation alert - JerseyModule: Deprecated, can be replaced with 'bootique-jersey-jakarta'.
** Deprecation alert - SwaggerModule: Deprecated, can be replaced with 'bootique-swagger-jakarta'.

Andrus

Andrus Adamchik

unread,
Apr 4, 2024, 3:23:38 PMApr 4
to Bootique User Group
Hi,

We had a 3.0-M3 release today. It has some pretty exciting features and there will be a separate announcement.

What I wanted to mention here though is that we can no longer continue with the slow deprecation path for "bootique-kotlin". The latest changes to the core required a non-trivial Kotlin porting effort. So we had to make a decision to exclude "bootique-kotlin" from 3.0-M3. Here is a short FAQ on this (should probably paste it in "bootique-kotlin" README) :

1. Can I use Bootique in my Kotlin project?
Yes, just use the vanilla Java runtime without the special extensions

2. I like the extensions provided by "bootique-kotlin", can you return them back?
I'd be personally open to this if there is a real interest with real use cases, and especially, if someone is willing to be the maintainer / champion of this module going forward. If you are considering this, please talk to us here or privately and we can discuss the options.

Andrus


Reply all
Reply to author
Forward
0 new messages