use of com.hazelcast.jet.core.DAG in project hazelcast by hazelcast.
the class HazelcastConnectorTest method test_defaultFilter_mapJournal.
@Test
public void test_defaultFilter_mapJournal() {
DAG dag = new DAG();
Vertex source = dag.newVertex("source", streamMapP(streamSourceName, START_FROM_OLDEST, eventTimePolicy(Entry<Integer, Integer>::getValue, limitingLag(0), 1, 0, 10_000)));
Vertex sink = dag.newVertex("sink", writeListP(streamSinkName));
dag.edge(between(source, sink));
Job job = instance().getJet().newJob(dag);
IMap<Integer, Integer> sourceMap = instance().getMap(streamSourceName);
// ADDED
sourceMap.put(1, 1);
// REMOVED - filtered out
sourceMap.remove(1);
// ADDED
sourceMap.put(1, 2);
IList<Entry<Integer, Integer>> sinkList = instance().getList(streamSinkName);
assertTrueEventually(() -> {
assertEquals(2, sinkList.size());
Entry<Integer, Integer> e = sinkList.get(0);
assertEquals(Integer.valueOf(1), e.getKey());
assertEquals(Integer.valueOf(1), e.getValue());
e = sinkList.get(1);
assertEquals(Integer.valueOf(1), e.getKey());
assertEquals(Integer.valueOf(2), e.getValue());
});
job.cancel();
}
use of com.hazelcast.jet.core.DAG in project hazelcast by hazelcast.
the class HazelcastConnectorTest method test_writeMapWithNearCache.
@Test
public void test_writeMapWithNearCache() {
List<Integer> items = range(0, ENTRY_COUNT).boxed().collect(toList());
sinkName = "nearCache-" + randomName();
DAG dag = new DAG();
Vertex src = dag.newVertex("src", () -> new TestProcessors.ListSource(items)).localParallelism(1);
Vertex sink = dag.newVertex("sink", SinkProcessors.writeMapP(sinkName, i -> i, i -> i));
dag.edge(between(src, sink));
instance().getJet().newJob(dag).join();
IMap<Object, Object> sinkMap = instance().getMap(sinkName);
assertInstanceOf(NearCachedMapProxyImpl.class, sinkMap);
assertEquals(ENTRY_COUNT, sinkMap.size());
}
use of com.hazelcast.jet.core.DAG in project hazelcast by hazelcast.
the class HazelcastConnectorTest method when_readMap_withPredicateAndFunction.
@Test
public void when_readMap_withPredicateAndFunction() {
IMap<Integer, Integer> sourceMap = instance().getMap(sourceName);
range(0, ENTRY_COUNT).forEach(i -> sourceMap.put(i, i));
DAG dag = new DAG();
Vertex source = dag.newVertex("source", readMapP(sourceName, e -> !e.getKey().equals(0), Map.Entry::getKey));
Vertex sink = dag.newVertex("sink", writeListP(sinkName));
dag.edge(between(source, sink));
instance().getJet().newJob(dag).join();
IList<Object> list = instance().getList(sinkName);
assertEquals(ENTRY_COUNT - 1, list.size());
assertFalse(list.contains(0));
assertTrue(list.contains(1));
}
use of com.hazelcast.jet.core.DAG in project hazelcast by hazelcast.
the class HazelcastConnectorTest method when_streamCache_withFilterAndProjection.
@Test
public void when_streamCache_withFilterAndProjection() {
DAG dag = new DAG();
Vertex source = dag.newVertex("source", SourceProcessors.<Integer, Integer, Integer>streamCacheP(streamSourceName, event -> !event.getKey().equals(0), EventJournalCacheEvent::getKey, START_FROM_OLDEST, eventTimePolicy(i -> i, limitingLag(0), 1, 0, 10_000)));
Vertex sink = dag.newVertex("sink", writeListP(streamSinkName));
dag.edge(between(source, sink));
Job job = instance().getJet().newJob(dag);
ICache<Integer, Integer> sourceCache = instance().getCacheManager().getCache(streamSourceName);
range(0, ENTRY_COUNT).forEach(i -> sourceCache.put(i, i));
assertSizeEventually(ENTRY_COUNT - 1, instance().getList(streamSinkName));
assertFalse(instance().getList(streamSinkName).contains(0));
assertTrue(instance().getList(streamSinkName).contains(1));
job.cancel();
}
use of com.hazelcast.jet.core.DAG in project hazelcast by hazelcast.
the class HazelcastConnectorTest method when_readMap_withProjectionToNull_then_nullsSkipped.
@Test
public void when_readMap_withProjectionToNull_then_nullsSkipped() {
IMap<Integer, Entry<Integer, String>> sourceMap = instance().getMap(sourceName);
range(0, ENTRY_COUNT).forEach(i -> sourceMap.put(i, entry(i, i % 2 == 0 ? null : String.valueOf(i))));
DAG dag = new DAG();
Vertex source = dag.newVertex("source", readMapP(sourceName, new TruePredicate<>(), Projections.singleAttribute("value")));
Vertex sink = dag.newVertex("sink", writeListP(sinkName));
dag.edge(between(source, sink));
instance().getJet().newJob(dag).join();
checkContents_projectedToNull(sinkName);
}
Aggregations