You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Thomas Groh (JIRA)" <ji...@apache.org> on 2017/08/16 20:43:00 UTC
[jira] [Resolved] (BEAM-2493) TestStream.Builder.addElements()
should return the same builder
[ https://issues.apache.org/jira/browse/BEAM-2493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Groh resolved BEAM-2493.
-------------------------------
Resolution: Not A Problem
Fix Version/s: Not applicable
Existing PTransforms return new instances whenever their state is mutated. We decided to make the builder follow this pattern.
Changing {{TestStream}} in this way is also backwards-incompatible; instances are no longer independent when in partially constructed states.
> TestStream.Builder.addElements() should return the same builder
> ---------------------------------------------------------------
>
> Key: BEAM-2493
> URL: https://issues.apache.org/jira/browse/BEAM-2493
> Project: Beam
> Issue Type: Bug
> Components: sdk-java-core
> Affects Versions: 2.0.0
> Reporter: Keith Berkoben
> Assignee: Thomas Groh
> Fix For: Not applicable
>
>
> When writing tests for pipelines, it is commonly the case where a TestStream must be built in steps ex:
> TestStream.Builder<Object> tsb = TestStream.create(<coder>).advanceWatermarkTo(new Instant(0);
> if(<a thing is true>){
> tsb.addElements(<element>);
> }
> TestStream<Object> stream = tsb.advanceWatermarkToInfinity();
> The above code does not work, however, because addElements() is creating a NEW builder rather than augmenting the existing one. This is a-typical for a builder pattern and requires the user to do
> tsb = tsb.addElements()
> which is more verbose and counterintuitive if one is expecting a builder.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)