private void fireLocal(CanonicalEvent cevt) { Map<String, CallbackWrapper> wrappers = new HashMap<>(); wrappers.putAll(local); for (CallbackWrapper w : wrappers.values()) { if (cevt.getPath().matches(w.getGlob())) { w.call(cevt); } } }
@Override public boolean handleEvent(Event evt) { if (!(evt instanceof CanonicalEvent)) { return false; } CanonicalEvent cevt = (CanonicalEvent)evt; Map<String, CallbackWrapper> wrappers = new HashMap<>(); wrappers.putAll(global); for (CallbackWrapper w : wrappers.values()) { if (cevt.getPath().matches(w.getGlob())) { w.call(cevt); } } return false; }
@Override public void call() { List<WebhookVO> vos = Q.New(WebhookVO.class).eq(WebhookVO_.type, EventFacade.WEBHOOK_TYPE).list(); vos = vos.stream().filter( vo -> event.getPath().matches( createRegexFromGlob(vo.getOpaque().replaceAll("\\{.*\\}", ".*")) )).collect(Collectors.toList()); if (!vos.isEmpty()) { postToWebhooks(WebhookInventory.valueOf(vos), JSONObjectUtil.toJsonString(event)); } } }.call();
@AsyncThread void call(CanonicalEvent e) { if (callback instanceof EventRunnable) { ((EventRunnable) callback).run(); } else { Map<String, String> tokens = tokenize(e.getPath(), path); tokens.put(EventFacade.META_DATA_MANAGEMENT_NODE_ID, e.getManagementNodeId()); tokens.put(EventFacade.META_DATA_PATH, e.getPath()); Object data = null; if (e.getContent() != null) { data = e.getContent(); } if (callback instanceof EventCallback) { ((EventCallback)callback).run(tokens, data); } else if (callback instanceof AutoOffEventCallback) { if (!hasRun.compareAndSet(false, true)) { // the callback is being called return; } if (((AutoOffEventCallback)callback).run(tokens, data)) { off(callback); } else { hasRun.set(false); } } } } }