Dear hakkers,


we are happy to announce Akka Http 10.1.0, the first release of the 10.1.x 
series.


See the announcement 
at https://akka.io/blog/news/2018/03/08/akka-http-10.1.0-released.


The most important changes are:

   - The new client pool implementation introduced in 10.0.11 is now the 
   default. We have identified and fixed several bugs in the RC period so by 
   now we are quite confident that the new client pool will be a solid 
   replacement for the legacy one.
   - Documentation has been completely consolidated between Scala and Java 
   pages. Hundreds of directive documentation pages have been merged in a 
   tireless effort by @jonas <https://github.com/jonas>, @jlprat 
   <https://github.com/jlprat>, and Akka team’s @raboof 
   <https://github.com/raboof>. The overall documentation structure has 
   been improved.
   - Experimental artifacts are available for Scala 2.13.0-M3.
   - Support for Akka 2.4.x, which is at its end-of-life with the end of 
   2017, has been removed. In the future, this will allow us to make use of 
   features that only Akka 2.5 supports.
   - Methods deprecated during the life-time of Akka HTTP 10.0.x have been 
   removed. Methods just deprecated for 10.0.11 have not yet been removed to 
   allow for a smooth transition.

New client pool implementation is now the default


The new client pool implementation introduced in 10.0.11 is now the 
default. Since 10.0.11, we fixed several bugs in the new client pool 
implementation. You can still fall back to the old implementation by 
setting akka.http.host-connection-pool.pool-implementation = legacy.

Akka is not an explicit dependency anymore / Removal of Akka 2.4 support

Akka HTTP 10.0.x has always supported Akka 2.5, while allowing users to 
still remain on Akka 2.4.x if they choose to do so. By now Akka 2.4 has 
reached its end of life. Therefore, Akka HTTP 10.1.x only supports Akka >= 
2.5.11 (and future versions during the life of Akka HTTP 10.1.x) so we will 
be able to make of features only provided by Akka 2.5. In some cases we 
bump the minimum supported patch version of Akka to be able to use new 
features quickly.


Using Akka HTTP with Akka 2.5 used to be a bit confusing, because Akka HTTP 
explicitly depended on Akka 2.4. Trying to use it together with Akka 2.5, 
running an Akka HTTP application could fail with class loading issues if 
you forgot to add a dependency to both akka-actor and akka-stream of the 
same version. For that reason, we changed the policy not to depend on 
akka-stream explicitly anymore but mark it as a provided dependency in our 
build. That means that you will always have to add a manual dependency to 
akka-stream (veterans may remember this policy from Spray).


Please make sure you have chosen and added a dependency to akka-stream when 
updating to the new version.


Currently, the right dependency to add is


libraryDependencies += "com.typesafe.akka" %% "akka-stream" % "2.5.11"


Support for Scala 2.13.0-M3


Akka HTTP 10.1.0 is released for Scala 2.11, 2.12, and 2.13.0-M3. Due to a 
regression 
in Scala 2.13.0-M3 <https://github.com/scala/scala-dev/issues/467> tail 
call optimization does not apply anymore in some cases where it did before 
which might lead to stack overflow when running with Scala 2.13.0-M3.

Deprecation Removals

Methods were removed that have been deprecated during the life-time of Akka 
HTTP 10.0.x. Methods that were only deprecated in the last release of Akka 
HTTP, 10.0.11, are not yet removed to allow for a smooth transition. In 
general, our guarantee for minor release updates is that code that compiled 
on the latest version of the previous minor release (10.0.11 in this case) 
should be both source and binary compatible with the latest version of the 
current minor release. We might make exceptions to the rule for cases where 
the maintenance burden seems greater than the risk of breaking major users 
/ third-party libraries. We’ll treat any other binary incompatibilities as 
regressions.

Compatibility Notes

As the compatibility notes 
<https://doc.akka.io/docs/akka-http/current/compatibility-guidelines.html> 
explain 
in detail, we guarantee binary compatibility. In some cases, however, a new 
version is not strictly source compatible. We try to limit the impact of 
these kinds of changes but sometimes, they are inevitable to improve the 
API.

Source incompatible changes are:

   - Removed deprecated methods from 10.0.x
   - ServerBinding.unbind return type has been changed to Future[Done] / 
   CompletionStage[Done] for consistency.

Removal of OSGi support

Supporting OSGi is error prone and high maintenance and it repeatably 
broke, blocked releases, or metadata turned out to be wrong. As we are no 
experts in OSGi, and are nowadays focusing our efforts on JDK9+ jigsaw 
compatibility we had to remove OSGi support for now. If you care about OSGi 
support please step up and help out. Most important would be adding tests 
that verify that the OSGi infrastructure does not break the build and the 
metadata actually works at runtime. See #1852 
<https://github.com/akka/akka-http/issues/1852> for more information.

