Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /**
  * 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();
 }