@Override public void objectInserted(final ObjectInsertedEvent event) { super.objectInserted(event); this.fired.compareAndSet(false, true); }
@Override public void objectUpdated(ObjectUpdatedEvent event) { Object obj = event.getObject(); logger.log(LogConstants.FACT, String.format("Object of class (%s) updated, with the following content: %s", obj.getClass().getName(), new Gson().toJson(obj))); super.objectUpdated(event); } }
@Override public void objectDeleted(ObjectDeletedEvent event) { Object obj = event.getOldObject(); logger.log(LogConstants.FACT, String.format("Object of class (%s) deleted, with the following content: %s", obj.getClass().getName(), new Gson().toJson(obj))); super.objectDeleted(event); }
@Test @Ignore public void testListenersAfterSessionReload() { // https://bugzilla.redhat.com/show_bug.cgi?id=826952 Environment env = createEnvironment(context); KieBase kbase = initializeKnowledgeBase(simpleRule); StatefulKnowledgeSession ksession = InfinispanKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); ksession.addEventListener(new DefaultAgendaEventListener()); ksession.addEventListener(new DefaultRuleRuntimeEventListener()); assertEquals(1, ksession.getRuleRuntimeEventListeners().size()); assertEquals(1, ksession.getAgendaEventListeners().size()); ksession = InfinispanKnowledgeService.loadStatefulKnowledgeSession(ksession.getIdentifier(), kbase, null, env); assertEquals(1, ksession.getRuleRuntimeEventListeners().size()); assertEquals(1, ksession.getAgendaEventListeners().size()); } }
@Override public void objectUpdated(ObjectUpdatedEvent event) { Object updated = event.getObject(); String name = updated.getClass().getSimpleName(); logger.trace(String.format("Object of class (%s) updated", name)); try { // persist if needed if (((PersistedFact) updated).isStateful()) { logger.trace(String.format("Updating state of object (%s) and persisting it in database", name)); // now update it client.persistObject(updated); } } catch (Exception ignored) { // TODO: shall we do something about it? it might have failed because database is down logger.error(String.format("%s", ignored.getMessage())); } super.objectUpdated(event); } }
@Override public void objectDeleted(ObjectDeletedEvent event) { Object obj = event.getOldObject(); String name = obj.getClass().getSimpleName(); logger.trace(String.format("Object of class (%s) deleted", name)); try { // persist if needed if (((PersistedFact) obj).isStateful()) { logger.trace(String.format("Removing deleted object (%s) from database", name)); client.deleteObject(obj); } } catch (Exception ignored) { // TODO: shall we do something about it? it might have failed because database is down logger.error(String.format("%s", ignored.getMessage())); } super.objectDeleted(event); }
@Override public void objectInserted(ObjectInsertedEvent event) { Object obj = event.getObject(); logger.log(LogConstants.FACT, String.format("Object of class (%s) inserted, with the following content: %s", obj.getClass().getName(), new Gson().toJson(obj))); super.objectInserted(event); }
@Override public void objectInserted(ObjectInsertedEvent event) { Object obj = event.getObject(); String name = obj.getClass().getSimpleName(); logger.trace(String.format("Object of class (%s) inserted", name)); try { // persist if needed if (((PersistedFact) obj).isStateful()) { logger.trace(String.format("Persisting inserted object (%s) into database", name)); client.persistObject(obj); } } catch (Exception ignored) { // TODO: shall we do something about it? it might have failed because database is down logger.error(String.format("%s", ignored.getMessage())); } super.objectInserted(event); }