El uso de Spring HATEOAS ControllerLinkBuilder y Kotlin arroja IllegalArgumentException

Estoy haciendo una pequeña aplicación de arranque de spring HATEOAS usando Kotlin. Quiero usar ControllerLinkBuilder para crear automáticamente mis enlaces de respuesta HAL de la class que los trata, así:

 user.add(linkTo(methodOn(UserController::class.java).findByName(userName)).withSelfRel()) 

pero esto arroja:

 java.lang.IllegalArgumentException: Cannot subclass final class UserController 

porque todas las classs en Kotlin son definitivas por defecto. No estoy interesado (y no quiero adquirir el hábito de) hacer todas mis classs open solo para superar esta limitación.

Tampoco quiero build manualmente mis enlaces, ya que pueden cambiar (y el ControllerLinkBuilder es muy útil para rellenar parameters, etc.

Actualmente estoy pensando que voy a tener que aceptar que mis classs de controller deben estar abiertas. ¿Conoces alguna otra manera de resolver esto?

No estoy interesado (y no quiero adquirir el hábito de) hacer todas mis classs abiertas

Solo necesita hacer que sus controlleres se abran. Y es una característica de layout del marco que está utilizando que se requiere la creación de subclasss. No hay forma de evitar la imposibilidad de subclasificar una class final . La JVM está aplicando la regla. Entonces necesitas abrirlos.

Hay otros frameworks que no requieren subclasss para producir una funcionalidad similar.