diff --git a/ktor-server/ktor-server-core/api/ktor-server-core.api b/ktor-server/ktor-server-core/api/ktor-server-core.api index 7b65f40360e..59586e5d9c4 100644 --- a/ktor-server/ktor-server-core/api/ktor-server-core.api +++ b/ktor-server/ktor-server-core/api/ktor-server-core.api @@ -153,6 +153,7 @@ public final class io/ktor/server/application/PipelineCall$DefaultImpls { } public final class io/ktor/server/application/PipelineCallKt { + public static final fun getCall (Lio/ktor/util/pipeline/PipelineContext;)Lio/ktor/server/application/ApplicationCall; public static final fun getReceiveType (Lio/ktor/server/application/ApplicationCall;)Lio/ktor/util/reflect/TypeInfo; public static final fun isHandled (Lio/ktor/server/application/ApplicationCall;)Z } @@ -1658,7 +1659,6 @@ public final class io/ktor/server/routing/RoutingCall : io/ktor/server/applicati public final class io/ktor/server/routing/RoutingContext { public fun (Lio/ktor/server/routing/RoutingCall;)V - public final fun getApplication ()Lio/ktor/server/application/Application; public final fun getCall ()Lio/ktor/server/routing/RoutingCall; } diff --git a/ktor-server/ktor-server-core/api/ktor-server-core.klib.api b/ktor-server/ktor-server-core/api/ktor-server-core.klib.api index 50203d295ab..75e902b0407 100644 --- a/ktor-server/ktor-server-core/api/ktor-server-core.klib.api +++ b/ktor-server/ktor-server-core/api/ktor-server-core.klib.api @@ -1033,8 +1033,6 @@ final class io.ktor.server.routing/RoutingCall : io.ktor.server.application/Appl final class io.ktor.server.routing/RoutingContext { // io.ktor.server.routing/RoutingContext|null[0] constructor (io.ktor.server.routing/RoutingCall) // io.ktor.server.routing/RoutingContext.|(io.ktor.server.routing.RoutingCall){}[0] - final val application // io.ktor.server.routing/RoutingContext.application|{}application[0] - final fun (): io.ktor.server.application/Application // io.ktor.server.routing/RoutingContext.application.|(){}[0] final val call // io.ktor.server.routing/RoutingContext.call|{}call[0] final fun (): io.ktor.server.routing/RoutingCall // io.ktor.server.routing/RoutingContext.call.|(){}[0] } @@ -1619,6 +1617,8 @@ final val io.ktor.server.application/ServerReady // io.ktor.server.application/S final fun (): io.ktor.events/EventDefinition // io.ktor.server.application/ServerReady.|(){}[0] final val io.ktor.server.application/application // io.ktor.server.application/application|@io.ktor.util.pipeline.PipelineContext<*,io.ktor.server.application.PipelineCall>{}application[0] final fun (io.ktor.util.pipeline/PipelineContext<*, io.ktor.server.application/PipelineCall>).(): io.ktor.server.application/Application // io.ktor.server.application/application.|@io.ktor.util.pipeline.PipelineContext<*,io.ktor.server.application.PipelineCall>(){}[0] +final val io.ktor.server.application/call // io.ktor.server.application/call|@io.ktor.util.pipeline.PipelineContext<*,0:0>{0§}call[0] + final fun <#A1: io.ktor.server.application/ApplicationCall> (io.ktor.util.pipeline/PipelineContext<*, #A1>).(): #A1 // io.ktor.server.application/call.|@io.ktor.util.pipeline.PipelineContext<*,0:0>(){0§}[0] final val io.ktor.server.application/call // io.ktor.server.application/call|@io.ktor.util.pipeline.PipelineContext<*,io.ktor.server.application.PipelineCall>{}call[0] final inline fun (io.ktor.util.pipeline/PipelineContext<*, io.ktor.server.application/PipelineCall>).(): io.ktor.server.application/PipelineCall // io.ktor.server.application/call.|@io.ktor.util.pipeline.PipelineContext<*,io.ktor.server.application.PipelineCall>(){}[0] final val io.ktor.server.application/host // io.ktor.server.application/host|@io.ktor.server.config.ApplicationConfig{}host[0] diff --git a/ktor-server/ktor-server-core/common/src/io/ktor/server/application/PipelineCall.kt b/ktor-server/ktor-server-core/common/src/io/ktor/server/application/PipelineCall.kt index e9f17acd2e7..b4365f24f66 100644 --- a/ktor-server/ktor-server-core/common/src/io/ktor/server/application/PipelineCall.kt +++ b/ktor-server/ktor-server-core/common/src/io/ktor/server/application/PipelineCall.kt @@ -10,6 +10,7 @@ import io.ktor.server.plugins.* import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.util.* +import io.ktor.util.pipeline.* import io.ktor.util.reflect.* import io.ktor.utils.io.* import kotlinx.coroutines.* @@ -119,3 +120,8 @@ public var ApplicationCall.receiveType: TypeInfo internal set(value) { attributes.put(RECEIVE_TYPE_KEY, value) } + +/** + * Convenience extension property for pipeline interceptors with Application call contexts. + */ +public val PipelineContext<*, C>.call: C get() = context diff --git a/ktor-server/ktor-server-core/common/src/io/ktor/server/routing/RoutingNode.kt b/ktor-server/ktor-server-core/common/src/io/ktor/server/routing/RoutingNode.kt index 7b88bc821f4..6984eceed66 100644 --- a/ktor-server/ktor-server-core/common/src/io/ktor/server/routing/RoutingNode.kt +++ b/ktor-server/ktor-server-core/common/src/io/ktor/server/routing/RoutingNode.kt @@ -12,6 +12,7 @@ import io.ktor.util.* import io.ktor.util.pipeline.* import io.ktor.util.reflect.* import io.ktor.utils.io.* +import kotlinx.coroutines.* import kotlin.coroutines.* /** @@ -234,10 +235,7 @@ public class RoutingCall internal constructor( */ public class RoutingContext( public val call: RoutingCall -) { - public val application: Application - get() = call.application -} +) /** * A function that handles a [RoutingCall].