* Fold Tap/Drain into Source/Sink
* Create Source/Sink helpers to create all Sources/Sinks
* Make concrete Source/Sink implementations private[scaladsl2]
Missing features are:
+ be able to use all junctions from Java
* re-think akka.stream.javadsl.japi (because variance)
+ better docs
+ enable all tests
+ Partial flow graph as well as GraphFlow tests
+ enabled more FlowTest tests
+ fixed naming of internal classes (no Java in class names)
+ added converters for UndefinedSink/Source
* runWith(drainWithKey) and runWith(tapWithKey) returning the
materialized drain/tap
* remove toPublisher, toSubscriber, and friends, in favor of using
runWith
* MaterializedMap is the return type for both flow and graph
* Source[T] return type for Source.apply methods
* Cleaned up type signatures
* Changed names of Source/Sink/ProcessorFlow to Tap/Drain/Pipe
* Introduced new Source/Sink/Flow
* Made all Pipe types package private
* Changed the TypeGraph DSL to work on Flow/Sink/Source
- No more global registration
- In most cases registration isn't necessary at all
- Creation of custom HttpMethod and StatusCode is possible through
a configuration setting in ParserSettings
Fixes#15635.
The introduction of BodyParts again showed that not all entity types are
useful for every kind of context. There are now these contexts where
HttpEntities are used:
- requests
- responses
- body parts
And several kinds of entities:
- Strict
- Default
- Chunked
- CloseDelimited
- IndefiniteLength
To increase type safety of the API marker-interfaces are introduced defining
which kinds of entities can be used in which contexts:
- RequestEntity: Strict, Default, Chunked
- ResponseEntity: Strict, Default, Chunked, CloseDelimited
- BodyPartEntity: Strict, Default, IndefiniteLength
Also, to be able still to provide abstractions over some kinds of entities
additional auxiliary interfaces were necessary:
- MessageEntity = RequestEntity >: ResponseEntity: Strict, Default, Chunked (type alias for RequestEntity)
- UniversalEntity = RequestEntity with ResponseEntity with BodyPartEntity = Strict, Default
This makes the `Content-Length` and `Content-Type` types visible - but not
constructible - outside of Akka HTTP. The change partially reverts #15800.
the http package. The types need to be visible so that Play can access
all parsed headers. However they types are not constructible outside Akka
HTTP because it is not desirable for users to create these headers. Users
should set the Content-Length and Content-Type via the members of the
HttpEntity objects.
Includes integration tests in the io.akka package to ensure that objects
have correct visibility outside akka.http.