javalin / javalin-openapi

Annotation processor for compile-time OpenAPI & JsonSchema, with out-of-the-box support for Javalin 5.x, Swagger & ReDoc
https://github.com/javalin/javalin-openapi/wiki
Apache License 2.0
45 stars 17 forks source link

kapt is in maintenance mode #210

Closed mzielinski closed 7 months ago

mzielinski commented 7 months ago

Information from kapt official page is:

kapt is in maintenance mode. We are keeping it up-to-date with recent Kotlin and Java releases but have no plans to implement new features. Please use the [Kotlin Symbol Processing API (KSP)](https://kotlinlang.org/docs/ksp-overview.html) for annotation processing. [See the list of libraries supported by KSP](https://kotlinlang.org/docs/ksp-overview.html#supported-libraries).

Are you plan to rewrite it to KSP?

dzikoysk commented 7 months ago

The warning in Kotlin docs may look a bit worrying, but that's not something we need to care about. This plugin is written for raw annotation processing API that is a part of Java specification - thanks to that we can process both, Java and Kotlin sources using the same implementation. Kapt is basically a tiny abstraction that makes Java's annotation processing possible on Kotlin sources and that's all we need - we're not really looking for Kotlin specific features here, so this approach works for us.

Speaking about KSP:

It could be supported as an alternative processor, purely for Kotlin, but we'd need to write some abstraction to avoid duplicating the same implementation in both tools. I was looking at it a while ago, but it was really unstable, and it'd be quite hard to reflect all current features there. The only real benefit that it'd give us is performance - KSP is simply faster, because it works directly on Kotlin sources. I'm gathering some experience in working with it in Sqiffy, so I'm kinda keeping track of this topic.