private void removeBisEventNotifiers(CamelContext camelContext) { ManagementStrategy managementStrategy = camelContext.getManagementStrategy(); managementStrategy.getEventNotifiers().stream() .filter(notifier -> notifier instanceof BisEventNotifierSupport) .forEach(managementStrategy::removeEventNotifier); }
private void registerEventNotifier(ApplicationContext applicationContext, Class<? extends EventNotifierSupport> notifierClass) { EventNotifierSupport bean = applicationContext.getBean(notifierClass); ManagementStrategy managementStrategy = camelContext.getManagementStrategy(); if (!managementStrategy.getEventNotifiers().contains(bean)) { managementStrategy.addEventNotifier(bean); } else { LOG.debug("Event notifier " + bean + " is already registered."); } }
for (EventNotifier notifier : getManagementStrategy().getEventNotifiers()) { if (notifier instanceof OsgiCamelContextPublisher) { OsgiCamelContextPublisher publisher = (OsgiCamelContextPublisher) notifier;
/** * Notifies event notifiers. * * @param exchange the exchange * @param callback the callback contract for creating new events. */ public static void notifyMsg(Exchange exchange, EventNotifierCallback callback) { Assert.notNull(exchange, "the exchange must not be null"); if (exchange.getProperty(Exchange.NOTIFY_EVENT, false, Boolean.class)) { // do not generate events for an notify event return; } CamelContext context = exchange.getContext(); ManagementStrategy management = context.getManagementStrategy(); if (management == null) { return; } List<EventNotifier> notifiers = management.getEventNotifiers(); if (notifiers == null || notifiers.isEmpty()) { return; } for (EventNotifier notifier : notifiers) { if (callback.ignore(notifier)) { continue; } // we want to have new event instance for all notifiers EventObject event = callback.createEvent(exchange); doNotifyEvent(notifier, event); } }
/** * Associates camel context with given service domain. * * @param domain Domain to associate. */ public void setServiceDomain(ServiceDomain domain) { _domain = domain; for (EventNotifier notifier : getManagementStrategy().getEventNotifiers()) { if (notifier instanceof CamelEventBridge) { ((CamelEventBridge) notifier).setEventPublisher(domain.getEventPublisher()); } } PackageScanClassResolver packageScanClassResolver = findPackageScanClassResolver(); if (packageScanClassResolver != null) { setPackageScanClassResolver(packageScanClassResolver); } _domain.setProperty(CAMEL_CONTEXT_PROPERTY, this); }
final Predicate<EventNotifier> containsEventNotifier = managementStrategy.getEventNotifiers()::contains; registerPropertiesForBeanTypesWithCondition(applicationContext, EventNotifier.class, containsEventNotifier.negate(), managementStrategy::addEventNotifier);