use of org.openksavi.sponge.event.Event in project sponge by softelnet.
the class EventsTestTemplate method testClonePolicy.
public static void testClonePolicy(KnowledgeBaseType type) {
SpongeEngine engine = ScriptTestUtils.startWithConfig(type, "events_clone_policy");
try {
await().atMost(30, TimeUnit.SECONDS).until(() -> TestUtils.getEvents(engine, "defaultClonePolicy").size() >= 3 && TestUtils.getEvents(engine, "deepClonePolicy").size() >= 3 && TestUtils.getEvents(engine, "shallowClonePolicy").size() >= 3);
// Default clone policy is set to DEEP in the configuration xml.
List<Event> defaultClonePolicyEvents = TestUtils.getEvents(engine, "defaultClonePolicy");
assertEquals("Value 1", getValue(defaultClonePolicyEvents, 0));
assertEquals("Value 2", getValue(defaultClonePolicyEvents, 1));
assertEquals("Value 3", getValue(defaultClonePolicyEvents, 2));
List<Event> deepClonePolicyEvents = TestUtils.getEvents(engine, "deepClonePolicy");
assertEquals("Value 1", getValue(deepClonePolicyEvents, 0));
assertEquals("Value 2", getValue(deepClonePolicyEvents, 1));
assertEquals("Value 3", getValue(deepClonePolicyEvents, 2));
List<Event> shallowClonePolicyEvents = TestUtils.getEvents(engine, "shallowClonePolicy");
assertEquals("Value " + defaultClonePolicyEvents.size(), getValue(shallowClonePolicyEvents, 0));
assertEquals("Value " + defaultClonePolicyEvents.size(), getValue(shallowClonePolicyEvents, 1));
assertEquals("Value " + defaultClonePolicyEvents.size(), getValue(shallowClonePolicyEvents, 2));
assertFalse(engine.isError());
} finally {
engine.shutdown();
}
}
use of org.openksavi.sponge.event.Event in project sponge by softelnet.
the class CorrelationEventsLog method addEvents.
public void addEvents(String key, BaseRule rule) {
lock.lock();
try {
List<Event> eventSequence = rule.getEventSequence();
Event firstEvent = eventSequence.get(0);
String firstLabel = firstEvent.get(LABEL_ATTRIBUTE_NAME, String.class);
assert firstLabel != null : firstEvent;
if (!events.containsKey(key)) {
events.put(key, createMap());
}
if (!events.get(key).containsKey(firstLabel)) {
events.get(key).put(firstLabel, new ArrayList<>());
}
events.get(key).get(firstLabel).add(new ArrayList<>(eventSequence));
} finally {
lock.unlock();
}
}
Aggregations