forked from spray/spray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
297 lines (232 loc) · 11.7 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
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
233
234
235
236
237
238
239
240
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
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
Version 1.1-M6 (2012-11-30)
---------------------------
- Upgraded to Scala 2.10.0-RC3, Akka 2.1.0-RC3, parboiled 1.1.4, shapeless 1.2.3 and spray-json 1.2.3
- Added 'is-local-ActorRef' assertions across modules (where applicable)
- spray-can:
+ removed superfluous ssl-encryption config setting from HttpClient
+ increase default HttpServer pipelining-limit from 1 to 8
+ introduced SprayCanHttpServerApp convenience trait, updated examples
+ smaller performance improvements
- spray-http:
+ added support for 'Bearer' scheme in Authorization header (OAuth 2.0), closes #155
+ renamed 'OtherHttpCredentials' to 'GenericHttpCredentials'
+ improved MediaType model, added more default MediaTypes, closed #157
+ improved warmup
+ improved parser for 'X-Forwarded-For' header to also accept "unknown" elements
+ added DateTime.fromIsoDateTimeString
- spray-httpx: made the (Un)marshaller[NodeSeq] also accept 'application/xml'
- spray-io:
+ turned IOBridge into Actor, added optional parallelism
+ general refactoring for cleanliness and clarity
+ improved flexibility of connection actor creation
+ smaller performance improvements
- spray-routing:
+ added Directive.recover and .recoverPF modifiers
+ introduced HeaderDirectives trait, reworked and improved header extraction directives
+ changed evaluation of 'complete' directive arguments to call-by-name
+ fixed incomplete exception handling in Directive.unwrapFuture
+ renamed getFromFileName directive to getFromFile
+ introduced default, simple HttpServiceActor implementation
+ smaller refactoring in PathMatcher API
- spray-servlet: fixed missing application of root-path setting
- spray-testkit: flexibilized ActorSystem provision for RouteTest, closed #162
- spray-util: changed log level of loggers installed via 'installEventStreamLoggerFor' from DEBUG to WARNING
- smaller fixes and improvements
Version 1.1-M5 (2012-11-09)
---------------------------
- Upgraded to Scala 2.10.0-RC2 and Akka 2.1.0-RC2
- spray-can:
+ fixed NPE in RequestChunkAggregation
+ removed stray logging statement from RequestChunkAggregation
+ fixed incorrect rendering of chunked responses to HEAD requests
- spray-http: fixed incorrect test for response encoding acceptance
- spray-httpx: removed dangerous StatusCodeMarshaller
- spray-io:
+ improved logging of errors in the SslTlsSupport pipeline stage
+ reworked connection closing, added ConfirmedClose reason, fixed #147
- spray-routing:
+ added option for disabling automatic file-chunking
+ removed HttpService.routingSettings method, provision of RoutingSettings now fully implicit
+ renamed Directive.map and .flatMap to .hmap/.hflatMap, re-added .map and .flatMap pimps for single-value directives
+ improved HttpService 'runRoute' wrapper to also work in "sub-route" actors
+ removed 'filter' directive, converted all applications to 'extract(...).flatMap'
+ added 'pathTest' directive
+ improve rendering of directory listings
+ changed default redirection type to '302 Moved Permanently'
+ improved host directive
+ added 'dynamicIf' directives
+ improved and flexibilized DebuggingDirectives
+ add 'complete' overload taking a single StatusCode parameter
- spray-can & spray-servlet: increased default idle and request timeouts to 120s and 30s respectively
- spray-testkit: improved provision of custom RouteTestTimeout
- spray-util: added 'installDebuggingEventStreamLoggers' convenience helper
- smaller fixes and improvements
Version 1.1-M4 (2012-10-19)
---------------------------
- Upgraded to Scala 2.10.0-RC1 and Akka 2.1.0-RC1
Version 1.0-M4 (2012-10-19)
---------------------------
- Upgraded to parboiled 1.1.3 and spray-json 1.2.2
- routing: further flexibilized directive combination with StandardRoutes
- routing: (re)added 'complete' overload taking a Future[HttpResponse], closes #143
- routing: added new directives:
+ unmatchedPath
+ listDirectoryContents
+ getFromBrowseableDirectory / getFromBrowseableDirectories
- smaller fixes and improvements
Version 1.0-M3 (2012-10-12)
---------------------------
Largest refactoring in the history of the project.
Lots of breaking changes. Most importantly:
- Completely new documentation at http://spray.io
- Renamed group id from "cc.spray" to "io.spray"
- Renamed packages from "cc.spray..." to simply "spray..."
- Completely refactored suite module structure (from 4 to 10+1 modules)
- Improved naming of many identifiers across the board
- Completely new architecture underneath routing DSL
- Completely new Marshalling and Unmarshalling infrastructure
- ...
Version 1.0-M2 (2012-05-16)
---------------------------
- spray-io
+ Added SslTlsSupport pipeline stage
+ Fixed SetTimeout messages not working
+ Fixed closing of already closed connections improperly handled
+ Fixed bug in wiring of certain pipeline stages
+ Dropped 'confirm-sends' config setting, added 'ack:Boolean' field to IoWorker.Send
+ Renamed 'SendCompleted' event to 'AckSend'
+ Made IoWorkerThread daemonic
+ Improved pipeline architecture for reduced call stack depth
- spray-can
+ Added SSL/TLS support to HttpServer and HttpClient
+ Added 'ack-sends' setting to client and server config
+ Added 'transparent-head-requests' server config setting
+ Added HttpClient.SetRequestTimeout message
+ Fixed HttpServer not handling 'Expect: 100-continue' headers
+ Fixed HttpClient not properly handling HEAD requests to resources containing a message body
+ Fixed #99 (getFromFile(Name) sometimes throws IllegalStateException when streaming file content)
+ Fixed SetTimeout messages not working
+ Enabled validity verification on HttpRequests and HttpResponses
+ Extended HttpDialog to also accept ActorContexts as dispatcher container
- spray-base
+ http: fixed custom mediatypes not being matched
+ http: fixed ArrayIndexOutOfBoundsException during header parsing of unregistered CustomMediaTypes
+ http: fixed IPv6 Host header parsing failure
+ Fixed #108 (FormDataUnmarshaller should be more resilient)
+ Fixed incorrect error message in HttpContentExtractor
+ Fixed several memory leaks in streamMarshaller
- spray-server
+ Fixed actorSystem dependency in DebuggingDirectives incorrectly named
+ Make ErrorHandling#responseForException public
- spray-client
+ Improve 'unmarshal' pipeline step to accept all 2xx responses instead of only 200
- general
+ Added basic, but still incomplete, sphinx-based documentation system for new spray website
+ Upgraded to Akka 2.0.1
+ Extended simple-http-server and simple-http-client examples with optional SSL/TLS support
+ Fixed EOL related test failures on Windows
+ Lots of smaller fixes and improvements
Version 1.0-M1 (2012-04-05)
---------------------------
- Moved spray-can sources into spray codebase
- Added spray-io component (and spray-util for common code)
- Upgraded all components and examples to Akka 2.0
Version 0.9.0 (2012-03-07)
--------------------------
- Fixed another problem in the request retry logic (spray-client)
- Fixed incorrect response status code for authentication failures with invalid credentials
- Fixed "LruCache implementations also caching exceptions"
- Readded time-to-live based expiration to ExpiringLruCache
- Closed #87 (wrap non-200 responses in special exception)
- Closed #88 (added PathElement PathMatcher)
Version 0.9.0-RC4 (2012-02-27)
------------------------------
- Fixed spray-client retries not always honoring Pipelined dispatch strategy
- Added missing location pointer to entity of generated redirection responses
- Added directives: reject, cookie, optionalCookie, setCookie, deleteCookie,
headerValue, headerValuePF, clientIP, provide and transformRejections
- Made FilterResult and SprayRoute1 monadic
- Added another overload to the 'authenticate' directive
- Added 'toOption' pimp to Strings (in utils)
Version 0.9.0-RC3 (2012-02-22)
------------------------------
- Fixed #78 (spray-client: unexpected closing of connection not properly handled)
Version 0.9.0-RC2 (2012-02-17)
------------------------------
- Upgrade to Akka 1.3.1
- Fixed getFromResource directive to not serve "content" of resources ending with slash
- Made cacheResults directive honor 'Cache-Control: max-age' header
- Added default Marshaller for Option[T] (#81)
- Added TwirlSupport trait
- Improved DebuggingDirectives trait, added logRequestResponse directive
- Improved relaxed header parsing to also accept custom HttpCharsets
Version 0.9.0-RC1 (2012-02-03)
------------------------------
- Upgrades:
+ Scala 2.9.1
+ Akka 1.3
+ spray-json 1.1.0
+ spray-can 0.9.2
+ SBT 0.11.2
- Changed dependency on akka-actor from scope 'compile' to scope 'provided'
- Added support for chunked responses, including chunk compression and automatic file chunking
- Added new directives: completeWith, redirect, autoChunk, dynamic, transformUnchunkedResponse, transformChunkedResponse
- Added default Marshallers for Eithers, HttpResults, HttpExceptions, Streams, Futures and Array[Byte]
- Added support for JSON (de)serialization via lift-json
- Added support for template rendering via Scalate
- Added support for LDAP authentication
- Added support for asynchronous and cached authentication
- Added option for relaxed header parsing (issue #68)
- Added DebuggingDirectives trait
- Simplified custom rendering of Rejections to HttpResponses
- Improved LruCache implementation to use com.googlecode.concurrentlinkedhashmap
- Fixed #72 (Different HttpConduits sometimes and erroneously share connections)
- Fixed #59 (Factor out Rejection Conversion)
- Fixed #67 ('cacheResults' directive should honor 'Cache-Control: no-cache' request header)
- Fixed most occurrences of implicit ambiguities with SprayJsonSupport
- Fixed several bugs in header parsing and rendering
- Extended spray-example-spray-can to show off new streaming features
- Lots of other fixes, additions and improvements
Version 0.8.0 (2011-11-16)
--------------------------
- Upgrades:
+ Scala 2.9.1
+ Akka 1.2
+ spray-json 1.0.1
+ SBT 0.11.1 (many thx to Steffen for contributing the original buildfile)
- Support for 'application/x-www-form-urlencoded' as well as 'multipart/form-data' form content (many thx to Julien for contributing a lot of the implementation)
- Support for 'multipart/mixed' content (un)marshalling
- Support for spray-can as the first non-servlet-container web server
- Completely rewritten spray-client, now based on the new spray-can HttpClient
- Completely rewritten servlet connector layer for improved performance and stability
- Three new example projects:
+ spray-client-example
+ spray-example-simple
+ spray-example-spray-can
- Unified SimpleParsers and Unmarshallers into a joint 'Deserializer' hierarchy
- Removed 'optionalContent' directive (use 'content(as[Option[T]])' instead)
- Renamed 'spray-http' module to 'spray-base'
- Renamed cc.spray.marshalling to cc.spray.typeconversion
- Renamed SprayJsonMarshalling to SprayJsonSupport
- Moved encoding/decoding to for cc.spray.encoding
- Simplified case class extraction, now 'as(T)' rather than 'as(instanceOf(T))'
- Simplified SprayTest infrastructure making the 'DontDetach' trait obsolete
- Lots of other fixes, additions and improvements
Version 0.7.0 (2011-07-27)
--------------------------
A great number of changes and improvements, most importantly:
- removed dependency on Akka Mist
- upgraded to Scala 2.9.0-1 and Akka 1.1.3
- split into spray-server, spray-client and spray-http
- added support for
+ gzip/deflate encodings
+ authentication/authorization (incl. HTTP Basic Auth)
+ proper server-side caching
+ even better path and parameter matching
+ case class extractions
+ spray-json (un)marshalling
+ Tomcat 6
- closed 27 tickets
Version 0.5.0 (2011-03-31)
--------------------------
first public release