Commit graph

108 commits

Author SHA1 Message Date
Roland Kuhn
a20bbce433 add fusing 2015-12-15 09:24:52 +01:00
Roland Kuhn
d5d099725a Merge pull request #19038 from agolubev/agolubev-#18807-range-Source-for-Java-DSL
+str #18807 add Source.range for Java DSL
2015-12-12 17:38:12 +01:00
Roland Kuhn
1500d1f36d !str #19005 make groupBy et al return a SubFlow
A SubFlow (or SubSource) is not a Graph, it is an unfinished builder
that accepts transformations. This allows us to capture the substreams’
transformations before materializing the flow, which will be very
helpful in fully fusing all operators.

Another change is that groupBy now requires a maxSubstreams parameter in
order to bound its resource usage. In exchange the matching merge can be
unbounded. This trades silent deadlock for explicit stream failure.

This commit also changes all uses of Predef.identity to use `conforms`
and removes the HTTP impl.util.identityFunc.
2015-12-10 12:27:16 +01:00
Alexander Golubev
89d32f6f09 +str #18807 Source.range for Java DSL 2015-12-02 11:20:47 -05:00
Roland Kuhn
073e7058dc !str #15089 add flatMapMerge 2015-12-02 09:01:20 +01:00
Roland Kuhn
f00da4daac !str #19037 rename FlowGraph to GraphDSL 2015-12-01 18:30:07 +01:00
Alexander Golubev
18f1bc73fe +str #18807 add Source.range for Java DSL 2015-11-27 22:24:24 -05:00
Viktor Klang
8780ba28a4 !str - Moving the InputStream and OutputStream utilities into Source and Sink 2015-11-18 09:13:57 +01:00
Roland Kuhn
0990d735a0 =str #18817 add Java API for GraphStage In/OutHandler 2015-11-05 15:54:25 +01:00
Viktor Klang
6cfa4df800 !str - Switches Sink.publisher to use a boolean to indicate fanout rather than a number of allowed subscribers 2015-11-04 12:29:23 +01:00
Viktor Klang
f839a1f85d !str - 18808 - Removes Sink.fanoutPublisher and makes Sink.publisher specify number of subscribers
Sink.publisher now takes a max number of Subscribers and
the elasticity between concurrent Subscribers.
2015-11-04 12:29:07 +01:00
Martynas Mickevičius
ee5ec72552 =str #15707 name unnamed modules
* give name attribute to TickSource and nested modules
* reflow module toString output
* give toString to flow
2015-11-04 13:01:05 +02:00
Viktor Klang
50c6f2267c !str - replaces flattenConcat with flatMapConcat 2015-11-03 22:17:28 +01:00
drewhk
aa339e41ec Merge pull request #18833 from drewhk/wip-18735-idleInject-drewhk
+str 18735: Added keepalive inject and initial delay ops
2015-11-03 11:50:45 +01:00
Endre Sándor Varga
8e62c0d9d7 +str 18735: Added keepalive inject and initial delay ops
Also, improved documentation of timeout operations
Added missing Java DSL smoke tests
2015-11-03 10:49:43 +01:00
Viktor Klang
ce10456804 -str - #18806 - Replacing flatten(FlattenStrategy) with flattenConcat 2015-11-02 11:46:23 +01:00
Roland Kuhn
556012b7ee !str,htc replace and remove OneBoundedInterpreter
main work by @drewhk with contributions from @2m and @rkuhn

This work uncovered many well-hidden bugs in existing Stages, in
particular StatefulStage. These were hidden by the behavior of
OneBoundedInterpreter that normally behaves more orderly than it
guarantees in general, especially with respect to the timeliness of
delivery of upstream termination signals; the bugs were then that
internal state was not flushed when onComplete arrived “too early”.
2015-11-01 14:53:52 +01:00
Alexander Golubev
8ea52a6bb4 +str #17338 add OutputStreamSource and InputStreamSink 2015-10-28 11:22:32 -04:00
Viktor Klang
f29d7affbd !str #18692 javadsl.FlowGraph.Builder.add()
* also make factories more consistent by only offering
  FlowGraph.create()
* also remove secondary (edge-based) FlowGraph.Builder DSL
* also improve naming for conversions from Graph to
  Source/Flow/BidiFlow/Sink
2015-10-22 19:10:00 +02:00
Roland Kuhn
02810cfa64 !str,htc remove FlexiMerge/Route
- replace all occurrences with equivalent GraphStage implementations

This commit introduces a mini-DSL for GraphStage that allows emitting or
reading multiple elements to/from a port with one statement, installing
stateful handlers on the port to make it work. The emitting side allows
stacked continuations, meaning that while an emit() is ongoing (waiting
for demand) another one can be added to the queue; this allows
convenient formualation of merge-type stages.
2015-10-21 18:52:16 +02:00
Roland Kuhn
dc07fd250c !str make Inlet/Outlet invariant and add Java variance
This necessitates the removal of method overloading in the Java Graph
DSL: the to() and via() methods were not otherwise resolved correctly by
javac, leading to incomprehensible error messages. The new approach is
to offer just one way of doing things which is a bit more verbose but
should be easier to read and learn. In this vein auto-importing while
using the DSL is also gone for Java—not sure about Scala yet.
2015-10-21 17:48:54 +02:00
Konrad Malawski
61c2213e02 +str #17383 implement intersperse 2015-10-19 13:17:23 +02:00
Alexander Golubev
993e545e99 +str #18411 add FlowOps.zip/zipWith/merge/concat operators 2015-10-03 14:28:57 -04:00
Roland Kuhn
68ba0643d6 =str,htp clean up build warnings
- explicitly provide Unit values and place parens around tuple creation
- remove structural type usage in TestUtils
- fix Java double-casts
- use unused Java values by asserting their non-nullness
- work around inability to place case class in trait (scripted test)

