CHANGELOG.md 84,6 КБ
Newer Older
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1001
1002
1003
1004
1005
* `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 включено в состав коммита
1006
# 1.0.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1007
> Published 19 Nov 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033

* 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 включено в состав коммита
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
# 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 включено в состав коммита
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
# 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
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1064
* Supported client form data and multipart
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
* 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 включено в состав коммита
1078
# 0.9.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1079
> Published 26 Jun 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1080
1081
1082
1083

* 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 включено в состав коммита
1084
1085
1086
* 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
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1087
* Introduced optional authentication
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1088
* Added `ApplicationCall` as receiver for auth `validate` functions
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1089
* Introduced `call.respondBytes` (#395)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1090
1091
1092
1093
1094
1095
* 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)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1096
* Default charset for BasicAuth is now UTF-8 (#420)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1097
1098
1099
1100
1101
1102
1103
* 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 включено в состав коммита
1104
* Fixed uncaught `UnsupportedMediaTypeException` from `receiveOrNull()` (#442)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1105
* Fix multipart boundary header parsing
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1106
* Upgraded jwks/jwt, applied RSA256 by default if unspecified (#434, #435)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1107
1108
1109
1110
1111
1112
1113
* 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 включено в состав коммита
1114

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1115
# 0.9.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1116
> Published 23 Apr 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144

* 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 включено в состав коммита
1145
1146
1147
# 0.9.1
> Published 29 Jan 2018

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1148
* Support for blocking servlets and GAE
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1149
1150
1151
1152
* `Headers` and `Parameters` types instead of `ValuesMap`
* Velocity templates support
* Unsafe (Forbidden) headers checks added
* Deprecated `Resource` type
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1153
* Added support for extensible version providers to ConditionalHeaders feature
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1154
1155
1156
1157
1158
1159
* 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
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1160
* Introduced [OutgoingContent] properties `contentLength`, `contentType` and `status`
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1161
1162
1163
1164
1165
* 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 включено в состав коммита
1166
# 0.9.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1167
> Published 31 Oct 2017
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1168
1169
1170

* Package structure reworked
* Packages and maven groupId renamed org.jetbrains.ktor -> io.ktor
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1171
* Server-related artifacts having ktor-server-* name prefix (ktor-netty -> ktor-server-netty)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1172
* Application Host renamed to Application Engine
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1173
1174
1175
1176
1177
* 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
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1178
* ContentNegotiation feature to support variable content on send and receive
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1179
1180
1181
* Jackson support
* Experimental pure kotlin application engine on coroutines (CIOApplicationEngine) and CIO-based http client backend
* Improved stability under load
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1182
* Status pages processing improvements
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1183
1184
* A lot of documentation

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

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1188
* Built with Kotlin 1.1.4
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1189
* Refactored receive/response pipelines and moved them into respective ApplicationRequest & ApplicationResponse classes
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1190
* Fixes, improvements and integration tests for HTTP/2 support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1191
1192
* Update `ContentType` to treat all parts case insensitively
* Remove `ApplicationLog` and use SLF4J `Logger` directly
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1193
1194
1195
* Add HttpMethod.Patch and respective builder functions
* `routing` function will now install `Routing` feature or use existing installed feature for easier modules
* Convert sessions to proper feature, support multiple sessions, improve DSL
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1196
* HeadRequestSupport feature is renamed to AutoHeadResponse (with deprecated typealias)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1197
1198
1199
1200
* 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)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1201
* Employ `DslMarker` annotation to prevent accidental use of route functions in get/post handlers
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1202
* Improve diagnostics for untransformed content
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1203
* Ensure missing file (`FileNotFoundException`) can be handled properly with `StatusPages` feature
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1204
* Websocket fixes for large frames, fragmentation and more
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1205
1206
1207
1208
* 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 включено в состав коммита
1209
1210
1211
* Add documentation to some types
* New sample for static content
* Bump versions of dependencies
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1212

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1213
# 0.3.3
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1214
> Published 22 Jun 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1215
1216
1217
1218

* 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 включено в состав коммита
1219
1220
* 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 включено в состав коммита
1221
1222
1223
* Optimisations in Servlet and Jetty hosts, fixes in edge cases
* Fixes in chat sample

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1224
# 0.3.2
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1225
> Published 24 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1226
1227
1228

* 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 включено в состав коммита
1229
1230
1231
* 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 включено в состав коммита
1232
* Fix form authentication to adhere to removal of post parameters from `parameters`
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1233
1234
1235
1236
1237
1238
1239
* 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 включено в состав коммита
1240

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1241
# 0.3.1
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1242
> Published 7 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1243
1244
1245
1246
1247
1248

* 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
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1249
* Fix json and logback dependencies to avoid propagating to clients
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1250
1251
1252
1253
* Bug fixes & performance optimisations
* Documentation

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

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1256
* Major refactor to coroutines
Для ускорения просмотра не вся история отображается Просмотреть всю вину