@Setup public void setup() { invoker = DoFnInvokers.invokerFor(splittableFn); invoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(doFn); doFnInvoker.invokeSetup(); }
@Setup public void setup() { this.invoker = DoFnInvokers.invokerFor(fn); invoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(dofn); doFnInvoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(doFn); doFnInvoker.invokeSetup(); }
@Setup public void setup() { invoker = DoFnInvokers.invokerFor(fn); invoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(doFn); doFnInvoker.invokeSetup(); }
@Setup public void setup() { DoFnInvokers.invokerFor(underlyingDoFn).invokeSetup(); }
@Setup public void setup() throws Exception { invoker = DoFnInvokers.invokerFor(fn); invoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(dofn); doFnInvoker.invokeSetup(); }
@Override public void open(Configuration parameters) throws Exception { doFnInvoker = DoFnInvokers.invokerFor(dofn); doFnInvoker.invokeSetup(); }
@Teardown public void teardown() { DoFnInvokers.invokerFor(underlyingDoFn).invokeTeardown(); }
@Override public DoFn<?, ?> load(Thread key) throws Exception { DoFn<?, ?> fn = (DoFn<?, ?>) SerializableUtils.deserializeFromByteArray( original, "DoFn Copy in thread " + key.getName()); DoFnInvokers.invokerFor(fn).invokeSetup(); return fn; } }
@Override public void onRemoval(RemovalNotification<Thread, DoFn<?, ?>> notification) { try { DoFnInvokers.invokerFor(notification.getValue()).invokeTeardown(); } catch (Exception e) { thrownOnTeardown.put(notification.getKey(), e); } } }
private DoFn.ProcessContinuation invokeProcessElement(DoFn<String, String> fn) { return DoFnInvokers.invokerFor(fn).invokeProcessElement(mockArgumentProvider); }
@Override public void setup() { sideInputReader = new SideInputHandler(sideInputs, InMemoryStateInternals.<Void>forKey(null)); doFnInvoker = DoFnInvokers.invokerFor(doFn); doFnInvoker.invokeSetup(); doFnRunner = doFnRunnerFactory.createRunner(sideInputReader); pushedBackValues = new ArrayList<>(); outputManager.setup(mainOutput, sideOutputs); }
/** This is a change-detector test that the generated name is stable across runs. */ @Test public void testStableName() { DoFnInvoker<Void, Void> invoker = DoFnInvokers.invokerFor(new StableNameTestDoFn()); assertThat( invoker.getClass().getName(), equalTo( String.format( "%s$%s", StableNameTestDoFn.class.getName(), DoFnInvoker.class.getSimpleName()))); } }
@Test public void testDoFnInvokersReused() throws Exception { // Ensures that we don't create a new Invoker class for every instance of the DoFn. IdentityParent fn1 = new IdentityParent(); IdentityParent fn2 = new IdentityParent(); assertSame( "Invoker classes should only be generated once for each type", DoFnInvokers.invokerFor(fn1).getClass(), DoFnInvokers.invokerFor(fn2).getClass()); }
@Test public void testOnWindowExpirationWithNoParam() throws Exception { class MockFn extends DoFn<String, String> { @ProcessElement public void process(ProcessContext c) {} @OnWindowExpiration public void onWindowExpiration() {} } MockFn fn = mock(MockFn.class); DoFnInvoker<String, String> invoker = DoFnInvokers.invokerFor(fn); invoker.invokeOnWindowExpiration(mockArgumentProvider); verify(fn).onWindowExpiration(); }
@Test public void testOnWindowExpirationWithParam() { class MockFn extends DoFn<String, String> { @ProcessElement public void process(ProcessContext c) {} @OnWindowExpiration public void onWindowExpiration(BoundedWindow window) {} } MockFn fn = mock(MockFn.class); DoFnInvoker<String, String> invoker = DoFnInvokers.invokerFor(fn); invoker.invokeOnWindowExpiration(mockArgumentProvider); verify(fn).onWindowExpiration(mockWindow); }