View Javadoc

1   /*
2    * $Id: ManagementNamespaceHandler.java 11618 2008-04-21 22:33:10Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  package org.mule.module.management.config;
11  
12  import org.mule.agent.EndpointNotificationLoggerAgent;
13  import org.mule.agent.Log4jNotificationLoggerAgent;
14  import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
15  import org.mule.config.spring.parsers.collection.ChildMapDefinitionParser;
16  import org.mule.config.spring.parsers.collection.ChildMapEntryDefinitionParser;
17  import org.mule.config.spring.parsers.specific.AgentDefinitionParser;
18  import org.mule.config.spring.parsers.specific.ObjectFactoryWrapper;
19  import org.mule.module.management.agent.DefaultJmxSupportAgent;
20  import org.mule.module.management.agent.JmxServerNotificationAgent;
21  import org.mule.module.management.agent.Log4jAgent;
22  import org.mule.module.management.agent.Mx4jAgent;
23  import org.mule.module.management.agent.RmiRegistryAgent;
24  import org.mule.module.management.agent.YourKitProfilerAgent;
25  
26  /**
27   * Handles all configuration elements in the Mule Management module.
28   */
29  public class ManagementNamespaceHandler extends AbstractMuleNamespaceHandler
30  {
31  
32      public void init()
33      {
34          registerBeanDefinitionParser("jmx-server", new JmxAgentDefinitionParser());
35          registerBeanDefinitionParser("mBeanServer", new ObjectFactoryWrapper("MBeanServerObjectFactory"));
36          registerBeanDefinitionParser("credentials", new ChildMapDefinitionParser("credentials"));
37          registerBeanDefinitionParser("jmx-log4j", new AgentDefinitionParser(Log4jAgent.class));
38          registerBeanDefinitionParser("jmx-mx4j-adaptor", new AgentDefinitionParser(Mx4jAgent.class));
39          registerBeanDefinitionParser("jmx-notifications", new AgentDefinitionParser(JmxServerNotificationAgent.class));
40          registerMuleBeanDefinitionParser("jmx-default-config", new AgentDefinitionParser(DefaultJmxSupportAgent.class)).addAlias("registerMx4jAdapter", "loadMx4jAgent");
41          registerBeanDefinitionParser("level-mapping", new ChildMapEntryDefinitionParser("levelMappings", "severity", "eventId"));
42  
43          // these two are identical?
44          registerBeanDefinitionParser("log4j-notifications", new AgentDefinitionParser(Log4jNotificationLoggerAgent.class));
45          registerBeanDefinitionParser("chainsaw-notifications", new AgentDefinitionParser(Log4jNotificationLoggerAgent.class));
46  
47          registerBeanDefinitionParser("publish-notifications", new AgentDefinitionParser(EndpointNotificationLoggerAgent.class));
48          registerBeanDefinitionParser("rmi-server", new AgentDefinitionParser(RmiRegistryAgent.class));
49          registerBeanDefinitionParser("yourkit-profiler", new AgentDefinitionParser(YourKitProfilerAgent.class));
50          registerBeanDefinitionParser("custom-agent", new AgentDefinitionParser());
51  
52          //This gets processed by the jmx-server parser
53          registerIgnoredElement("connector-server");
54      }
55  }