use of com.hazelcast.jet.pipeline.Sink in project hazelcast by hazelcast.
the class CdcSinks method sink.
@Nonnull
private static <K, V> Sink<ChangeRecord> sink(@Nonnull String name, @Nonnull String map, @Nullable ClientConfig clientConfig, @Nonnull FunctionEx<? super ChangeRecord, ? extends K> keyFn, @Nonnull FunctionEx<? super ChangeRecord, ? extends V> valueFn) {
FunctionEx<? super ChangeRecord, ? extends V> toValueFn = record -> DELETE.equals(record.operation()) ? null : valueFn.apply(record);
String clientXml = asXmlString(clientConfig);
ProcessorSupplier supplier = AbstractHazelcastConnectorSupplier.ofMap(clientXml, procFn(name, map, clientXml, keyFn, toValueFn));
ProcessorMetaSupplier metaSupplier = ProcessorMetaSupplier.of(mapUpdatePermission(clientXml, name), supplier);
return new SinkImpl<>(name, metaSupplier, DISTRIBUTED_PARTITIONED, keyFn);
}
use of com.hazelcast.jet.pipeline.Sink in project hazelcast by hazelcast.
the class ManagedContextTest method testSinks.
private void testSinks(SupplierEx<? extends AnotherSinkContext> sinkSupplier) {
Sink<Object> sink = SinkBuilder.sinkBuilder("sink", c -> sinkSupplier.get()).receiveFn((c, i) -> assertEquals(INJECTED_VALUE, c.injectedValue)).build();
Pipeline pipeline = Pipeline.create();
pipeline.readFrom(TestSources.items(1)).writeTo(sink);
hz.getJet().newJob(pipeline).join();
}
Aggregations