forked from spray/spray
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
602 lines (450 loc) · 23.8 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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
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
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
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
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
Version 1.1.0 (2013-11-29)
--------------------------
- spray-http: added some more helpers around form data and `BodyPart` construction
- spray-io:
+ fixed `Terminated` dead letters from IO layer (#704)
+ fixed `Tcp.SO.reuseAddress` not being applied for outgoing connections (#712)
- spray-routing:
+ fixed problem with `compressResponseIfRequested` allowing unused parameters
- spray-testkit: added `NoAutoHtmlLinkFragments` helper trait
Version 1.1-RC4 (2013-11-20)
----------------------------
- spray-can:
+ fixed occasional DeathPactException in HttpHostConnector (#699)
- spray-io:
+ fixed SslTlsSupport sending out multiple acks in some cases (#689)
+ fixed noisy DeathPactException when connection attempt fails (#692)
+ added verification of correct clientMode of SSLEngines created by `*SSLEngineProvider.fromFunc` (#657)
- spray-routing:
+ made `FutureDirectives` and `authenticate(Future)` parameters call-by-name (#694)
+ applied small change as a workaround for http://youtrack.jetbrains.com/issue/SCL-6214
Version 1.1-RC3 (2013-11-13)
----------------------------
- spray-can:
+ fixed IllegalStateException ("Unexpected slot state: Idle") in host-level API (#652)
+ fixed client-side request-timeout not cancelled after receiving `ChunkedResponseStart` (#670)
+ fixed negative 'openConnections' in StatsSupport (#666)
+ fixed possible excessive memory use when parsing incoming chunked messages (#662)
+ fixed server sometimes sending events to wrong receivers
+ improved "Cannot establish effective request URI" error message
- spray-http:
+ fixed OAuth2 bearer token parser problem (#671)
+ added q-value support to `HttpCharset` and `HttpEncoding`
+ improved content negotiation logic (#677)
+ made auth scheme and "realm" parameter parsing case-insensitive (#668)
+ smaller fixes
- spray-httpx:
+ fixed `TwirlSupport` XML marshalling
+ added `DelegatingToResponseMarshallingContext` and `withEntityMapped`/`withResponseMapped` helpers
- spray-io:
+ fixed IllegalStateExceptions in SslTlsSupport (#667)
- spray-routing:
+ fixed `HttpService::runRoute` not handling `ConnectionClosed` events (#675)
+ fixed `listDirectoryContents` producing incorrect links when under pathPrefix (#684)
+ added parameterless `/` modifier for `PathMatcher`
- spray-util:
+ fixed `SimpleStash` to also stash message senders
Version 1.1-RC2 (2013-10-30)
----------------------------
- spray-can:
+ changed `ClientConnectionSettings::userAgentHeader` from `String` to `Option[`User-Agent`]` (#458)
+ relaxed parser to allow several identical `Content-Type` headers (#463)
+ improved `HttpHostConnector` for better performance with large numbers of connections (#643)
- spray-http:
+ fixed `DateTime` to allow years up to 9999 (#502)
+ fixed exception leaking from `HttpCharset.custom` (#637)
+ remodeled `HttpIp` to `RemoteAddress` (#638)
- spray-httpx:
+ made play dependency optional in OSGi Import-Package statement
+ added `MarshallerM` helper type for abstracting over monadic marshallers
- spray-io:
+ fixed broken inbound bytes buffering in SslTlsSupport (#633)
+ removed too tight assertions, replaced remaining asserts (#631)
- spray-routing:
+ changed `path` directive and `Segments` matcher to never match trailing slashes
+ added `pathEnd`, `pathSingleSlash` and `pathEndOrSingleSlash` directive (#628)
+ added `PathMatcher::repeated` modifier (#636)
Version 1.1-RC1 (2013-10-22)
----------------------------
- Upgraded to Scala 2.10.3 and latest versions of all dependencies
- spray-caching: added a size method to ``Cache[V]``
- spray-can:
+ "privatized" all classes/objects not meant to be part of public API
+ replaced ``InetSocketAddress`` in ``HostConnectorSetup`` with hostname/port pair (#394)
+ moved ``client.ssl-encryption`` setting from reference.conf into ``Http.Connect`` message (#396)
+ when creating ``HostConnectorSettings`` expect client settings at ``spray.can.client`` (#408)
+ introduced dedicated exceptions for connection failure and request timeout for host-level API
+ made Content-Length a long value (#443)
+ add auto-chunking for responses without content-length (#455)
+ broke out ``ServerSettings`` timeout settings into sub case class (#489)
+ change rendering of default ``User-Agent`` (#462)
+ added support for custom status codes (#564)
+ added explicit registration of chunk handler for incoming message chunks (#473)
+ added client-side redirection following (#132)
+ removed of ``Http.Register::keepOpenOnPeerClosed`` (#401)
+ a ton of other fixes, additions and smaller improvements
- spray-http:
+ added ``startsWith`` and ``dropChars`` method to Uri.Path model
+ added support for ``Accept`` header extensions and media-type parameters (#310)
+ fixed raw queries performing %-decoding and not being rendered as raw (#330)
+ made only standard charsets available as constants (#340)
+ added model for CORS headers
+ allowed empty ``Host`` headers
+ fixed ``Location`` header parsing to accept relative URIs (#484)
+ introduced ``HttpData`` model replacing the byte array in ``HttpBody`` and ``MessageChunk`` (#365)
+ added ``CONNECT`` method and support for custom HTTP methods (#428)
+ added ``StatusCode::allowsEntity`` member
+ made multipart form-data more flexible but have it adhere to the RFC more strictly
+ introduced a distinction between "?key=" and "?key" in queries (#460)
+ added effectivePort method on ``Uri``
+ many other fixes, additions and smaller improvements
- spray-httpx:
+ flexibilized ``RequestBuilding`` and ``ResponseTransformation`` by generalizing the ``~>`` operator
+ added ``mapHeaders``, ``removeHeader`` and ``removeHeaders`` to RequestBuilding
+ moved ``unmarshal`` and ``unmarshalUnsafe`` to ``Unmarshaller`` object
+ changed default StringMarshaller to prefer ``UTF-8`` encoding over ``ISO-8859-1`` (#498)
+ added default marshallers for ``ByteString`` and ``HttpData``
+ changed default charset for ``application/x-www-form-urlencoded`` to ``UTF-8`` (#526)
+ added support for custom ``Content-Disposition`` headers
+ added support for non-strict ``FormDataUnmarshaller``
+ added ``FromMessageUnmarshaller``, ``FromRequestUnmarshaller`` and ``FromResponseUnmarshaller``
+ extended ``MarshallingContext`` with support for specifying additional HTTP headers
+ introduced `ToResponseMarshaller` and supporting infrastructure
+ added ``Unmarshaller.oneOf`` to create negotiating ``Unmarshaller`` (#581)
+ added support for play-json (un)marshalling
+ many other fixes, additions and smaller improvements
- spray-io:
+ upgraded to latest upstream Akka IO additions and fixes
+ significantly improved ``SslTlsSupport`` (#544)
+ smaller fixes, additions and improvements
- spray-routing:
+ added ``headerValueByName(Symbol)`` and ``optionalHeaderValueByName(Symbol)`` overload
+ added ``rejection`` parameter to ``Directive::hrequire`` and ``Directive::require``
+ added ``separateOnSlashes`` helper for PathMatchers (#334)
+ moved ``UserPassAuthenticator.cached`` to ``CachedUserPassAuthenticator.apply`` (#352)
+ redefined ``PathMatchers.Empty`` as ``PathMatchers.Neutral`` with explicit type annotation (#339)
+ renamed ``PathMatcher.(flat)map`` => ``h(flat)map``, introduced ``map/flatMap`` (#274)
+ added ``detach`` directive which executes its inner route in a future, removed ``detachTo`` (#240)
+ added ``scheme`` directives
+ added ``PathMatchers.Segments`` which will match all remaining segments as ``List[String]``
+ added some higher-level compression/decompression directives
+ added ``autoChunkFileBytes`` directive
+ fixed ``getFromDirectory`` and ``getFromResourceDirectory`` not working properly for URIs with encoded chars
+ added ``requestInstance`` and ``requestUri`` directives (#525)
+ removed layer of ``*Aux`` classes by type aliases for simplicity
+ removed ``CompletionMagnet`` in favor of new ``ToResponseMarshaller``
+ removed superfluous ``RequestContext::complete`` overloads
+ added ``PathMatcher::?`` modifier, removed ``Slash_!``
+ many other fixes, additions and smaller improvements
- spray-servlet:
+ added support for providing the ``javax.servlet.http.HttpServletRequest`` in a special header
+ added ``illegal-header-warnings`` setting in analogy to spray-can (#553)
+ added ``spray.servlet.uri-parsing-mode`` setting (#574)
+ smaller fixes, additions and improvements
Version 1.1-M8 (2013-06-10)
---------------------------
- Upgraded to Scala 2.10.2, Akka 2.1.4 and latest versions of all dependencies
- general: added automatic source formatting via sbt-scalariform
- spray-caching: folded `Cache.fromFuture` into Cache.apply
- spray-can:
+ migrated from old spray-io onto new akka-io
+ completely rewrote client-side APIs for improved architecture and usability
+ completely rewrote HTTP parser for cleanliness and much better performance
+ rewrote HTTP renderer for cleanliness and performance
+ many fixes, additions and smaller improvements
- spray-client:
+ removed HttpConduit (now part of spray-can client-side APIs)
+ moved HttpDialog from spray-can into spray-client
+ adapted to new spray-can client layer
- spray-http:
+ major refactoring for cleanliness and performance
+ established serializability for all model classes
+ added custom RFC3986-compliant URI model incl. fast parser
+ many fixes, additions and smaller improvements
- spray-httpx:
+ added marshaller for `Try[T]`
+ added Json4s native and Json4S jackson support
+ many fixes, additions and smaller improvements
- spray-io:
+ migrated large majority of logic to new Akka I/O layer (for Akka 2.2)
+ backported new Akka I/O layer from Akka 2.2 to Akka 2.1
+ updated remaining logic
- spray-routing:
+ added several new directives (most notably: FutureDirectives, AnyParamDirectives)
+ many fixes, additions and smaller improvements
- spray-servlet:
+ fixed NPE during exception handling using `e.getMessage`
+ enabled dynamic timeout setting via SetRequestTimeout and SetTimeoutTimeout commands
+ smaller improvements
- spray-util: many small fixes and improvements
Version 1.1-M7 (2012-12-19)
---------------------------
- Upgraded to Scala 2.10.0-RC5, Akka 2.1.0-RC6
- spray-can:
+ fixed broken overridability of SprayCanHttpServerApp.system member
+ fixed request rendering to not suppress custom Date headers
+ fixed rendering of 'Content-Length: 0' request headers
+ added option for tagging log messages with custom prefixes, closed #153
+ added DefaultHttpClient extension, closed #166
+ added explicit naming for connection actors
- spray-http:
+ fixed non-public access to the HttpRequest URI and queryParams members through the 'copy' method
+ added HttpMessagePart extractor
+ improved Date header parser to allow UTC as well as GMT time zone label
+ improved language-tag parser to also accept tags according to BCP 47, closed #168
- spray-httpx: changed JSON rendering to always be UTF-8 encoded
- spray-io:
+ changed IOExtension.ioBridge to IOExtension.ioBridge()
+ added option for tagging log messages with custom prefixes, closed #153
+ added proper supervisor strategy for connection actors: stop (and close connection) on all exceptions
+ improved enabling/disabling of encryption on the connection (SslTlsSupport)
+ flexibilized connection tag provision
+ changed IOClient.Connected events to be sent with connection actor as sender
- spray-routing:
+ fixed rejection duplication in certain cases
+ changed default marshalling encoding to UTF-8
+ added SimpleRoutingApp trait
+ added `complete(Future[StatusCode])` overload
+ added `optionalHeaderValuePF` directive
+ simplified and homogenized ExceptionHandler and RejectionHandler to both return Routes
- testkit: turned response MatchError into proper error message, closed #165
- util:
+ introduced SprayActorLogging trait
+ improved LoggingContext with configurability regarding logger name generation
+ improved PimpedFuture.delay to accept implicit ActorRefFactory instead of ActorSystem
- examples:
+ added simple-routing-app example
+ renamed simple-on-jetty and simple-on-spray-can examples to on-jetty / on-spray-can resp.
- smaller fixes and improvements
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