001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.camel.management.mbean; 018 019 import java.util.ArrayList; 020 import java.util.List; 021 import javax.management.MBeanNotificationInfo; 022 import javax.management.NotificationBroadcasterSupport; 023 024 import org.apache.camel.CamelContext; 025 import org.apache.camel.api.management.JmxNotificationBroadcasterAware; 026 import org.apache.camel.spi.EventNotifier; 027 import org.apache.camel.spi.ManagementStrategy; 028 029 /** 030 * @version 031 */ 032 public class ManagedEventNotifier extends NotificationBroadcasterSupport implements ManagedEventNotifierMBean { 033 private final CamelContext context; 034 private final EventNotifier eventNotifier; 035 036 public ManagedEventNotifier(CamelContext context, EventNotifier eventNotifier) { 037 this.context = context; 038 this.eventNotifier = eventNotifier; 039 if (eventNotifier instanceof JmxNotificationBroadcasterAware) { 040 ((JmxNotificationBroadcasterAware)eventNotifier).setNotificationBroadcaster(this); 041 } 042 } 043 044 public void init(ManagementStrategy strategy) { 045 // do nothing 046 } 047 048 public CamelContext getContext() { 049 return context; 050 } 051 052 public EventNotifier getEventNotifier() { 053 return eventNotifier; 054 } 055 056 public boolean isIgnoreCamelContextEvents() { 057 return getEventNotifier().isIgnoreCamelContextEvents(); 058 } 059 060 public void setIgnoreCamelContextEvents(boolean ignoreCamelContextEvents) { 061 getEventNotifier().setIgnoreCamelContextEvents(ignoreCamelContextEvents); 062 } 063 064 public boolean isIgnoreRouteEvents() { 065 return getEventNotifier().isIgnoreRouteEvents(); 066 } 067 068 public void setIgnoreRouteEvents(boolean ignoreRouteEvents) { 069 getEventNotifier().setIgnoreRouteEvents(ignoreRouteEvents); 070 } 071 072 public boolean isIgnoreServiceEvents() { 073 return getEventNotifier().isIgnoreServiceEvents(); 074 } 075 076 public void setIgnoreServiceEvents(boolean ignoreServiceEvents) { 077 getEventNotifier().setIgnoreServiceEvents(ignoreServiceEvents); 078 } 079 080 public boolean isIgnoreExchangeEvents() { 081 return getEventNotifier().isIgnoreExchangeEvents(); 082 } 083 084 public void setIgnoreExchangeEvents(boolean ignoreExchangeEvents) { 085 getEventNotifier().setIgnoreExchangeEvents(ignoreExchangeEvents); 086 } 087 088 public boolean isIgnoreExchangeCreatedEvent() { 089 return getEventNotifier().isIgnoreExchangeCreatedEvent(); 090 } 091 092 public void setIgnoreExchangeCreatedEvent(boolean ignoreExchangeCreatedEvent) { 093 getEventNotifier().setIgnoreExchangeCreatedEvent(ignoreExchangeCreatedEvent); 094 } 095 096 public boolean isIgnoreExchangeCompletedEvent() { 097 return getEventNotifier().isIgnoreExchangeCompletedEvent(); 098 } 099 100 public void setIgnoreExchangeCompletedEvent(boolean ignoreExchangeCompletedEvent) { 101 getEventNotifier().setIgnoreExchangeCompletedEvent(ignoreExchangeCompletedEvent); 102 } 103 104 public boolean isIgnoreExchangeFailedEvents() { 105 return getEventNotifier().isIgnoreExchangeFailedEvents(); 106 } 107 108 public void setIgnoreExchangeFailedEvents(boolean ignoreExchangeFailedEvents) { 109 getEventNotifier().setIgnoreExchangeFailedEvents(ignoreExchangeFailedEvents); 110 } 111 112 public boolean isIgnoreExchangeRedeliveryEvents() { 113 return getEventNotifier().isIgnoreExchangeRedeliveryEvents(); 114 } 115 116 public void setIgnoreExchangeRedeliveryEvents(boolean ignoreExchangeRedeliveryEvents) { 117 getEventNotifier().setIgnoreExchangeRedeliveryEvents(ignoreExchangeRedeliveryEvents); 118 } 119 120 public boolean isIgnoreExchangeSentEvents() { 121 return getEventNotifier().isIgnoreExchangeSentEvents(); 122 } 123 124 public void setIgnoreExchangeSentEvents(boolean ignoreExchangeSentEvents) { 125 getEventNotifier().setIgnoreExchangeSentEvents(ignoreExchangeSentEvents); 126 } 127 128 public boolean isIgnoreExchangeSendingEvents() { 129 return getEventNotifier().isIgnoreExchangeSendingEvents(); 130 } 131 132 public void setIgnoreExchangeSendingEvents(boolean ignoreExchangeSendingEvents) { 133 getEventNotifier().setIgnoreExchangeSendingEvents(ignoreExchangeSendingEvents); 134 } 135 136 public MBeanNotificationInfo[] getNotificationInfo() { 137 // all the class names in the event package 138 String[] names = {"CamelContextStartedEvent", "CamelContextStartingEvent", "CamelContextStartupFailureEvent" 139 , "CamelContextStopFailureEvent", "CamelContextStoppedEvent", "CamelContextStoppingEvent" 140 , "CamelContextSuspendingEvent", "CamelContextSuspendedEvent", "CamelContextResumingEvent", "CamelContextResumedEvent" 141 , "CamelContextResumeFailureEvent", "ExchangeCompletedEvent", "ExchangeCreatedEvent", "ExchangeFailedEvent" 142 , "ExchangeFailureHandledEvent", "ExchangeRedeliveryEvents", "ExchangeSendingEvent", "ExchangeSentEvent", "RouteStartedEvent" 143 , "RouteStoppedEvent", "ServiceStartupFailureEvent", "ServiceStopFailureEvent"}; 144 145 List<MBeanNotificationInfo> infos = new ArrayList<MBeanNotificationInfo>(); 146 for (String name : names) { 147 MBeanNotificationInfo info = new MBeanNotificationInfo(new String[]{"org.apache.camel.management.event"}, 148 "org.apache.camel.management.event." + name, "The event " + name + " occurred"); 149 infos.add(info); 150 } 151 152 return infos.toArray(new MBeanNotificationInfo[infos.size()]); 153 } 154 155 }