Update ktorVersion to v2 (major)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| io.ktor:ktor-server-netty | 1.6.8 -> 2.2.4 |
||||
| io.ktor:ktor-server-core | 1.6.8 -> 2.2.4 |
Release Notes
ktorio/ktor
v2.2.4
Published 28 February 2023
Bugfixes
- Connect timeout is not respected when using the HttpRequestRetry plugin (KTOR-5466)
- URLs with underscore fail to parse correctly in HTTP client request (KTOR-5591)
- Routing: Wrong content-type results in 405 instead of 415 status code with two routes (KTOR-5535)
- Compressing the response will result in unexpected ERROR log output after processing in the StatusPages (KTOR-5510)
- Javadoc for Resources.kt cannot be compiled (KTOR-5492)
- ContentNegotiation: The "charset=UTF-8" part is added for the Content-Type header (KTOR-3799)
- kotlinx.serialization.SerializationException is lost for the classes that have generic type parameters (KTOR-5448)
- OkHttp: Cancelling while writing to ByteWriteChannel when overriding WriteChannelContent causes propagation of CancellationException to a caller (KTOR-5518)
v2.2.3
Published 31 January 2023
Improvements
- ContentNegotiation: "Skipping because the type is ignored" log message is unclear (KTOR-5479)
- Make OAuth2 functionality multiplatform (KTOR-1144)
- Log HTTP request time (KTOR-1250)
- Add Client Plugins Trace Logging (KTOR-5264)
Bugfixes
- FileStorage throws java.io.FileNotFoundException (File name too long) when request path is long (KTOR-5443)
- HttpRequestRetry retries on FileNotFoundException thrown by FileStorage (KTOR-5444)
- DropwizardMetricsPlugin logs status code incorrectly when is used together with StatusPages plugin (KTOR-5420)
- Server ContentNegotiation no longer allows multiple decoders for one Content-Type (KTOR-5410)
- Multipart File doesn't upload whole file, throws "Unexpected EOF: expected 4096 more bytes" for larger files (KTOR-3455)
- Netty: Unable to set the
tcpKeepAlive(KTOR-5370) - HOCON: CLI parameters don't override custom array properties since 2.1.0 (KTOR-5100)
v2.2.2
Published 3 January 2023
Improvements
- Resource annotation should be MetaSerializable (KTOR-5397)
- The swaggerUI method is too restrictive and cannot be called inside a route (KTOR-5307)
- Engine shutdown grace period and timeout are not configurable (KTOR-5359)
- Allow specifying immutable in CacheControl (KTOR-3757)
Bugfixes
- Server cannot be started with the Swagger plugin (KTOR-5308)
- Regression in 2.2.1: Got EOF but at least 0 bytes were expected (5372)
- HttpRequestRetry: Memory leak of coroutines objects when using the plugin (KTOR-5099)
- iOS unit test deadlocks with DarwinClientEngine (KTOR-5332)
- Gzip encoding: IllegalStateException: Expected 112, actual 113 (KTOR-5300)
- Netty, HSTS: UnsupportedOperationException is thrown when the server responds before HSTS plugin (KTOR-5276)
v2.2.1
Published 7 December 2022
The critical error java.lang.NoClassDefFoundError: kotlinx/atomicfu/AtomicFU in the 2.2.0 release is fixed
v2.2.0
Published 7 December 2022
- Intergate Swagger UI Hosting as Ktor Feature (KTOR-774)
- New plugins API for client (KTOR-5161)
- Rate-Limit Support on Server (KTOR-1196)
- Make sessions plugin multiplatform (KTOR-4960)
- Add the ability to access the route inside a route-scoped plugin (KTOR-5112)
- Add a method that returns a list of child routes recursively (KTOR-581)
- Support Default Value for missing Env Variables in YAML (KTOR-5283)
- Netty: ApplicationStarted event is fired before the server starts accepting connections (KTOR-4259)
- parseAuthorizationHeader throws ParseException on header value with multiple challenges (KTOR-5216)
- ByteChannel exception: Got EOF but at least 1 byte were expected (KTOR-5252)
- Application data in OAuth State parameter (KTOR-5225)
- NativePRNGNonBlocking is not found, fallback to SHA1PRNG (KTOR-668)
- Not calling call.respond() at server results in 404 for the client (KTOR-721)
- Restoring thread context elements when directly resuming to parent is broken (KTOR-2644)
- Out of the box ContentConverter for Protobuf (KTOR-763)
- Darwin: response is never returned when usePreconfiguredSession is used (KTOR-5134)
- List<ApplicationConfig>.merge() should have reversed priority (KTOR-5208)
- Allow nested authentications to be combined using AND (KTOR-5021)
- The swaggerUI plugin should be placed in the io.ktor.server.plugins.swagger package (KTOR-5192)
- CORS Plugin should log reason for returning 403 Forbidden errors (KTOR-4236)
- The default path to an OpenAPI specification doesn't work for the 'openAPI' plugin (KTOR-5193)
- JWT: JWTPayloadHolder.getListClaim() throws NPE when specified claim is absent (KTOR-5098)
- Logging: the plugin instantiates the default logger even when a custom one is provided (KTOR-5186)
- Java client engine doesn't handle HttpTimeout.INFINITE_TIMEOUT_MS properly (KTOR-2814)
- SessionTransportTransformerMessageAuthentication: Comparison of digests fails when there is a space in a value (KTOR-5168)
- Support serving OpenAPI from resources (KTOR-5150)
- Remove check for internal class in Select (KTOR-5035)
- Persistent Client HttpCache (KTOR-2579)
- Support native windows HTTP client (KTOR-735)
- Add Server BearerAuthenticationProvider (KTOR-5118)
- Merged config: "Property *.size not found" error when calling
configListmethod on an array property (KTOR-5143) - "POSIX error 56: Socket is already connected" error when a socket is connection-mode on Darwin targets (KTOR-4877)
- StatusPages can't handle errors in HTML template (KTOR-5107)
- HttpRequestRetry: Memory leak of coroutines objects when using the plugin (KTOR-5099)
- CallLogging and CallId: exceptions thrown in WriteChannelContent.writeTo are swallowed (KTOR-4954)
- Temp files generated by multipart upload are not cleared in case of exception or cancellation (KTOR-5051)
- Websockets, Darwin: trusting a certificate via
handleChallengedoesn't work for Websockets connections (KTOR-5094) - Digest auth: Support returning any objects which implement Principal interface (KTOR-5059)
- Add Debug Logging to Default Transformers (KTOR-4529)
- No way getting client's source address from IP packet (KTOR-2501)
- Add Env Variable to Change Log Level on Native Server (KTOR-4998)
- Add Debug Logging for Ktor Plugins and Routing (KTOR-4510)
- Add Debug Logging to ContentNegotiation (KTOR-4518)
- Add Debug Logging to Routing (KTOR-4524)
- Add Debug Logging to Auth Plugin (KTOR-4519)
- Add Debug Logging to Status Pages Plugin (KTOR-4527)
- Add Debug Logging to PartialContent Plugin (KTOR-4525)
- Add Debug Logging to Sessions Plugin (KTOR-4526)
- Add Debug Logging to Call Id (KTOR-4520)
- Add Debug Logging to WebSockets Plugin (KTOR-4528)
- Add Debug Logging to Double Receive Plugin (KTOR-4530)
- Add Debug Logging to Compression Plugin (KTOR-4521)
- Make certificate generation helpers more flexible (KTOR-5023)
- Jackson converter: Support requests with Content-Length header (KTOR-4904)
- Add a way to get a client's port (KTOR-430)
- Retry and timeout client plugins don't work together (KTOR-4652)
- Server Session - Switch to Kotlinx serialization (KTOR-2572)
- ApplicationCall.respondRedirect should have overload for Url (KTOR-1538)
- Make API to Use Configuration in Application Plugins (KTOR-4533)
- Way to block use of TLS 1.0/1.1 when using Ktor/Netty (KTOR-4587)
- testApplication: application initialization block isn't eagerly called (KTOR-4819)
- testApplication: test server lifecycle management (KTOR-4773)
- The beginning character of encodedPath field(Url class) is wrong when relative path (KTOR-621)
- Unable to access userPrincipal of servletRequest in ktor-server-servlet (KTOR-4784)
- When unable to get JWKS, JWTAuth swallows the underlying exception and only logs the last message (KTOR-636)
- CIO Server generates wrong URL for OAuth URL provider using Locations (KTOR-2143)
- Inconsistency among server engines when determining port/host of an incoming request (KTOR-4141)
- Update Versions of Dependencies (KTOR-5293)
v2.1.3
Published 26 October 2022
- JS: window.location.origin returns null when executed in iframe via srcdoc attribute (KTOR-4993)
- SensitivityWatchEventModifier - Move the reflection call of this modifier out from the Ktor Core (KTOR-1647)
- "java.lang.IllegalArgumentException: Failed requirement." in SelectorManagerSupport (KTOR-2914)
- HOCON: CLI parameters don't override custom properties since 2.1.0 (KTOR-5000)
- Websockets timeout doesn't cause a close of a connection (KTOR-3504)
- DefaultHeaders: a header is duplicated in a StatusPages's handler (KTOR-4990)
- Websockets: timeout doesn't cause closing of incoming and outgoing channels (KTOR-2430)
- RFC 3986 recommendation for encoding URI is NOT followed (KTOR-993)
- Cookies: Invalid encoding of cookies' values since 1.4.0 (KTOR-917)
- ByteReadChannel is unable to read files with long lines (KTOR-2588)
- WebSocketDeflateExtension configureProtocols always failed with stackOverflow (KTOR-4916)
- Update Kotlin to 1.7.20 (KTOR-4963)
- Netty HTTP/2: response headers contain ":status" header and that leads to IllegalHeaderNameException in the ConditionalHeaders plugin (KTOR-4943)
- Maven: ktor-server-test-host-jvm causes dependency error starting from Ktor 2.0.3 (KTOR-4900)
- Autoreloading: "Flow invariant is violated" error since Ktor 2.0.3 (KTOR-4926)
- Autoreloading: ClassCastException when retrieving plugins in testApplication (KTOR-4729)
- CIO engine has wrong doc for request timeout (KTOR-4941)
- CIO: A request through a proxy server results in 403 from Cloudflare (KTOR-4925)
v2.1.2
Published 29 September 2022
- HttpCacheEntry ignoring Request Cache-Control directives (KTOR-4894)
- testApplication does not handle port and connectors (KTOR-4875)
- Native: Wrong status code when requesting with DELETE method and body (KTOR-3566)
- Default host address 0.0.0.0 isn't reachable on Windows (KTOR-4834)
- TestApplicationEngine error handling is inconsistent with DefaultEnginePipeline, breaking clients (KTOR-4009)
- Routing: Wrong content-type results in 400 Bad Request instead of 415 Unsupported Media type (KTOR-4849)
v2.1.1
Published 6 September 2022
- CIO: responses are received with a huge delay on JVM Windows (due to reverse DNS lookup internally) (KTOR-4827)
- Netty HTTP/2 not working (KTOR-578)
- HTTP/2 push fails with Netty engine (KTOR-800)
- HttpCookies: no space between cookie pairs (KTOR-3854)
- Netty ALPN provider detection not working (KTOR-4712)
- CIO: Connection reset by peer on MacOS (KTOR-2036)
- CallLogging MDC with sessions: Application feature Sessions is not installed (KTOR-550)
- Deprecate Public API with Atomicfu Declarations (KTOR-4774)
- Deprecate receiveOrNull because it's confusing (KTOR-4772)
- Server ContentNegotiation Plugin doesn't check ignoredTypes for Request Body (KTOR-4770)
- IllegalArgumentException is thrown when UnixSocketAddress.path is accessed on JVM (JDK 16+) (KTOR-4695)
- WebSocketDeflateExtension not following RFC (KTOR-4696)
- The parseWebSocketExtensions function behaves incorrectly (KTOR-3189)
- Receive non-Nullable Type Throws NPE in Case of Failure (KTOR-4771)
- Darwin: Symbol not found: OBJC_CLASS$_NSURLSessionWebSocketMessage on iOS 12 (KTOR-4159)
- Fix Merging Date Headers on the Client (KTOR-4782)
- Replace exception in InputStreamAdapter and OutputStreamAdapter constructors with warning message If parking (KTOR-4736)
- Clearing Session Cookie in Chrome 80+ with SameSite and Secure (KTOR-437)
- The
OutgoingContent.toByteArray()stalls when used in combination with aOutgoingContent.WriteChannelContent(KTOR-2126) - Missing Content-Type header in a request (KTOR-1407)
- Crash when making requests from browser inside of web worker (KTOR-4715)
- An error occurs when there is a binary such as protobuf in the response body of error (KTOR-1619)
- CallLogging configured MDC entries are not passed to StatusPages exception handlers (KTOR-4193)
- LocalFileContent incorrectly relies on the last modification time of a file to check its existence (KTOR-4707)
- Sessions: WSS in combination with Secure cookies throws IllegalArgumentException (KTOR-4697)
- Json request failure with configured form authentication (KTOR-678)
v2.1.0
Published 11 August 2022
- Add YAML Configuration Format Support (KTOR-3572)
- Allow overriding HSTS settings per host (KTOR-4578)
- CORS: Pattern matching for origin (KTOR-316)
- Darwin: Allow setting custom NSURLSession (KTOR-583)
- Support setting caching options on call (KTOR-457)
- Revert default behavior of string encoding for ContentNegotiation and JsonPlugin (KTOR-4739)
- Make Content-Length header validation optional (KTOR-4655)
- Client resources plugin miss builders for PATCH method (KTOR-4658)
- The awaitSuspend method wakes up early in closed ByteChannelSequential (KTOR-4597)
- HttpCache plugin does not support max-stale directive (KTOR-4610)
- Incoming request body validation (KTOR-503)
- Client does not support sending or receiving json null value (KTOR-745)
- Jetty: Content Length exception when body size is greater than 4096 bytes (KTOR-4622)
- Darwin: configureRequest doesn't actually configure a NSMutableURLRequest when HTTP request is made (KTOR-4719)
- OAuth2: Allow sending extra parameters for authorization and access token requests (KTOR-2128)
- Java engine: Allow configuring HTTP version (KTOR-4609)
- ContentEncoding: body<ByteArray>() receives truncated array (KTOR-4653)
- Support configuring Netty codec limits via application config (KTOR-4636)
- [OkHttp] StreamRequestBody should override isOneShot or allow multiple reads of request body (KTOR-4637)
- OverridingClassLoader fails to delegate to parent for resources (KTOR-4004)
- OkHttp and iOS: request with only-if-cache directive in Cache-Control header fails with 504 when match is stale (KTOR-4127)
- Allow Pebble to use Accepted Language header for built-in i18n support (KTOR-4593)
- Test engine can't handle concurrent requests (KTOR-4572)
- Parameters of cloned UrlBuilder affect parameters of an original builder (KTOR-4573)
- Reified type causes ApplicationCall.receive() throw UnsupportedOperationException (KTOR-3715)
- ApplicationConfig lacks the ability to export a part of the config to a third-party library (KTOR-4416)
- Path parameter doesn't get encoded in type safe requests (KTOR-3953)
- Update Kotlin to 1.7.0 (KTOR-4450)
- Bump jteVersion from 2.0.3 to 2.1.2 (KTOR-4648)
v2.0.3
Published 28 June 2022
- Development mode class loader leads to ClassCastException within a CouroutineScope (KTOR-4164)
- Validate that the body of an incoming request is received completely (KTOR-4379)
- UrlBuilder escapes fragment parameters (KTOR-4412)
- CallLogging: JVM crashes when jansi checks whether a file descriptor refers to a terminal (KTOR-3476)
- WebSocket client closes connection due to an HTTP request timeout (KTOR-4419)
- [JS client] Cannot change redirect policy by followRedirects=false (KTOR-326)
- CIO engine doesn't apply a request timeout from the
HttpTimeoutplugin (KTOR-4473) - CIO: Websockets request doesn't include query parameters (KTOR-4390)
- Ignore SIGPIPE for server sockets (KTOR-4474)
- Direct byte buffers are increased in size when server slowly processes request (KTOR-4397)
- UDP responses are received with a huge delay on JVM Windows (due to reverse DNS lookup internally) (KTOR-4423)
- "No instance for key AttributeKey: ApplicationPluginRegistry" when exception is thrown during the Call phase (KTOR-4448)
- Non-decipherable exception "No result transformation found" (KTOR-4287)
- Unable to set the Content-Type header in a request (KTOR-620)
- Update kotlinx.coroutines to 1.6.2 (KTOR-4451)
- Support the HttpTimeout capability in the DelegatingTestClientEngine (KTOR-4436)
- Limit the number of parallel running requests in Netty (KTOR-4575)
- Resources plugin fails to process parameters of type UShort (KTOR-4424)
- Resources plugin doesn't respect default values for Enum (KTOR-4411)
- Invalid request line produced by CIO engine for URL with parameters and without path (KTOR-4347)
- call.receiveText() tries to parse body as JSON when the ContentNegotiation plugin is installed (KTOR-4426)
- Ignore ByteReadChannel as receive type in ContentNegotiation (KTOR-4511)
- Setting body to TextContent leads to NPE when the ContentNegotiation plugin is installed (KTOR-4383)
- submitFormWithBinaryData call leads to NPE when the ContentNegotiation plugin is installed (KTOR-4269)
- ResponseConverter NPE when returning ByteArray with the ContentNegotiation plugin (KTOR-4399)
v2.0.2
Published 27 May 2022
- [iOS] Prevent HttpClient from persisting cookies across requests (KTOR-3748)
- Web feedback from "Creating HTTP APIs", https://ktor.io/docs/creating-http-apis.html (KTOR-4380)
- When returning a String, content negotiation is ignored (KTOR-662)
- HttpResponse.bodyAsChannel should not be converted by ContentNegotiation (KTOR-4341)
- Strings are not decoded when received as application/json (KTOR-385)
- Document how to enable/disable HTTP/2 for different client engines (KTOR-4340)
- Revert Dokka to 1.6.10 due to Publication Freeze (KTOR-4290)
- Document a new memory model in KMM tutorial (KTOR-4354)
- Make client docs less JVM-centric (KTOR-4351)
- Darwin engine: Client connection is closed after each request (KTOR-4145)
- Ios: NullPointerException when query parameters contain cyrillic symbols in values (KTOR-1858)
- A native application with the Darwin engine doesn't make a request (KTOR-3900)
- Darwin and Kotlin/JS: "List has more than one element" error when header like Content-type is duplicated in a response (KTOR-4105)
- Invalid response without error (KTOR-369)
- Invalid HTTP version should fail (KTOR-380)
- The colon after the host parameter requires a port (KTOR-382)
- Kotlin/Native: testApplication's client sometimes fails to receive ByteArray response from a route (KTOR-4197)
- "Application started" is never printed (KTOR-4319)
- Default request without explicit port sets port 80 for all requests (KTOR-4281)
- Documentation about how to configure libcurl on Windows (KTOR-3988)
- API Docs reference RFCs. Better to reference our own documentation (KTOR-3764)
- UninitializedPropertyAccessException in the handleResponseExceptionWithRequest when request or response are accessed through (KTOR-4230)HttpClientCall
- The original exception is swallowed by "No request transformation found" exception when request body is serializable object (KTOR-4160)
- IncorrectDereferenceException when trying to create HttpClient from background thread on iOS (KTOR-4263)
- JacksonWebsocketContentConverter.deserialize just doesn't work (KTOR-4248)
- Documentation for migration of Authentication server plugin (KTOR-4253)
- Add sample for the AuthenticationChecked hook (KTOR-4278)
- Web feedback from "Docker", https://ktor.io/docs/docker.html (KTOR-4282)
- Route's path parameters are empty when ApplicationCall.authentication is first accessed in a different ApplicationCall context (KTOR-4250)
- Routes with tailcard should not count for specific http error codes (KTOR-4280)
- Documentation for appending query parameters for URL in the DefaultRequest (KTOR-4252)
- Routing returns 405 even for not completely matched paths (KTOR-4267)
- Resources: builder methods return routes with PathSegmentConstantRouteSelector instead of HttpMethodRouteSelector (KTOR-4239)
- Update Netty to 4.1.77.Final (KTOR-4339)
- External services should use config from environment (KTOR-4373)
- Update Jackson to 2.13.3 (KTOR-4394)
v2.0.1
Published 28 April 2022
-
Fix URL representation (KTOR-4241)
-
embeddedServer for CIO and Netty inconsistency (KTOR-755)
-
Update Coroutines to 1.6.1 (KTOR-4240)
-
Locations: Support trailing / (KTOR-836)
-
Resources: Make
Route.handlepublic (KTOR-4200) -
Fix CURL flaky initialization (KTOR-4223)
-
Optimize Slow Native Tests (KTOR-4224)
-
Print Native Stacktrace on Timeout (KTOR-4198)
-
"""IllegalStateException: Operation is already in progress"" when the readByte is called the second time after a timeout" (KTOR-4218)
-
Update Kotlin to 1.6.21 (KTOR-4221)
-
Update code for editing an article in the 'Interactive website' tutorial (KTOR-4227)
-
DefaultRequest: HTTPS protocol isn't set when using Ktor 2.0.0 (KTOR-4142)
-
DefaultRequest: host and port aren't used for a request (KTOR-4154)
-
A table with test methods should span the entire width of the dialog (KTOR-4064)
-
StatusPages plugin does not handle most specific exception in Ktor 2.0.0 (KTOR-4187)
-
Behaviour of ApplicationEngine start method not documented properly (KTOR-2271)
-
CORS plugin should be route scoped (KTOR-4157)
-
Raw Web Socket Connection Suspending Forever (KTOR-4166)
-
StatusPages: SerializationException isn't handled when CallID plugin is installed after StatusPages plugin (KTOR-4155)
-
HttpClient.wss defaults to port 80 instead of 443 (KTOR-4175)
-
Missing subject parameter in StatusPages
statusconfig method (KTOR-4191) -
ConditionalHeaders cause the Last-Modified header appears twice in a response (2.0.0) (KTOR-4163)
-
DefaultHeaders: The Server header appears twice in a response (2.0.0) (KTOR-4152)
-
Testing: Resolving a substitution to a value in default config fails when custom HOCON config is used (KTOR-4130)
-
Combination of HttpCache and Logging plugins cause receiving incomplete response body for chunked replies (KTOR-3916)
-
2.0.0
Published 11 April 2022
- HttpClient breaks permanently when certain exceptions occur while consuming ByteReadChannel (KTOR-3140)
- Fix Dokka publication for 2.0.0 (KTOR-4194)
- [Doc] invalid KDoc link for https://ktor.io/docs/http-client-engines.html#darwin (KTOR-4165)
- Update the 'Manual Configuration' help link after the 2.0.0 release (KTOR-3678)
- Where did 1.6.8 docs go? (KTOR-4147)
- Fail to create response observer in different native thread. (KTOR-3278)
- "Ktor app with Kotlin/Native fails with ""There is no event loop. Use runBlocking { ... } to start one.""" (KTOR-4149)
- Update limitations for Kotlin/Native (KTOR-4143)
- UDP sockets on native (KTOR-1159)
- Ktor stopped working with latest Tomcat 9.0.39 (KTOR-1172)
- Update to Kotlin 1.6.20 (KTOR-4107)
- ContentNegotiation: the plugin removes Content-Type header even when a matching registration is not found (KTOR-4091)
- JMXReporter not included in ktor-metrics:1.6.8 (KTOR-4102)
- Performance Issue / Ktor & Netty (KTOR-610)
- httpMethod is not affected by X-Http-Method-Override (in opposite to docs) (KTOR-404)
- Android: Failed resolution of: Ljava/nio/file/Paths using API 25 and lower (KTOR-3269)
- ContentNegotiation plugins don't accept null-responses from ContentConverts (KTOR-3346)
- Using proguard and CallLogging feature causes JVM crashes (KTOR-3345)
- Remove checking body transformation from ContentNegotation (KTOR-3272)
- Feature: Use websockets with serialization (KTOR-423)
- Fix
testErrorHandlingwith JS (KTOR-3510) - [netty] Headers are only flushed after first byte is written (KTOR-3364)
- AttributeKey instance is identified by its identity instead of its name (KTOR-3538)
- HttpCookies: parse / in the name of a cookie (KTOR-3497)
- Returning Thymeleaf fragments from Routes (KTOR-3624)
- Rewrite Thymeleaf to New Plugins API (KTOR-3687)
- Rewrite HSTS to new plugins API (KTOR-3752)
- Rewrite FreeMarker to new Plugins API (KTOR-3751)
- Rewrite CachingHeaders to New Plugins API (KTOR-3688)
- Implementation for Single Page Plugin (KTOR-3635)
- Sockets no longer working on Android since 2.0.0-beta-1 (KTOR-3659)
- Implementation for Single Page Plugin (KTOR-3577)
- Content Negotiation: Gson: Should be able to return 400 for badly formatted request. (KTOR-373)
- Rewrite ConditionalHeaders to New Plugins API (KTOR-3759)
- Single Page Plugin (KTOR-3531)
- HttpResponseValidator.handleResponseException should have access to request to provide valuable information in exceptions (KTOR-3652)
- Build in feature for Single PAge Applications (KTOR-515)
- "ContentNegotiation: The ""charset=UTF-8"" part is added for the Content-Type header" (KTOR-3799)
- Rewrite Netty Engine (KTOR-3467)
- SinglePageApplication plugin returns 404 for non-existent paths (KTOR-3944)
- Split packages in KTOR Client 2.00-BETA-1 (KTOR-4106)
- Support WebSockets in Darwin engine (KTOR-4093)
- Ktor http client with java engine uses incorrect timeout. (KTOR-4058)
- ktor-client performance (KTOR-506)
- InvalidPathException in ApplicationEngineEnvironmentReloading (KTOR-3831)
- "Screenshot with the new project wizard on the ""Create a new project"" topic is outdated" (KTOR-4020)
- Add possibility to fully configure metricName in ktor-server-metrics-micrometer (KTOR-3302)
- Adding Native support to ktor-server-html-builder for 2.0.0 release (KTOR-3972)
- Ktor: Allow overriding coroutine dispatcher in MockEngine (KTOR-3230)
- HttpClient request hangs when Logging plugin is installed (KTOR-3970)
- Ktor uses too much memory compared to other Http server libraries (KTOR-3903)
- [client] MPP WebSockets client (KTOR-751)
- Native websocket client support (KTOR-599)
- Don't perform migrations for MPP projects (KTOR-3812)
- Change visibility from internal to public to HttpResponse and HttpClientCall (KTOR-3984)
- Rename the 'header' function to 'allowHeader' for consistency with similar functions (KTOR-3980)
- The CallID plugin missing in a New Project wizard (KTOR-2911)
- IDEA plugin missing the Session authentication (KTOR-3359)
- Install plugin completion doesn't work with custom built version of Ktor from main (KTOR-4031)
- Memory leak when Compression plugin is installed (KTOR-4028)
- Make most useful hooks public (KTOR-3797)
- The ShutDownUrl sample doesn't work in the latest EAP (KTOR-4025)
- OAuth: scopes are separated by + that's encoded to %2B (KTOR-3945)
- The Caching headers plugin stops working in the latest EAP (KTOR-4022)
- The 'allowHeadersPrefixed' and 'allowHeaders' CORS functions works incorrectly (KTOR-3979)
- Migrate Generator to New Testing API (KTOR-3763)
- Support receiving OAuth code response as form post (KTOR-3342)
- Ktor test websocket call hangs (KTOR-4000)
- Implementation for Create
ktor-testmodule with mocks of engine and clients for writing tests (KTOR-3236) - Remove mutex from call logging (KTOR-3987)
- Add jte template support (KTOR-3749)
- No contextual serializers when KotlinxSerializationConverter is used (KTOR-3782)
- Add support for list size methods in PlaceholderList (KTOR-3940)
- Missing headers in OutgoingContent (KTOR-3758)
- ResponseObserver does not respect MDC context (KTOR-2435)
- Binary compatibility issue with ktor-2.0.0-beta1 when using JDK 1.8 (KTOR-3645)
- Enhance api for ConditionalHeaders usage (KTOR-728)
- localization issue with new project wizard - plugin page (KTOR-3943)
- IDE action to migrate to 2.0.0 (KTOR-3225)
- Add colors to CLI client (KTOR-3929)
- Support macOs M1 in CLI generator (KTOR-3922)
- Bearer Auth: refreshTokens callback blocks indefinitely when server returns 401 (KTOR-3795)
- "ContentEncoding: ""Unexpected EOF: expected 10 more bytes"" when trying to decode HEAD response" (KTOR-3781)
- Memory leak in ktor-client-curl (KTOR-3767)
- Rename ApplicationPlugin<A, B, C> to BaseApplicationPlugin<A, B, C> (KTOR-3873)
- Ktor Server and double receive break receiving of big files (KTOR-3832)
- Setting Content-Length Header manually when using call.respondOutputStream (KTOR-560)
- Support for adding values to the MDC later on in the pipeline. (KTOR-536)
- Default request: Query parameters in default URL are overwritten (KTOR-3793)
- Timeout in receiving streaming body breaks client (KTOR-3704)
- Setting DefaultRequest.url.protocol on the client side breaks the ability to establish a ws connection (KTOR-3890)
- Rename the 'io.ktor.resources.serialisation' package to '...serialization' for consistency (KTOR-3842)
- Generator performance: cache Maven requests (KTOR-3866)
- JS: Websocket errors are not being handled correctly (KTOR-1726)
- Logback transient depencency from ktor-server-test-host (KTOR-2038)
- Ktor plugin is asking to migrate to EAP versions (KTOR-3609)
- "Module ""io.ktor:ktor-network (io.ktor:ktor-network-iosarm64)"" has a reference to symbol kotlinx.coroutines/SingleThreadDispatcher|null[0]" (KTOR-3562)
- Retry on HttpCode or network error (KTOR-572)
- Server hangs indefinitely when responding to requests on android using version 2.0.0 (KTOR-3653)
- IllegalStateException when writing in coroutine context backed by more than one thread (KTOR-3801)
- References for kotlinx.serialization plugin sample code in a new Ktor project created with Maven build system are unresolved (KTOR-3754)
- multipart/form-data requests: No way of streaming data asynchronously (KTOR-3825)
- Migrate ForwardHeaderSupport to new API (KTOR-3677)
- Sort endpoints in Endpoint view and when creating tests (KTOR-3725)
- StackOverflowError when opening Enpoints view with local Routing function (KTOR-3816)
- Provide an example how to use new MultiPartFormDataContent (#KTOR-325) (KTOR-3549)
- Client docs for desktop are misleading (KTOR-3813)
- When working with SessionStorage, write is called every time after read (KTOR-3336)
- DefaultRequest API doc contains missing members (KTOR-3800)
- testApplication: Add https EngineConnector (KTOR-3810)
- Rewrite HttpsRedirect to New Plugins API (KTOR-3668)
- Rewrite WebJars to New Plugins API (KTOR-3667)
- Rewrite Metrics to New Plugins API (KTOR-3666)
- Rewrite PartialContent to New Plugins API (KTOR-3665)
- Rewrite CallId to New Plugins API (KTOR-3352)
- Drop Before/After from new plugins API (KTOR-3803)
- Performance: Don't store PSI elements in Ktor Url Mappings. Use Smart Reference or PSI Anchor, instead (KTOR-3789)
- Infrastructure: Build with JDK 11 for all modules fails: Can't inline metric micrometer because it uses jvm target 8 (KTOR-3712)
- The 'refreshTokens' callback isn't invoked when an API returns a 401 response without the 'WWW-Authenticate' header (KTOR-3516)
- Add DslMarker to testApplication builder (KTOR-3783)
- Prohibit Nesting of
installBlocks for Client and Server Configuration (KTOR-3333) - In docs and generated Gradle, Prometheus is misspelled as Promteteus (KTOR-3792)
- submitFormWithBinaryData: mutation attempt of frozen
- iOS: Failed to find HttpClientEngineContainer with new native memory model (KTOR-3517)
- Rewrite CallLogging to new plugins API (KTOR-3351)
- Drop @ExperimentalTime (KTOR-3595)
- Using any Suspend or Coroutine function in Bearer Auth functions cause crash on iOS (KTOR-3177)
- [iOS] InvalidMutabilityException: mutation attempt of frozen (KTOR-1223)
- InvalidMutabilityException: Configuration issues for ios (KTOR-1251)
- iOS testing MockEngine issue (KTOR-1541)
- """InvalidMutabilityException: Frozen during lazy computation"" when using by lazy for HttpClient" (KTOR-1087)
- kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlin.collections on iOS when deserializing class that contains less properties than the json (KTOR-2740)
- Native: Cannot mutate objects inside onDownload and onUpload lambdas (KTOR-3068)
- "HttpClient / native: ""mutation attempt of frozen"" crash when configuring the client" (KTOR-1628)
- Ktor Kotlin Multiplatform leak (KTOR-3586)
- Put label to local history before performing migration in Ktor (KTOR-3716)
- StatusPages plugin continues call after calling handler (KTOR-3707)
- StatusPages not returning code 500 on catched exception (KTOR-3721)
- Rewrite Compression to New Plugins API (KTOR-3661)
- Rewrite Auto Head to New Plugins API (KTOR-3670)
- Rewrite DoubleReceive to New Plugins API (KTOR-3672)
- Make default charset UTF-8 when using
receiveTextfor application/json request (KTOR-789) - Rewrite CORS to New Plugins API (KTOR-3663)
- Rewrite Auth to New Plugins API (KTOR-3660)
- Rewrite Sessions to New Plugins API (KTOR-3664)
- Rewrite ContentNegotiation to New Plugins API (KTOR-3669)
- Rewrite MethodOverride to New Plugins API (KTOR-3662)
- Client logging: no description of default loggers' behavior on different platforms (KTOR-3421)
- Update logback and slf4j (KTOR-3733)
- NoClassDefFoundError is thrown on Android because ktor-utils references a not supported Java API (KTOR-3690)
- Ktor-Utils references a Java API not supported by Android (KTOR-3426)
- Migrate plugins to multiplatform (KTOR-3539)
- ByteBufferChannel leaves unflushed data after partial readAvailable causing Apache client request to stall (KTOR-3730)
- Migrate DefaultHeaders to new API (KTOR-3676)
- ByteReadPacket.headerSizeHint is unused (KTOR-3632)
- Hooks don't work with routing scoped plugins (KTOR-3740)
- Client request builder: add shortcuts for authentication headers (KTOR-2876)
- Pull Request - KTOR-404 Introduce support for X-Http-Method-Override (KTOR-1825)
- Can't set a base url that includes path data (KTOR-730)
- Mention about closing ActorSelector manager (KTOR-269)
- Migrate to new kotlinx.coroutines and
limiteddispatcher(revert corePoolSize option) (KTOR-3463) - Routing is called for handled requests (KTOR-3732)
- TomCat Documentation (KTOR-2395)
- default resource package don't work (KTOR-3722)
- webSocketSession method suspends indefinitely when there in connection error (Ktor beta) (KTOR-3654)
- FUS metrics in IDE (KTOR-2775)
- Update Documentation and Code for DoubleReceive Feature (KTOR-1876)
- Add Defaults for the server.stop Method ([KTOR-3505](https://youtrack.jetbr
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.