The remaining warnings about using private types in public methods are
bogus as reported in https://issues.scala-lang.org/browse/SI-9490.
2015-09-25 15:20:23 +02:00
drewhk
7bdfd4e50f Merge pull request #17865 from agolubev/agolubev-#17399-add-boilerplate-remover-for-fan-in-junctions
+str #17399 add boilerplate remover for fan-in junctions
2015-09-02 12:13:48 +02:00
James Roper
d0f0f7308f =str #18384 Fix javadsl.Broadcast eagerCancel
* The javadsl for Broadcast should not ignore eagerCancel
2015-09-02 17:06:37 +10:00
Alexander Golubev
7620014358 +str #17399 add boilerplate remover for fan-in junctions 2015-09-01 09:51:23 -04:00
Alexander Golubev
e0a430dc14 +str #18275 Java DSL: Flow.of(MyClass.class).via(otherFlow) throws ClassCastException 2015-08-31 10:27:07 -04:00
drewhk
cd02f834f6 Merge pull request #18227 from agolubev/agolubev-#18002-FlowTest#mustBeAbleToRcover-try2
=str #18002 FlowTest#mustBeAbleToRecover timing issue
2015-08-18 16:41:22 +02:00
André Rüdiger
6af9ced35c =str: various minor cleanups 2015-08-18 11:36:24 +02:00
Alexander Golubev
dec87c2e56 =str #18002 FlowTest#mustBeAbleToRecover timing issue 2015-08-16 00:04:04 -04:00
Alexander Golubev
7d6fb67b12 =str #18002 FlowTest#mustBeAbleToRecover timing issue 2015-07-23 22:01:05 -04:00
Konrad Malawski
2c8919ce3f Merge pull request #17998 from ktoso/agolubev-agolubev-#16965-UnzipWith-2.3-dev-based
Agolubev #16965 unzip with 2.3 dev based
2015-07-15 11:41:21 +02:00
Konrad Malawski
911e02bd40 =str #16965 use akka-actor provided tuples for gen UnzipWith 2015-07-15 11:40:55 +02:00
Alexander Golubev
50de39e886 +str #16965 add generalized UnzipWith 2015-07-15 10:58:45 +02:00
Alexander Golubev
630343e483 +str #16394 recover operation 2015-07-15 10:34:56 +02:00
Endre Sándor Varga
7879a5521b Rename FlowMaterializer to Materializer 2015-06-23 18:47:28 +02:00
Endre Sándor Varga
dc7269e620 Rename OperationAttributes to Attributes 2015-06-23 18:45:04 +02:00
Martynas Mickevičius
3db793b665 =str #16935 revivce dsl consistency spec 2015-06-23 16:24:06 +03:00
Alexander Golubev
6f9438a2b0 +str #17226 add dropWhile and takeWhile 2015-06-16 17:55:50 -04:00
Endre Sándor Varga
f4c83771bb !str #17393: Make stream-tests pass with serialize-messages=on 2015-06-02 12:32:27 +02:00
Konrad Malawski
5e8ff792a0 +str #16885 add splitAfter
Implementation is shared with splitWhen - see Split / SplitWhere
Allows for easy addition of splitWhen(x => Decision) if we'd like to
Resolves #16885
2015-05-28 17:32:16 +02:00
Endre Sándor Varga
30e4a57ee0 +str #17464: mapConcat accepts immutable.Iterable 2015-05-21 14:28:09 +02:00
Endre Sándor Varga
7ad4fdc3ce !str #17123: Make materialized value handling method names consistent 2015-05-05 12:42:41 +02:00
Konrad Malawski
ed51c860e2 Merge pull request #17162 from ktoso/wip-logging-streams-ktoso
Logging with log() stage for streams
2015-04-24 15:39:57 +02:00
Konrad Malawski
f2b757df51 +str #17162 add log() stage for simple logging in Flows
+ with javadsl
+ allows configuring log levels
+ allows turning off logging of certain actions completely
+ cookbook adjusted to show this instead of manual PushStage
- PENDING: preStart based impl will be faster, coming soon
2015-04-24 15:37:39 +02:00
Patrik Nordwall
676c8a17b8 Merge pull request #17297 from akka/wip-17031-tcp-http-symmetry-patriknw
!str #17031 Change to host and port params, rename StreamTcp to Tcp
2015-04-24 15:25:14 +02:00
Roland Kuhn
5eb62f0a81 move boilerplate FunctionN into akka.japi.function package
This is a temporary solution until the classes are added to akka-actor.
2015-04-24 14:35:41 +02:00
Patrik Nordwall
1595a8a911 !str #17031 Rename StreamTcp to Tcp 2015-04-24 14:13:54 +02:00
Patrik Nordwall
07f299a1e0 !str #17031 Use host and port instead of InetSocketAddress
* as convenience in bind and outgoingConnection
2015-04-24 14:12:43 +02:00