All Versions
32
Latest Version
Avg Release Cycle
79 days
Latest Release
2011 days ago

Changelog History
Page 2

  • v1.1.0

    November 29, 2013
    • 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

  • v1.1-RC4

    November 20, 2013
    • 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:

  • v1.1-RC3

    November 13, 2013
    • 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
  • v1.1-RC2

    October 30, 2013
    • 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)
  • v1.1-RC1

    October 22, 2013
    • ⬆️ 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
  • v1.1-M8

    June 10, 2013
    • ⬆️ 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

  • v1.1-M7

    December 19, 2012
    • ⬆️ 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

  • v1.1-M6

    November 30, 2012
    • ⬆️ 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

  • v1.1-M5

    November 09, 2012
    • ⬆️ 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
    • 0️⃣ 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

  • v1.1-M4

    October 19, 2012
    • ⬆️ Upgraded to Scala 2.10.0-RC1 and Akka 2.1.0-RC1