@Override public void removeEventListener(EventListenerDescriptor listener) { listenerDescriptors.removeDescriptor(listener); log.debug("Unregistered event listener: " + listener.getName()); }
@Override public void addEventListener(EventListenerDescriptor listener) { listenerDescriptors.add(listener); log.debug("Registered event listener: " + listener.getName()); }
public void removeDescriptor(EventListenerDescriptor descriptor) { flushCache(); if (descriptors.containsKey(descriptor.getName())) { if (descriptor.isPostCommit) { if (descriptor.getIsAsync()) { asyncPostCommitListenersDescriptors.remove(descriptor); } else { syncPostCommitListenersDescriptors.remove(descriptor); } } else { inlineListenersDescriptors.remove(descriptor); } descriptors.remove(descriptor.getName()); } }
public void add(EventListenerDescriptor descriptor) { flushCache(); // merge if necessary if (descriptors.containsKey(descriptor.getName())) { descriptor = mergeDescriptor(descriptor); } // checkListener descriptor.initListener(); if (descriptor.isPostCommit) { if (descriptor.getIsAsync()) { asyncPostCommitListenersDescriptors.add(descriptor); Collections.sort(asyncPostCommitListenersDescriptors, new EventListenerDescriptorComparator()); } else { syncPostCommitListenersDescriptors.add(descriptor); Collections.sort(syncPostCommitListenersDescriptors, new EventListenerDescriptorComparator()); } } else { inlineListenersDescriptors.add(descriptor); Collections.sort(inlineListenersDescriptors, new EventListenerDescriptorComparator()); } descriptors.put(descriptor.getName(), descriptor); }
protected EventListenerDescriptor mergeDescriptor(EventListenerDescriptor descriptor) { EventListenerDescriptor existingDesc = getDescriptor(descriptor.getName()); removeDescriptor(existingDesc); existingDesc.merge(descriptor); return existingDesc; }
continue; SequenceTracer.start("run listener " + listener.getName()); if (log.isDebugEnabled()) { log.debug("Events postcommit bulk execution start for listener: " + listener.getName()); + listener.getName() + ", will rollback and abort bulk processing"); interrupt = true; log.error( "Events postcommit bulk execution encountered exception for listener: " + listener.getName(), e); return Boolean.FALSE; // report error } finally { long elapsed = System.currentTimeMillis() - t1; if (log.isDebugEnabled()) { log.debug("Events postcommit bulk execution end for listener: " + listener.getName() + " in " + elapsed + "ms");
log.debug("Events postcommit execution start for listener: " + listener.getName()); SequenceTracer.start("run listener " + listener.getName()); long t1 = System.currentTimeMillis(); log.error("Events postcommit execution encountered exception for listener: " + listener.getName(), e); log.debug("Events postcommit execution end for listener: " + listener.getName() + " in " + elapsed + "ms");
@Override public void registerContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (EVENT_LISTENER_XP.equals(extensionPoint)) { EventListenerDescriptor descriptor = (EventListenerDescriptor) contribution; descriptor.setRuntimeContext(contributor.getRuntimeContext()); try { service.addEventListener(descriptor); } catch (RuntimeException e) { String msg = "Failed to register event listener in component '" + contributor.getName() + "': error initializing event listener '" + descriptor.getName() + "' (" + e.toString() + ')'; Framework.getRuntime().getMessageHandler().addError(msg); } } else if (EVENT_PIPE_XP.equals(extensionPoint)) { EventPipeDescriptor descriptor = (EventPipeDescriptor) contribution; service.addEventPipe(descriptor); } else if (EVENT_DISPATCHER_XP.equals(extensionPoint)) { EventDispatcherDescriptor descriptor = (EventDispatcherDescriptor) contribution; service.addEventDispatcher(descriptor); } }
public ListenerWork(EventListenerDescriptor listener, EventBundle bundle) { super(); // random id, for unique job listenerName = listener.getName(); if (bundle instanceof ReconnectedEventBundle) { this.bundle = (ReconnectedEventBundle) bundle;
String message = "Exception during " + desc.getName() + " sync listener execution, "; if (event.isBubbleException()) { message += "other listeners will be ignored";