179.5.4. JMX NotificationListener를 사용하여 camel 이벤트를 청취하는 방법은 무엇입니까?

Camel 알림 이벤트를 통해 진행 중인 상황을 간략히 설명합니다. 컨텍스트 및 끝점에서 수명 주기 이벤트를 볼 수 있으며 엔드 포인트에 의해 수신되고 끝점으로 전송되는 교환을 볼 수 있습니다.

Camel 2.4 에서 사용자 지정 JMX NotificationListener를 사용하여 camel 이벤트를 수신할 수 있습니다.

먼저 CamelContext를 시작하기 전에 JmxNotificationEventNotifier 를 설정해야 합니다.

// Set up the JmxNotificationEventNotifier
notifier = new JmxNotificationEventNotifier();
notifier.setSource("MyCamel");
notifier.setIgnoreCamelContextEvents(true);
notifier.setIgnoreRouteEvents(true);
notifier.setIgnoreServiceEvents(true);

CamelContext context = new DefaultCamelContext(createRegistry());
context.getManagementStrategy().addEventNotifier(notifier);

둘째, 이벤트 수신을 위해 청취자를 등록할 수 있습니다.

// register the NotificationListener
ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=eventnotifiers,name=JmxEventNotifier");
MyNotificationListener listener = new MyNotificationListener();
context.getManagementStrategy().getManagementAgent().getMBeanServer().addNotificationListener(on,
    listener,
    new NotificationFilter() {
        private static final long serialVersionUID = 1L;

        public boolean isNotificationEnabled(Notification notification) {
            return notification.getSource().equals("MyCamel");
        }
    }, null);