List of changes (since 10.0.11)

Improvements

akka-http-core
   
   - Add missing javadsl model bits and pieces (#1679 
   <https://github.com/akka/akka-http/issues/1679>)
   - New client pool is now the default
   - Several improvements and fixes to new client pool implementation
   - Methods deprecated before (but not including) 10.0.11 were removed
   - Add convenience Java DSL Http.cachedHostConnectionPoolHttps (#1644 
   <https://github.com/akka/akka-http/issues/1644>)
   - Add Retry-After header model (#1554 
   <https://github.com/akka/akka-http/issues/1554>)
   - Adding percent encoding length check for Path.Uri (#1553 
   <https://github.com/akka/akka-http/issues/1553>)
   - Add HTTP status code 421 (#1749 
   <https://github.com/akka/akka-http/issues/1749>)
   - Add HTTP status code 103 (#1803 
   <https://github.com/akka/akka-http/issues/1803>)
   - Add Uri.Path ?/ operator #1793 (#1794 
   <https://github.com/akka/akka-http/issues/1794>)
   - Add UserAgent header parse Java Api (#1807 
   <https://github.com/akka/akka-http/issues/1807>)
   - Optimization: Avoid creation of async callback per request in 
   RequestTimeoutStage (#1848 
   <https://github.com/akka/akka-http/issues/1848>)
   - Add application/grpc+proto content type / media type (#1844 
   <https://github.com/akka/akka-http/issues/1844>)
   - LogByteStringTools now logs errors on debug log (it’s a debug feature 
   after all) (#1780 <https://github.com/akka/akka-http/issues/1780>)
   - Suggest valid max-open-requests values on config error (#1806 
   <https://github.com/akka/akka-http/issues/1806>)
   - Log the timed out request on server (#1813 
   <https://github.com/akka/akka-http/issues/1813>)
   - Be more lenient to allow trailing whitespace after chunk size (#1812 
   <https://github.com/akka/akka-http/issues/1812>)
   - In Http().serverLayer use delayCancellation to make behavior 
   consistent with other server entry points (#1822 
   <https://github.com/akka/akka-http/issues/1822>)
   - Add HttpMessage.withProtocol overload to return Scala type (#1730 
   <https://github.com/akka/akka-http/issues/1730>)
   - Add headers and getHeaders method to HttpMessage (#1731 
   <https://github.com/akka/akka-http/issues/1731>)
   - More specific warning for HTTPS requests on HTTP endpoints (#1829 
   <https://github.com/akka/akka-http/issues/1829>)
   - Add ability to access current response timeout (#1811 
   <https://github.com/akka/akka-http/issues/1811>) (#1828 
   <https://github.com/akka/akka-http/issues/1828>)
   - Move transport setting from ConnectionPoolSettings to 
   ClientConnectionSettings so the transport can be configured in all 
   client APIs (#1562 <https://github.com/akka/akka-http/issues/1562>)

akka-http
   
   - Methods deprecated before (but not including) 10.0.11 were removed
   - Add Java onSuccess overload to take a strict value (#1821 
   <https://github.com/akka/akka-http/issues/1821>)
   - Support OAuth2 access token in URI query component as defined in 
   RFC6750 (#1769 <https://github.com/akka/akka-http/issues/1769>)

akka-http2-support
   
   - Add Tls-session-info header for http/2 (#1432 
   <https://github.com/akka/akka-http/issues/1432>)
   - Support for trailing response headers in HTTP/2 (#1857 
   <https://github.com/akka/akka-http/issues/1857>)

akka-http-caching
   
   - Add non-lambda-capturing getOrLoad method to Cache (#1536 
   <https://github.com/akka/akka-http/issues/1536>)

Documentation
   
   - The complete directive documentation has now been consolidated between 
   Java and Scala. More than hundred pages have been simplified like this.
   - The top-level documentation structure has been clarified.
   - 
   Add docs and tests for combining with / in paths (#1861 
   <https://github.com/akka/akka-http/issues/1861>)
   - Fix links to objects in the API docs

Infrastructure
   
   - Lots of small documentation fixes
   - Use sbt-header to manage copyright headers
   - Introduce WithLogCapturing trait for suppressing log output for 
   successful tests which allows more aggressive logging by default (which 
   will be shown only for failures)
   - Fix search on documentation pages to return only one version of each 
   page
   - Disable parallel testing on Jenkins to reduce spurious failures

Bug Fixes

akka-http-core
   
   - Fix return type for withStatus methods to return proper scaladsl types 
   (#1623 <https://github.com/akka/akka-http/issues/1623>)
   - Fix “Cannot push port … twice” in NewHostConnectionPool (#1610 
   <https://github.com/akka/akka-http/issues/1610>) and several other fixes
   - New client pool: Fix double registration for dispatch (#1726 
   <https://github.com/akka/akka-http/issues/1726>)
   - New client pool: Automatically close connection when slot state -> 
   Unconnected (#1724 <https://github.com/akka/akka-http/issues/1724>)
   - New client pool: Make sure that failed and retryable requests are 
   re-dispatched immediately (#1735 
   <https://github.com/akka/akka-http/issues/1735>)
   - New client pool: Ignore “request entity completed” in state 
   WaitingForResponseDispatch (#1774 
   <https://github.com/akka/akka-http/issues/1774>)
   - New client pool: After slot failures remove slot from response 
   dispatching queue (#1775 <https://github.com/akka/akka-http/issues/1775>)
   - New client pool: Log retried request info (#1781 
   <https://github.com/akka/akka-http/issues/1781>)
   - Parse and render token correctly for HttpChallenge and 
   GenericHttpCredentials (#1353 
   <https://github.com/akka/akka-http/issues/1353>)
   - Fix utf16 surrogate pair decoding in utf8 encoder (#1760 
   <https://github.com/akka/akka-http/issues/1760>)
   - Use 431 status code when header exceeds max length for name or value (
   #1800 <https://github.com/akka/akka-http/issues/1800>)
   - Fix customMediaTypes disabling predefined media type parsing (#1786 
   <https://github.com/akka/akka-http/issues/1786>)
   - TLS should close connection when instructed by stream completion (#380 
   <https://github.com/akka/akka-http/issues/380>)
   - Normalize port in Uri.apply consistently (#1763 
   <https://github.com/akka/akka-http/issues/1763>)
   - Return status 400 instead of 500 for requests with invalid URI scheme (
   #36 <https://github.com/akka/akka-http/issues/36>)
   - Allow Sec-WebSocket-Extensions header in requests
   - Fix incompatibility of Akka HTTP with Akka typed (#1878 
   <https://github.com/akka/akka-http/issues/1878>)

akka-http2-support
   
   - Fix HTTP/2 trying to send even if stream window was depleted (#1882 
   <https://github.com/akka/akka-http/issues/1882>)

Documentation
   
   - Fix generation/publication of javadoc

Credits

A total of 144 issues were closed since 10.0.11.

The complete list of closed issues can be found on the 10.1.0-RC1 
<https://github.com/akka/akka-http/milestone/26?closed=1>, 10.1.0-RC2 
<https://github.com/akka/akka-http/milestone/34?closed=1>, and 10.1.0 
<https://github.com/akka/akka-http/milestone/35?closed=1>milestones on 
GitHub.

For this release we had the help of 34 contributors – thank you all very 
much!

commits  added  removed
     88   2150     1050 Johannes Rudolph
     59   5188     4996 Arnout Engelen
     28   1007     2869 Josep Prat
     14    176       82 Johan Andrén
      7     53        6 Konrad `ktoso` Malawski
      4   1543     1495 Jonas Fonseca
      4    136       42 Martynas Mickevičius
      4     11        3 Philippus Baalman
      2    137       76 Korneliusz Rabczak
      2     71       12 Roman Filonenko
      2     56       11 Denys Zadorozhnyi
      2     37       10 satansk
      2     28       17 Pavel Boldyrev
      2      6        4 Jimin Hsieh
      1    252       60 Jean-François Guéna
      1    150        5 aholg
      1    147        3 Nathaniel Fischer
      1    111        1 Ivano Pagano
      1     48       53 ilke-zilci
      1     40        7 Michał Węgrzyn
      1     33        2 mihbor
      1     23        2 Catalin Ursachi
      1     21        1 Kentaro Maeda
      1     10        8 Oleksii Tkachuk
      1     13        2 Łukasz Krenski
      1      5        5 Marcos Pereira
      1      4        2 Ignasi Marimon-Clos
      1      6        0 Gergő Törcsvári
      1      4        0 Ayush Mishra
      1      1        1 PJ Fanning
      1      1        1 Scott Antipa
      1      1        1 Patrik Nordwall
      1      2        0 Aaron Gutierrez
      1      1        1 David Francoeur

Happy hakking!


– The Akka Team & Akka Http Contributors

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to