CHANGELOG.md 22,9 КБ
Newer Older
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1
2
3
4
# 1.3.0
> Unpublished yet

* ktor client proxy support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
5
* Introduced `HttpStatement` and deprecated potentially dangerous client API
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
6
7
8
9
10
11
12
13
14
* Eliminated kotlinx.io dependency 
* Fixed server identity compression handling: keep original content length
* Fixed handling GET requests with body (#1302)
* Fixed curl request with empty body
* Added iOS url session configuration
* Fixed CIO engine no longer sends port in "Host" header (#1295)
* Add INTRINSIC value to TLS signature algorithms
* Introduced ability to send string in request body
* Improved client and server typeOf support with kotlinx.serialization
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
15
* Gradle 5.4.1+ with newer metadata (metadata 1.0)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
16
17
* Improved exceptions handling in client and server on Android
* Added missing TLS parameters and relaxed TLS parsing to ignore unsupported features
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
18
19
20
21
22
23
24
25
26
27
28
29
30
* Improved session diagnostics (#1368)
* Fixed `hookRequests` in test engine (#1300)
* Deprecate java.time related API and related cleanup (for future kotlin.time support)
* Restricted CIO HTTP headers parser
* Introduced header name and value validation
* Fixed must-revalidate on the request side in ktor client (#1406)
* Fixed OkHttp close method
* Added watchos/tvos native targets
* Fixed content truncation at native and JS targets
* Fixed server's `If-Range` header parsing to avoid crash at date parsing (#1377) 
* Fixed server's conditional headers processing
* Reduced required JDK version for `DefaultHeaders` server feature

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
31

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
32
# 1.2.5
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
33
> 27 Sep 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

* Fixed `ClosedSendChannel` exceptions in client and server
* Fixed Android crash on client and server exceptions
* Fixed server identity compression handling: keep original content length
* Fixed partial content without the passed range doesn't have content length
* Fixed curl request with empty body
* Fixed empty client form data (#1297)
* Fixed CIO engine no longer sends port in "Host" header (#1295)
* Fixed potential deadlock in Android engine
* Gradle Metadata 1.0 (Gradle 5.6.2)
* kotlinx.coroutines 1.3.2
* kotlinx.serialization 0.13.0
* Dropwizard 4.1.0
* jackson 2.9.9.3

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
49
50
51
# 1.2.4
> Published 2 Sep 2019

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
52
53
54
55
56
* Fixed multipart form header entity separator
* Fixed crypto in IE11 (#1283)
* Marked response transient in the client exception (#1256)
* Fixed network on main thread in okhttp engine close
* Fixed follow redirect iOS (#1000)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
57
58
59
* Kotlin 1.3.50
* kotlinx.coroutines 1.3.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
60
# 1.2.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
61
> Published 1 Aug 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
62
63
64
65
66
67
68
69
70
71

* JS websocket bugs fixes and improvements
* Eliminated Java9's Base64 implementation (useful for older JDK and Android)
* Fixed bug of adding unexpected trailing slash (#1201) (#1206)
* Improved apache and okhttp client engines performance
* Fixed client response body cancellation
* Added client response streaming on nodejs
* Deprecated old client `BasicAuth`
* Introduced a flag to send auth without negotiation
* Added server kotlinx.serialization initial support (`SerializationConverter`)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
72
73
74
75
* Client TLS implementation fixes: cancellation and error handling.
* Added web assembly content type.
* Prohibited server double request content `call.receive`.
    * Introduce `DoubleReceive` feature that makes it work.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
76
* Server CORS support fixed and improved
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
77
78
79
80
81
* Added initial kotlinx.serialization support for server including receiving generic collections.
* Introduced `ktor-bom` for better dependency management.
* Improved jetty server engine configuration to enable manual connectors setup. 
* Fixed client memory leak (#1223).
* Upgraded Jetty, Netty and utility libraries.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
82
83
* Kotlin 1.3.41

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
84
85
86
87
88
89

Breaking changes/Migration steps:
* CORS doesn't allow non-simple request body content types anymore by default
  * to allow extra content types such as json, enable `allowNonSimpleContentTypes`
* At least Kotlin 1.3.41 IS REQUIRED

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
90
# 1.2.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
> Published 20 June 2019

* Upgraded to Kotlin 1.3.40.
* Netty server engine uses native transports when available (#1122).
* Upgraded to Netty 4.1.36 (#1190).
* Added JVM shutdown hooks in server engines (#1111, #1164).
* Introduced challenge builder functions in server auth providers (#366, #921, #1130, #798).
* Segmentation fault is fixed in native clients (#1135).
* Improved gracefull shutdown in ktor client engines Jetty and Apache.
* Removed kotlin-reflect from ktor jvm clients (#1162).
* Client threads daemonized (#1170).
* Relaxed client cookie value restrictions (#1069).
* Fixed empty client requests with okhttp engine (#1175).
* API cleanup, deprecations.
* kotlinx.coroutines 1.2.2, kotlinx.serialization 0.11.1.

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
107
108
109
110
111
112
113
114
115
116
# 1.2.1
>  Published 27 May 2019

* Fixed module function lookup (regress, #1132)
* Fixed SessionTransportTransformers application order (#1147)
* Fixed double content length header in requests on older Androids (#1060)
* Fixed receiving a byte channel crash on Android (#1140)
* Fixed websocket sockets lifecyle on Jetty engine
* Downgraded Gradle to reduce gradle metadata version

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
117
# 1.2.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
118
> 14 May 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138

* Introduced multiplatform websockets: jvm, js.
* Added client certificates support.
* Fixed updating session in directory storage (#963).
* Added optional contentType to formDsl (#910).
* `MockEngine` version which favors execution order and returns processed requests (#924).
* Fixed `Unit` body serialization.
* Allowed using preconfigured OkHttp client instance.
* Defined the client default user agent.
* Improved curl error diagnostics and resource management.
* Fixed LogLevel.NONE with body bytes.
* Added CIO endpoint config builder.
* Fixed status code check in client Auth feature.
* Fixed client close issue.
* Fixed: `GMTDate.toJvmDate()` uses current date instead of given date. (#986)
* Moved client auth to common.
* Use `UTF-8` as default charset in BasicAuth.
* Introduced client content encoding feature.
* Introduced client call validator feature.
* Old API deprecations and removals.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
* Fixed gzip/deflate on JDK11
* Introduced JWT auth header retrieval configuration (#1048)
* `CallLogging` message format customization (#1047)
* Fixed logging error with no call-related MDC (#1033)
* Avoided using constant hash salt in `UserHashedTableAuth`
* Added LDAP auth provider proper characters escaping
* Minimized jetty core pool size and made it configurable (#1083)
* Made servlet engine use servlet config instead of context (#1063)
* Introduced accepted content types contributor in ContentNegotiation (#357)
* Introduced `ApplicationEnvironment.rootPath` with servlet engine support (context path) (#738)
* Support for `rootPath` in routing by default (#738)
* Introduce ability to serve web resources from WAR
* Added micrometer metrics (#1037)
* Added Thymeleaf templating feature (#988)
* Cookie session use `/` path by default (#1043)
* Add hot reload experimental support for JDK9+ (VM option required)
* `HttpStatusCode` equals check is amended
* Added client `AcceptCharset` header support
* `KotlinxSerializer` moved to a separate artifact
* Client engine API simplified
* Introduced client cache support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
160
161
162
163
164
165
166
167
168
169
* Server authenticator config reworked
* Server digest auth updated to use UTF-8
* Added experimental android client line-wrapping logger
* Fixed webjars parameters handling and several minor fixes
* Introduced JWTVerifier configure block when using JWKProvider
* Added client json feature custom content types support 
* Fixed incorrect url encoding for some characters (#1094)
* Fixed hanging jetty server engine 
* Introduced CIO client engine request timeout config
* Added client multipart content length support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
170
171
* Jetty upgraded to 9.4.15.v20190215
* okhttp client upgraded to 3.14.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
172
* Fixed CIO client CPU utilization issue
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
173
174
* Kotlin 1.3.31
* kotlinx.coroutines 1.2.1
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
175

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
176
177
178
179
180
181
182
183
184
185
186
187
# 1.1.5
> Published 24 Apr 2019

* Minimized jetty core pool size and make it configurable (#1083)
* Servlet engine fixed to use servlet config instead of context (#1063)

# 1.1.4
> Published 13 Apr 2019

* Upgrade to Kotlin 1.3.30
* Upgrade coroutines to 1.2.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
188
# 1.1.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
189
> Published 21 Feb 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
190
191
192
193

* Fixed NoSuchMethodError on Android (#927)
* Fixed upload file error on JS (#956)
* Fixed several encodings issues caused corrupted jsons and receive pipeline erros (#920, #787, #866)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
194
* Fixed curl connection errors reporting
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
195
196
* Updated jackson dependency (#952)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
197
# 1.1.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
198
> Published 24 Jan 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232

* Introduced native curl client engine (#479)
* Added iosArm32 target (except curl) 
* Host and port route builders (#825)
* Fixed `host()` and `port()` functions to respect proxy (#834)
* Fixed classloading issue affecting hot-reload (#825)
* Fixed hanging CIO client (#800, #806)
* Added CIO client CBC support (#623, #560, #394)
* Upgraded JWKS/JWT (#856)
* Fixed server `MessageDigest` concurrent issues
* Introduced `NonceManager`, deprecated `OAuth2StateProvider`
* Prohibited setting session at server after responding the call (#864)
* Fixed loosing errors in `StatusPages` if there was already a response sent
* Introduced `application` property on `ApplicationEngine` interface
* Introduced experimental ktor server exceptions 
  * `BadRequestException`
  * `NotFoundException`
  * `MissingRequestParameterException`
  * `ParameterConversionException`
  * supported in locations out of the box (including #767)
  * experimental parameters delegation support
* Added routing tailcard prefix support (#876, #526)
* Fixed registering content converters with custom content type pattern (#872)
* Improved GSON error diagnostics (#811)
* Exclude several content types in Compression feature by default: audio, video, event-stream (#817)
* Fixed hanging handleWebSocketConversation
* Fixed cookie session max-age value to be bumped to Int.MAX_VALUE (#892)
* Fixed CIO headers parsing: allowed headers with no values
* Fixed client websocket nonce size (#861)
* Fixed client scheme parsing
* Supported client relative redirects by making #takeFrom() resolve relative urls. (#849)
* Fixed network on main thread in CIO (#764)
* Changed the default algorithm to SHA-256 from SHA-1 for signed server cookies
* Fixed conflicting `WebSockets` and `StatusPages` (#889)
Leonid.Stashevsky's avatar
Leonid.Stashevsky включено в состав коммита
233
* Update gradle to 4.10
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
234
* Kotlin 1.3.20, kotlinx.coroutines 1.1.1, kotlinx.serialization 0.10.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
235

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
236
237
238
239
240
# 1.1.1
> Published 26 Dec 2018

* Fixed broken pom files 

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# 1.1.0
> Published 24 Dec 2018

* Reduced JDK7/8 dependencies (including #762)
* Discarded deprecated API
* Coroutines debug agent support 
  * see Kotlin/kotlinx.coroutines/core/kotlinx-coroutines-debug/README.md
* Fixed `IndexOutOfBounds` during main module function search
* okhttp-client: pass `contentLength` for multipart form data
* Improved auto-reloading feature in corner-cases (#783)
* Fixed HTTP server upgrade to delay socket close (#674)
* Added Mustache templating feature (#713)
* Added ability to configure `Logger` instance for `CallLogging`
* Fixed session HMAC to do a constant time comparison
* Added Node.js suport for js http client (#791)
* `SessionTransportTransformerDigest` is deprecated (#792)
  * also switched to SHA-384 by default that is not vulnerable
* Fixed jetty server thread names (#756)
* Fix conditional headers zoned dates (#476)
* `NettyChannelInitializer` made public (#286)
* Fixed slf4j dependency (#808)
* Fixed client logging freeze
* Added client `DigestAuth` feature
* Fixed apache client response reading freeze
* Fixed apache client engine errors handling
* Kotlin 1.3.11, kotlinx.coroutines 1.1.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
# 1.0.1
> Published 4 Dec 2018

* Client logging feature (`Logging` in `ktor-client-logging`)
* Client user agent feature (see `UserAgent`)
* Client top-level list serialization support (#739)
* JS client body handling fix (#746)
* Client redirect edge cases fixed
* Client close/cancel handling improved
* CIO client bugfixes
* Unicode filenames support in multipart fileupload (#757, #687, #596)
* `ContentNegotiation` and `WebSocket` server features compatibility (#745)
* Server session cookie duration is optional (#736)
* Server autreload support fixed (#736)
* `CachingOptions` resolution ambiguity fixed (#741)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
284
# 1.0.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
285
> Published 19 Nov 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311

* Improved documentation
* Improved performance
* Kotlin 1.3.10
* kotlinx.coroutines 1.0.1 and structured concurrency support:
    * Coroutine scopes introduced per pipeline, call, application and web socket session
* Fixed client response cancelation via `receive<Unit>()` and `response.cancel()`
* Disabled client pipelining by default to provide safe behavior by default
* `GMTDate` improvements on js and native
* Added client response observer for response logging purpose
* Test client and mock engine improvements
* Cookies dates, domains and dupicate parameters processing fixed
* Server pipeline fixed to discard request body if not used (#609, #574)
* Websocket session lifecycle fixed during close sequence
* Several `Url` and `UrlBuilder` fixes and improvements
* Introduced `ExpectSuccess` client feature
* Fixed `StatusPages` to handle child job failures (#646)
* Compression bugfixes (including #708, #685)
* Fixed timeouts in websockets with Jetty
* Renamed `DevelopmentEngine` to `EngineMain`
* Restricted `@Location` annotation targets, allow on a typealias (#539)
* Removed default connector on port 80 (#670)
* Several JWT and OAuth bugfixes and error habdling improvements (#664, #676,  #550)
* Improved serialization client feature


Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
312
313
314
315
316
317
318
319
320
321
322
323
324
# 0.9.5
> Published 19 Sept 2018

* Added shorthand client functions for HEAD, OPTIONS, PATCH and DELETE methods (#562)
* URLBuilder's parser improved (#553, #567)
* Improved client's cookie matching and processing
* Introduced CallId feature
* Added MDC support to CallLogging feature
* Fixed setting charset encoding for non-text content types
* Added `respondOutputStream { }` response function
* Migrated to Kotlin 1.2.70
* Split Infrastructure phase into Monitoring and Features phases

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# 0.9.4
> Published 29 Aug 2018

* Added multiplatform client support (android and ios)
* Added `Android` client engine (`UrlConnection`)
* Added `OkHttp` client engine (Android support)
* Added `Jackson` feature support
* Added `Ios` client engine
* Deprecated `response.contentType` and `response.contentLength`
* Strengthened `IncomingContent` deprecation
* Upgraded Jetty ALPN, Tomcat
* Fixed config evaluation issues (#488)
* Disabled async incoming upgrade stream at Tomcat
* Prohibited appending unsafe headers to request headers
* Renamed `XForwardedHeadersSupport` to `XForwardedHeaderSupport` (#547)
* Added `HttpResponse.receive<T>` method to run response pipeline on raw response
* Introduced kotlin multiplatform url-parser
* Supported client form data and multipart 
* Added missing client builders for `post` and `put` methods
* Simplify client configuration API
* Fixed several compression issues
* Fixed client attributes evaluation
* Fixed CIO engine random algorithm selection
* Fixed url parsing (#511)
* Fixed ambiguity in writing client `Content-Type` and `Content-Length` headers
* Minor performance fixes
* Netty HTTP/2 fixes
* Fixed IOOBE in satic resource resolution (#493)
* Fixed JWT error handling
* Kotlin 1.2.61, kotlinx.coroutines 0.25.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
356
# 0.9.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
357
> Published 26 Jun 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
358
359
360
361

* Improved WebSocket API
* Websocket header `Sec-WebSocket-Key` is now optional
* Fixed client cookies rendering to avoid `x-enc`
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
362
363
364
* Fixed plain text client reader (#392)
* Added EC support in CIO TLS (#394: ECDHE_RSA_AES256_SHA384, ECDHE_RSA_AES128_SHA256)
* Fix client certificate validation
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
365
* Introduced optional authentication 
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
366
* Added `ApplicationCall` as receiver for auth `validate` functions
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
367
* Introduced `call.respondBytes` (#395)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
368
369
370
371
372
373
374
375
376
377
378
379
380
381
* Improved JWT support: multiple schemes, nullable issuer
* Conversion service enum type diagnostics improved (#403)
* Avoided using apos entity in HTML escaping as IE doesn't support it (#400)
* Converter support for java big numbers
* Ability to add auth methods to existing feature on the fly
* Improved auth header scheme and contents validation (#415)
* Default charset for BasicAuth is now UTF-8 (#420) 
* Added `ByteArrayContent.contentLength` (#421)
* Fixed `headersOf` case insensitive issue (#426)
* Client deserialization improved by using type token
* Ability to disable client default transformers
* Explicit `Accept` header in client request
* Turn on masking in client websockets (#423)
* Fixed inverted `PartialContent.Configuration.maxRangeCount` check (#440)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
382
* Fixed uncaught `UnsupportedMediaTypeException` from `receiveOrNull()` (#442)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
383
* Fix multipart boundary header parsing
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
384
* Upgraded jwks/jwt, applied RSA256 by default if unspecified (#434, #435)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
385
386
387
388
389
390
391
* Upgrade coroutine version to 0.23.3
* Upgrade Jetty version to 9.4.11.v20180605
* Add `client-mock-engine` for testing purpose
* Use default available engine by deafult
* Upgrade kotlin to 1.2.50

Move ktor-samples to a separate repository (#340). https://github.com/ktorio/ktor-samples
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
392

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
393
# 0.9.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
394
> Published 23 Apr 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422

* New auth DSL, more suspendable functions (such as `verify`/`validate`)
* `RoutingResolveTrace` for introspecting routing resolution process
* HTTP client improvements and bugfixes (DSL, reconnect, redirect, cookies, websockets and more)
* CIO http client pipelining support, chunked and more
* CIO initial TLS support
* Session authentication provider
* OAuth2: introduce ability to generate and verify state field
* OAuth: fix scopes parameter to conform to RFC (#329)
* OAuth2: fix bug with double scopes encoding (#370)
* OAuth2: add ability to intercept redirect URL
* CORS: introduce `allowSameOrigin` option
* Auth: provide application call as receiver for validate functions (#375 and related)
* Test host reworked, `handleRequest` reads the body and redirects the exceptions correctly
* Servlets: fixed `inputStream` acquisition, fixed error handling
* Java 9 compatibility improved (no modules yet)
* Digest auth fixes (#380)
* Log running connectors details for better development experience (#318)
* `Last-Modified` header and related functionality to work in proper GMT time zone (#344)
* `IncomingContent` is deprecated
* `URLBuilder` fixes and improvements
* Documentation improvements
* Performance optimizations (Netty, CIO server backends)
* CIO server improved stability
* Encrypted session support (`SessionTransportTransformerEncrypt`)
* Empty (`null`) model for freemarker (#291)
* `ContentNegotiation` missing `Accept` header support (#317)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
423
424
425
# 0.9.1
> Published 29 Jan 2018

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
426
* Support for blocking servlets and GAE
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
* `Headers` and `Parameters` types instead of `ValuesMap`
* Velocity templates support
* Unsafe (Forbidden) headers checks added
* Deprecated `Resource` type
* Added support for extensible version providers to ConditionalHeaders feature 
* Engine-specific configuration support for application.conf
* Added filtering and customisation of log level to CallLogging feature
* Added ability to skip authentication using a predicate, add documentation to Authentication feature
* Introduced auth0 JWT/JWKS authentication (#266)
* ktor http client DSL improvements
* CIO engine improvements, stability and performance
* Introduced [OutgoingContent] properties `contentLength`, `contentType` and `status` 
* Upgrade Netty in the corresponding engine implementation
* Introduced `shareWorkGroup` option for Netty engine
* More documentation
* Bump versions of dependencies

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
444
# 0.9.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
445
> Published 31 Oct 2017
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
446
447
448

* Package structure reworked
* Packages and maven groupId renamed org.jetbrains.ktor -> io.ktor
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
449
* Server-related artifacts having ktor-server-* name prefix (ktor-netty -> ktor-server-netty)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
450
451
452
453
454
455
456
457
458
459
460
461
462
* Application Host renamed to Application Engine  
* FinalContent renamed to OutgoingContent as opposite to IncomingContent (introduced in 0.4.0)
* Added Application Engine configure facilities so one can specify thread pool size or some engine-specific parameter
* Initial idiomatic ktor HTTP client implementation (artifacts prefixed with ktor-client-*)
* Metrics support, DropWizard integration
* Improve routing API, tune resolution mechanics, hide some implementation details
* ContentNegotiation feature to support variable content on send and receive 
* Jackson support
* Experimental pure kotlin application engine on coroutines (CIOApplicationEngine) and CIO-based http client backend
* Improved stability under load
* Status pages processing improvements 
* A lot of documentation

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
463
# 0.4.0
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
464
> Published 16 Aug 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
465

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
466
* Built with Kotlin 1.1.4
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
467
* Refactored receive/response pipelines and moved them into respective ApplicationRequest & ApplicationResponse classes 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
468
* Fixes, improvements and integration tests for HTTP/2 support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
469
470
* Update `ContentType` to treat all parts case insensitively
* Remove `ApplicationLog` and use SLF4J `Logger` directly
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
471
* Add HttpMethod.Patch and respective builder functions 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
472
* `routing` function will now install `Routing` feature or use existing installed feature for easier modules 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
473
* Convert sessions to proper feature, support multiple sessions, improve DSL 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
474
* HeadRequestSupport feature is renamed to AutoHeadResponse (with deprecated typealias)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
475
476
477
478
479
480
481
* Replace ApplicationTransform with receive pipeline
* Introduce send/receive pipelines for all call pipelines
* Gson application feature for JSON transformation of incoming & outgoing data objects
* Added HttpBin sample (thanks to @jmfayard)
* Employ `DslMarker` annotation to prevent accidental use of route functions in get/post handlers 
* Improve diagnostics for untransformed content
* Ensure missing file (`FileNotFoundException`) can be handled properly with `StatusPages` feature 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
482
* Websocket fixes for large frames, fragmentation and more
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
483
484
485
486
* Support for specifying config file with command line
* Improvements in Servlet-based hosts
* Memory allocation and performance optimisations
* Add Apache 2 LICENSE file
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
487
488
489
* Add documentation to some types
* New sample for static content
* Bump versions of dependencies
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
490

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
491
# 0.3.3
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
492
> Published 22 Jun 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
493
494
495
496

* Execution model slightly changed to avoid global executors. ApplicationEnvironment doesn't provide `executor` anymore
* Websockets refactored with channels instead of callback functions
* Fixed bug with compression not preserving status code (thanks Diego Rocha)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
497
498
* Fixes in Netty support: performance issues under heavy load and keep-alive connections, cancellation, closed sockets
* Fixes in session serialization, enums support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
499
500
501
* Optimisations in Servlet and Jetty hosts, fixes in edge cases
* Fixes in chat sample

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
502
# 0.3.2
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
503
> Published 24 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
504
505
506

* Fix bug in byte array response that missed Content-Length header
* Fix default encoding in FreeMarker to be UTF-8
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
507
508
509
* Fix FreeMarker writer
* Fix charset for text/* content types to be UTF-8 by default
* Fix Kweet sample application in kweet deletion
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
510
* Fix form authentication to adhere to removal of post parameters from `parameters`
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
511
512
513
514
515
516
517
* Rework static content DSL to improve usability
* Improve Accept header handling in routes
* Support local class in locations, improve diagnostics
* Add servlet host tests running in Jetty, but using servlet deployment model
* Benchmarks can now measure GC performance (and any other JMH profiler)
* Performance optimisations

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
518

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
519
# 0.3.1
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
520
> Published 7 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
521
522
523
524
525
526
527
528
529
530
531

* Replace routing function `contentType` with `accept`
* Major refactoring in internal host system to simplify and unify code
  * Use `embeddedServer(Netty, …)` instead of `embeddedNettyServer(…)`
  * Support automatic reloading in embedded hosts
  * Fix ApplicationTransform problems preventing Freemarker templates from working
* Fix json and logback dependencies to avoid propagating to clients 
* Bug fixes & performance optimisations
* Documentation

# 0.3.0
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
532
> Published 8 Mar 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
533

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
534
* Major refactor to coroutines