All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.resteasy.reactive.server.runtime.kotlin.PrepareExecution.kt Maven / Gradle / Ivy

There is a newer version: 3.15.1
Show newest version
package org.jboss.resteasy.reactive.server.runtime.kotlin

import io.vertx.core.Vertx
import jakarta.enterprise.inject.spi.CDI
import kotlinx.coroutines.CoroutineDispatcher
import org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext

fun prepareExecution(
    requestContext: ResteasyReactiveRequestContext
): Pair {
    val requestScope = requestContext.captureCDIRequestScope()
    val dispatcher: CoroutineDispatcher =
        Vertx.currentContext()?.let { VertxDispatcher(it, requestScope, requestContext) }
            ?: throw IllegalStateException("No Vertx context found")

    val coroutineScope = CDI.current().select(ApplicationCoroutineScope::class.java)
    requestContext.suspend()

    return Pair(dispatcher, coroutineScope.get())
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy