@Test public void getEnvironmentWindowIntoKnown() throws IOException { SdkComponents components = SdkComponents.create(); components.registerEnvironment(Environments.createDockerEnvironment("java")); WindowIntoPayload payload = WindowIntoPayload.newBuilder() .setWindowFn( WindowingStrategyTranslation.toProto( FixedWindows.of(Duration.standardMinutes(5L)), components)) .build(); RehydratedComponents rehydratedComponents = RehydratedComponents.forComponents(components.toComponents()); PTransform builder = PTransform.newBuilder() .setSpec( FunctionSpec.newBuilder() .setUrn(PTransformTranslation.ASSIGN_WINDOWS_TRANSFORM_URN) .setPayload(payload.toByteString()) .build()) .build(); Environment env = Environments.getEnvironment(builder, rehydratedComponents).get(); assertThat( env, equalTo( components .toComponents() .getEnvironmentsOrThrow(payload.getWindowFn().getEnvironmentId()))); }
FunctionSpec.newBuilder() .setUrn(PTransformTranslation.ASSIGN_WINDOWS_TRANSFORM_URN) .setPayload(payload.toByteString()) .build()) .build();
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("common")) .build() .toByteString())) .build();
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("go")) .build() .toByteString()) .build()) .build();
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build(); .setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build(); PTransform read2Transform = .setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build(); .setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build(); PTransform impulse2Transform = .setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build(); Pipeline impulse =
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("common")) .build() .toByteString())) .build();
SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build()) .putPcollections("py.out", pc("py.out"))
SdkFunctionSpec.newBuilder().setEnvironmentId("common")) .build() .toByteString())) .build()) .putPcollections(
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("common")) .build() .toByteString())) .build();
SdkFunctionSpec.newBuilder().setEnvironmentId("rare")) .build() .toByteString())) .build()) .putPcollections(
SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build()) .putPcollections("window.out", pc("window.out"))
SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build()) .putPcollections("py.out", PCollection.newBuilder().setUniqueName("py.out").build())
SdkFunctionSpec.newBuilder().setEnvironmentId("rare")) .build() .toByteString())) .build()) .putPcollections(
SdkFunctionSpec.newBuilder().setEnvironmentId("py")) .build() .toByteString())) .build()) .putPcollections("py.out", pc("py.out"))
.setWindowFn(SdkFunctionSpec.newBuilder().setEnvironmentId("common")) .build() .toByteString())) .build();
@Override public FunctionSpec translate( AppliedPTransform<?, ?, Window.Assign<?>> transform, SdkComponents components) { return FunctionSpec.newBuilder() .setUrn("urn:beam:transform:window:v1") .setPayload( WindowIntoTranslation.toProto(transform.getTransform(), components).toByteString()) .build(); } }
@Override public FunctionSpec translate( AppliedPTransform<?, ?, Window.Assign<?>> transform, SdkComponents components) { WindowIntoPayload payload = toProto(transform.getTransform(), components); return RunnerApi.FunctionSpec.newBuilder() .setUrn(getUrn(transform.getTransform())) .setPayload(payload.toByteString()) .build(); } }