Commit graph

21 commits

Author SHA1 Message Date
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
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
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
Alexander Golubev
7620014358 +str #17399 add boilerplate remover for fan-in junctions 2015-09-01 09:51:23 -04:00
Endre Sándor Varga
7879a5521b Rename FlowMaterializer to Materializer 2015-06-23 18:47:28 +02:00
Roland Kuhn
d462cdd1b4 =str fix sub-upstream cancellation in concatAll
- ActorProcessor terminated eagerly when ConcatAll had just taken up a
  new input stream but not yet received onSubscribe for it

- The ActorProcessor eagerly shuts itself down upon onError and that
  cannot be changed without completely reworking the Pump, so I opted
  for just tracking the outstanding substreamSubscribers that have not
  yet seen OnSubscribe and making them cancel properly when that arrives
  (possibly later).
2015-06-19 16:26:48 +02:00
Martynas Mickevičius
8e2cc3e70f =str #17089 stream testkit 2015-04-24 12:25:54 +03:00
Patrik Nordwall
2a975bfb35 =str #16986 Fix memory leak in PrefixAndTail when using Sink.publisher
The problem was reproduced with the TCK PrefixAndTailTest
required_spec313_cancelMustMakeThePublisherEventuallyDropAllReferencesToTheSubscriber
The tck subscriber was still referenced. Profiling revealed that the
root cause was the VirtualPublisher that holds a reference to the
realPublisher, which was MultiStreamOutputProcessor$SubstreamOutput,
which had the reference to the subscriber. The VirtualPublisher
is created by the Sink.publisher in the test, and the test holds
on to that VirtualPublisher reference.

The solution is to null out realPublisher field in the VirtualPublisher.

The old workaround with the NullSubscriber was removed.

Also made Sink.publisher reject additional subscribers.
2015-04-21 16:11:23 +02:00
Roland Kuhn
157629f8af !str #16416,#16994 BidiFlow DSL and Flow.join Mat
- add BidiFlow, with atop and join combinators
- add Flow.join(BidiFlow)
- correct Flow.join’s default materialized value selection to Keep.left
2015-03-24 11:10:14 +01:00
Patrik Nordwall
3dc4e6d077 !str #16992 Rework Source and Sink name parameter
* Remove name parameter (no overloads), naming is performed using `.withAttributes` or the new
  convenience `.named`. Those adds the OperationAttribute.Name and also change the name of the
  shape Inlet and Outlet.

* Remove Source/Sink parameter list for 0 parameter methods,
  this allows usage of `Sink.head` instead of `Sink.head()`
2015-03-06 09:24:00 +01:00
Patrik Nordwall
23c533fdd5 =str #16751 Update to reactive-streams 1.0-RC3
Changed rules:
* 1.9 Always onSubscribe prior to any other signals
* 1.9 NullPointerException if subscriber is null
* 3.17 Long overflow, effectively unbounded instead of onError

Fixed some more things:
* fixed some FIXME
* Long drop and take
* memory leaks in tck tests, use BeforeClass to create ActorSystem
  use AfterClass to shutdown ActorSystem
* more tck tests
* don't emit OnComplete when substream is cancelled
* work around for memory leak in PrefixAndTail
2015-03-05 17:58:24 +01:00
Roland Kuhn
a4f4cb298a increase timeouts in SourceSpec 2015-02-26 17:57:14 +01:00
Roland Kuhn
743cd98bf4 fix two wrong/flaky tests
- ordering is not preserved by shufflers in GraphOpsIntegrationSpec
- larger tolerance is needed in GraphBalanceSpec since balancing does
  not keep track of previous imbalances
- also add Source.repeat(elem)
2015-02-26 14:22:26 +01:00
Endre Sándor Varga
8d77fa8b29 !str #16902: Unify stream internal representation
also =str #16912: Fix StreamTcpSpec flakiness
2015-02-26 10:06:56 +01:00
Konrad Malawski
85c286ac58 +str #16547 "lazyEmpty" source, which allows external triggering of completion 2015-01-29 14:28:08 +01:00
Patrik Nordwall
cd9d503b03 !str #15851 Rename FlowMaterializer and settings
* FlowMaterializer is now the actor independent interface
* ActorFlowMaterializer is the actor based interface
* MaterializerSettings renamed to ActorFlowMaterializerSettings
* impl.ActorBasedFlowMaterializer renamed to impl.ActorFlowMaterializerImpl
* Optimizations included in ActorFlowMaterializerSettings
* Note that http is using FlowMaterializer in api, but I suspect that it
  will currently only run with a ActorFlowMaterializer
2015-01-27 19:22:22 +01:00
Patrik Nordwall
5bf2ab43bd !str #16557 Rename Source.singleton to Source.single 2014-12-16 17:02:27 +01:00
Björn Antonsson
3e14cd05a9 =str #16380 Cleaned up Source/Sink/Key overlap 2014-12-02 16:38:14 +01:00
Björn Antonsson
672d4ed091 +str,htc #16071, #16072 New Stream Tcp and Http API
* StreamTcp and Http extensions now return Flows and Sources that can be materialized later
* Flow can now be completed with another flow to be turned into a runnable flow
2014-11-28 10:41:57 +01:00
Patrik Nordwall
7c0c618791 !str #16039 Remove old scaladsl, rename scaladsl2
* and impl2, testkit2
* keeping io2 for now
2014-10-28 14:20:19 +01:00
Renamed from akka-stream-tests/src/test/scala/akka/stream/scaladsl2/SourceSpec.scala (Browse further)