Skip to content

Commit d9238de

Browse files
committed
GH-40 Migrate to Javalin 6.0.0-beta.4, release 6.0.0-SNAPSHOT
1 parent 41062e8 commit d9238de

File tree

10 files changed

+64
-34
lines changed

10 files changed

+64
-34
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Each module is distributed as a separate artifact:
3535

3636
```kotlin
3737
dependencies {
38-
val javalinRoutingExtensions = "5.6.2-RC.1"
38+
val javalinRoutingExtensions = "6.0.0-SNAPSHOT"
3939
implementation("io.javalin.community.routing:routing-core:$javalinRoutingExtensions")
4040
implementation("io.javalin.community.routing:routing-annotated:$javalinRoutingExtensions")
4141
implementation("io.javalin.community.routing:routing-dsl:$javalinRoutingExtensions")

build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
kotlin("jvm") version "1.9.20"
5-
kotlin("kapt") version "1.9.20"
4+
kotlin("jvm") version "1.9.22"
5+
kotlin("kapt") version "1.9.22"
66
jacoco
77
signing
88
`maven-publish`
@@ -117,12 +117,12 @@ subprojects {
117117
apply(plugin = "org.jetbrains.kotlin.kapt")
118118

119119
dependencies {
120-
val javalin = "6.0.0-SNAPSHOT"
120+
val javalin = "6.0.0-beta.4"
121121
compileOnly("io.javalin:javalin:$javalin")
122122
testImplementation("io.javalin:javalin:$javalin")
123123
testImplementation("io.javalin:javalin-testtools:$javalin")
124124

125-
val openapi = "5.6.3"
125+
val openapi = "6.0.0-SNAPSHOT"
126126
kaptTest("io.javalin.community.openapi:openapi-annotation-processor:$openapi")
127127
testImplementation("io.javalin.community.openapi:javalin-openapi-plugin:$openapi")
128128

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

routing-annotations/routing-annotated/src/main/kotlin/io/javalin/community/routing/annotations/AnnotatedRouting.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.javalin.community.routing.annotations
22

33
import io.javalin.community.routing.Route
44
import io.javalin.community.routing.dsl.DslRoute
5+
import io.javalin.community.routing.invokeAsSamWithReceiver
56
import io.javalin.community.routing.registerRoute
67
import io.javalin.community.routing.sortRoutes
78
import io.javalin.config.JavalinConfig
@@ -10,7 +11,7 @@ import io.javalin.http.Context
1011
import io.javalin.http.Handler
1112
import io.javalin.router.InternalRouter
1213
import io.javalin.router.RoutingApiInitializer
13-
import java.util.function.Consumer
14+
import io.javalin.router.RoutingSetupScope
1415

1516
fun interface HandlerResultConsumer<T> {
1617
fun handle(ctx: Context, value: T)
@@ -46,9 +47,9 @@ object AnnotatedRouting : RoutingApiInitializer<AnnotatedRoutingConfig> {
4647

4748
private data class RouteIdentifier(val route: Route, val path: String)
4849

49-
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: Consumer<AnnotatedRoutingConfig>) {
50+
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: RoutingSetupScope<AnnotatedRoutingConfig>) {
5051
val configuration = AnnotatedRoutingConfig()
51-
setup.accept(configuration)
52+
setup.invokeAsSamWithReceiver(configuration)
5253

5354
val loader = ReflectiveEndpointLoader(configuration.resultHandlers)
5455
val registeredRoutes = mutableListOf<AnnotatedRoute>()

routing-annotations/routing-annotated/src/main/kotlin/io/javalin/community/routing/annotations/ReflectiveEndpointLoader.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.javalin.community.routing.dsl.DefaultDslException
55
import io.javalin.community.routing.dsl.DefaultDslRoute
66
import io.javalin.http.Context
77
import io.javalin.http.HttpStatus
8-
import io.javalin.validation.validation
8+
import io.javalin.validation.Validation
99
import java.lang.reflect.Method
1010
import java.lang.reflect.Parameter
1111
import kotlin.reflect.KClass
@@ -198,7 +198,7 @@ internal class ReflectiveEndpointLoader(
198198
getAnnotation(Cookie::class.java)
199199
.value
200200
.ifEmpty { name }
201-
.let { ctx.validation().validator(it, type, ctx.cookie(it)) }
201+
.let { Validation().validator(it, type, ctx.cookie(it)) }
202202
.get()
203203
}
204204
isAnnotationPresent(Body::class.java) -> { ctx, _ ->

routing-annotations/routing-annotated/src/test/java/io/javalin/community/routing/annotations/AnnotatedRoutingTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ class AnnotatedRoutingTest {
4141

4242
assertThat(matcher.findHttpHandlerEntries(HandlerType.GET, "/test/with"))
4343
.hasSize(1)
44-
.allMatch { it.path == "/test/with" }
44+
.allMatch { it.endpoint.path == "/test/with" }
4545

4646
assertThat(matcher.findHttpHandlerEntries(HandlerType.GET, "/test/without"))
4747
.hasSize(1)
48-
.allMatch { it.path == "/test/without" }
48+
.allMatch { it.endpoint.path == "/test/without" }
4949
}
5050

5151
@Test

routing-core/src/main/kotlin/io/javalin/community/routing/JavalinRoutingExtensions.kt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package io.javalin.community.routing
33
import io.javalin.Javalin
44
import io.javalin.http.Handler
55
import io.javalin.http.HandlerType
6+
import io.javalin.router.Endpoint
67
import io.javalin.router.InternalRouter
8+
import io.javalin.router.RoutingSetupScope
79
import io.javalin.security.RouteRole
810

911
class JavalinRoutingExtensions(private val javalin: Javalin) {
@@ -41,14 +43,18 @@ fun InternalRouter.registerRoute(handlerEntry: HandlerEntry) =
4143

4244
fun InternalRouter.registerRoute(route: Route, path: String, handler: Handler, vararg roles: RouteRole) {
4345
when (route) {
44-
Route.HEAD -> addHttpHandler(HandlerType.HEAD, path, handler, *roles)
45-
Route.PATCH -> addHttpHandler(HandlerType.PATCH, path, handler, *roles)
46-
Route.OPTIONS -> addHttpHandler(HandlerType.OPTIONS, path, handler, *roles)
47-
Route.GET -> addHttpHandler(HandlerType.GET, path, handler, *roles)
48-
Route.PUT -> addHttpHandler(HandlerType.PUT, path, handler, *roles)
49-
Route.POST -> addHttpHandler(HandlerType.POST, path, handler, *roles)
50-
Route.DELETE -> addHttpHandler(HandlerType.DELETE, path, handler, *roles)
51-
Route.AFTER -> addHttpHandler(HandlerType.AFTER, path, handler)
52-
Route.BEFORE -> addHttpHandler(HandlerType.BEFORE, path, handler)
46+
Route.HEAD -> addHttpEndpoint(Endpoint(method = HandlerType.HEAD, path = path, handler = handler, roles = roles))
47+
Route.PATCH -> addHttpEndpoint(Endpoint(method = HandlerType.PATCH, path = path, handler = handler, roles = roles))
48+
Route.OPTIONS -> addHttpEndpoint(Endpoint(method = HandlerType.OPTIONS, path = path, handler = handler, roles = roles))
49+
Route.GET -> addHttpEndpoint(Endpoint(method = HandlerType.GET, path = path, handler = handler, roles = roles))
50+
Route.PUT -> addHttpEndpoint(Endpoint(method = HandlerType.PUT, path = path, handler = handler, roles = roles))
51+
Route.POST -> addHttpEndpoint(Endpoint(method = HandlerType.POST, path = path, handler = handler, roles = roles))
52+
Route.DELETE -> addHttpEndpoint(Endpoint(method = HandlerType.DELETE, path = path, handler = handler, roles = roles))
53+
Route.AFTER -> addHttpEndpoint(Endpoint(method = HandlerType.AFTER, path = path, handler = handler))
54+
Route.BEFORE -> addHttpEndpoint(Endpoint(method = HandlerType.BEFORE, path = path, handler = handler))
5355
}
56+
}
57+
58+
fun <SETUP> RoutingSetupScope<SETUP>.invokeAsSamWithReceiver(receiver: SETUP) {
59+
with(this) { receiver.setup() }
5460
}

routing-core/src/test/kotlin/io/javalin/community/routing/JavalinRoutesTest.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@ class JavalinRoutesTest {
2323

2424
// then: all routes are registered by as proper HandlerType
2525
routes.forEach { (method, handler) ->
26-
assertThat(
27-
app.unsafeConfig().pvt.internalRouter
26+
val endpoint = app.unsafeConfig()
27+
.pvt
28+
.internalRouter
2829
.findHttpHandlerEntries(HandlerType.findByName(method.name), "/")
2930
.firstOrNull()
30-
?.handler
31-
).isEqualTo(handler)
31+
?.endpoint
32+
33+
assertThat(endpoint?.method?.name).isEqualTo(method.name)
34+
assertThat(endpoint?.path).isEqualTo("/")
3235
}
3336
}
3437

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
11
package io.javalin.community.routing.coroutines
22

33
import io.javalin.community.routing.coroutines.servlet.CoroutinesServlet
4+
import io.javalin.community.routing.invokeAsSamWithReceiver
45
import io.javalin.community.routing.sortRoutes
56
import io.javalin.config.JavalinConfig
67
import io.javalin.http.Handler
78
import io.javalin.http.HandlerType
9+
import io.javalin.router.Endpoint
810
import io.javalin.router.InternalRouter
911
import io.javalin.router.RoutingApiInitializer
10-
import java.util.function.Consumer
12+
import io.javalin.router.RoutingSetupScope
1113

1214
class Coroutines<ROUTE : SuspendedRoute<CONTEXT, RESPONSE>, CONTEXT, RESPONSE : Any>(
1315
private val servlet: CoroutinesServlet<CONTEXT, RESPONSE>,
1416
) : RoutingApiInitializer<CoroutinesRouting<ROUTE, CONTEXT, RESPONSE>> {
1517

16-
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: Consumer<CoroutinesRouting<ROUTE, CONTEXT, RESPONSE>>) {
18+
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: RoutingSetupScope<CoroutinesRouting<ROUTE, CONTEXT, RESPONSE>>) {
1719
val coroutinesRouting = CoroutinesRouting<ROUTE, CONTEXT, RESPONSE>()
18-
setup.accept(coroutinesRouting)
20+
setup.invokeAsSamWithReceiver(coroutinesRouting)
1921

2022
coroutinesRouting
2123
.routes
2224
.sortRoutes()
2325
.map { it to Handler { ctx -> servlet.handle(ctx, it) } }
24-
.forEach { (route, handler) -> internalRouter.addHttpHandler(HandlerType.valueOf(route.method.toString()), route.path, handler) }
26+
.forEach { (route, handler) ->
27+
internalRouter.addHttpEndpoint(
28+
Endpoint(
29+
method = HandlerType.valueOf(route.method.toString()),
30+
path = route.path,
31+
handler = handler
32+
)
33+
)
34+
}
2535
}
2636

2737
}

routing-dsl/src/main/kotlin/io/javalin/community/routing/dsl/DslRouting.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import io.javalin.community.routing.dsl.defaults.DefaultDsl
44
import io.javalin.community.routing.dsl.defaults.DefaultDsl.DefaultConfiguration
55
import io.javalin.community.routing.dsl.defaults.DefaultDsl.DefaultScope
66
import io.javalin.community.routing.dsl.defaults.DefaultRoute
7+
import io.javalin.community.routing.invokeAsSamWithReceiver
78
import io.javalin.community.routing.sortRoutes
89
import io.javalin.config.JavalinConfig
910
import io.javalin.http.HandlerType
11+
import io.javalin.router.Endpoint
1012
import io.javalin.router.InternalRouter
1113
import io.javalin.router.RoutingApiInitializer
12-
import java.util.function.Consumer
14+
import io.javalin.router.RoutingSetupScope
1315

1416
open class DslRouting<
1517
CONFIG : RoutingDslConfiguration<ROUTE, CONTEXT, RESPONSE>,
@@ -24,14 +26,22 @@ open class DslRouting<
2426
object Dsl : DslRouting<DefaultConfiguration, DefaultRoute, DefaultScope, Unit>(DefaultDsl)
2527
}
2628

27-
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: Consumer<CONFIG>) {
29+
override fun initialize(cfg: JavalinConfig, internalRouter: InternalRouter, setup: RoutingSetupScope<CONFIG>) {
2830
val dslConfig = factory.createConfiguration()
29-
setup.accept(dslConfig)
31+
setup.invokeAsSamWithReceiver(dslConfig)
3032

3133
dslConfig.routes
3234
.sortRoutes()
3335
.map { route -> route to factory.createHandler(route) }
34-
.forEach { (route, handler) -> internalRouter.addHttpHandler(HandlerType.valueOf(route.method.toString()), route.path, handler) }
36+
.forEach { (route, handler) ->
37+
internalRouter.addHttpEndpoint(
38+
Endpoint(
39+
method = HandlerType.valueOf(route.method.toString()),
40+
path = route.path,
41+
handler = handler
42+
)
43+
)
44+
}
3545

3646
dslConfig.exceptionHandlers.forEach { (exceptionClass, handler) ->
3747
internalRouter.addHttpExceptionHandler(exceptionClass.java, factory.createExceptionHandler(handler))

0 commit comments

Comments
 (0)