View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.module.management.config;
8   
9   import org.mule.agent.EndpointNotificationLoggerAgent;
10  import org.mule.agent.Log4jNotificationLoggerAgent;
11  import org.mule.config.spring.factories.OutboundEndpointFactoryBean;
12  import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
13  import org.mule.config.spring.parsers.MuleDefinitionParserConfiguration;
14  import org.mule.config.spring.parsers.collection.ChildMapDefinitionParser;
15  import org.mule.config.spring.parsers.collection.ChildMapEntryDefinitionParser;
16  import org.mule.config.spring.parsers.specific.DefaultNameMuleOrphanDefinitionParser;
17  import org.mule.config.spring.parsers.specific.ObjectFactoryWrapper;
18  import org.mule.config.spring.parsers.specific.endpoint.support.ChildEndpointDefinitionParser;
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 DefaultNameMuleOrphanDefinitionParser(Log4jAgent.class));
38          registerBeanDefinitionParser("jmx-mx4j-adaptor", new DefaultNameMuleOrphanDefinitionParser(Mx4jAgent.class));
39          registerBeanDefinitionParser("jmx-notifications", new DefaultNameMuleOrphanDefinitionParser(JmxServerNotificationAgent.class));
40  
41          MuleDefinitionParserConfiguration defaultJmxParser = registerMuleBeanDefinitionParser("jmx-default-config", new DefaultNameMuleOrphanDefinitionParser(DefaultJmxSupportAgent.class));
42          defaultJmxParser.addAlias("registerMx4jAdapter", "loadMx4jAgent");
43          defaultJmxParser.addAlias("registerLog4j", "loadLog4jAgent");
44          
45          registerBeanDefinitionParser("level-mapping", new ChildMapEntryDefinitionParser("levelMappings", "severity", "eventId"));
46  
47          // these two are identical?
48          registerBeanDefinitionParser("log4j-notifications", new DefaultNameMuleOrphanDefinitionParser(Log4jNotificationLoggerAgent.class));
49          registerBeanDefinitionParser("chainsaw-notifications", new DefaultNameMuleOrphanDefinitionParser(Log4jNotificationLoggerAgent.class));
50  
51          registerBeanDefinitionParser("publish-notifications", new DefaultNameMuleOrphanDefinitionParser(EndpointNotificationLoggerAgent.class));
52          registerBeanDefinitionParser("rmi-server", new DefaultNameMuleOrphanDefinitionParser(RmiRegistryAgent.class));
53          registerBeanDefinitionParser("yourkit-profiler", new DefaultNameMuleOrphanDefinitionParser(YourKitProfilerAgent.class));
54  
55          registerBeanDefinitionParser("outbound-endpoint", new ChildEndpointDefinitionParser(OutboundEndpointFactoryBean.class));
56  
57          // This gets processed by the jmx-server parser
58          registerIgnoredElement("connector-server");
59      }
60      
61  }