/** * Broadcast provider connection event * * @param provider Provider that has connected * @param type Event type * @param paramMap Parameters passed with connection */ protected void fireProviderConnectionEvent( IProvider provider, int type, Map<String, Object> paramMap) { PipeConnectionEvent event = new PipeConnectionEvent(this); event.setProvider(provider); event.setType(type); event.setParamMap(paramMap); firePipeConnectionEvent(event); }
/** * Broadcast consumer connection event * * @param consumer Consumer that has connected * @param type Event type * @param paramMap Parameters passed with connection */ protected void fireConsumerConnectionEvent( IConsumer consumer, int type, Map<String, Object> paramMap) { // Create event object PipeConnectionEvent event = new PipeConnectionEvent(this); // Fill it up event.setConsumer(consumer); event.setType(type); event.setParamMap(paramMap); // Fire it firePipeConnectionEvent(event); }
/** * Fire any pipe connection event and run all it's tasks * * @param event Pipe connection event */ protected void firePipeConnectionEvent(PipeConnectionEvent event) { for (IPipeConnectionListener element : listeners) { try { element.onPipeConnectionEvent(event); } catch (Throwable t) { log.error("Exception when handling pipe connection event", t); } } if (taskExecutor == null) { taskExecutor = Executors.newCachedThreadPool(new CustomizableThreadFactory("Pipe-")); } // Run all of event's tasks for (Runnable task : event.getTaskList()) { try { taskExecutor.execute(task); } catch (Throwable t) { log.warn("Exception executing pipe task {}", t); } } // Clear event's tasks list event.getTaskList().clear(); }