View Javadoc

1   /*
2    * $Id: ManagementNamespaceHandler.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.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.factories.OutboundEndpointFactoryBean;
15  import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
16  import org.mule.config.spring.parsers.MuleDefinitionParserConfiguration;
17  import org.mule.config.spring.parsers.collection.ChildMapDefinitionParser;
18  import org.mule.config.spring.parsers.collection.ChildMapEntryDefinitionParser;
19  import org.mule.config.spring.parsers.specific.DefaultNameMuleOrphanDefinitionParser;
20  import org.mule.config.spring.parsers.specific.ObjectFactoryWrapper;
21  import org.mule.config.spring.parsers.specific.endpoint.support.ChildEndpointDefinitionParser;
22  import org.mule.module.management.agent.DefaultJmxSupportAgent;
23  import org.mule.module.management.agent.JmxServerNotificationAgent;
24  import org.mule.module.management.agent.Log4jAgent;
25  import org.mule.module.management.agent.Mx4jAgent;
26  import org.mule.module.management.agent.RmiRegistryAgent;
27  import org.mule.module.management.agent.YourKitProfilerAgent;
28  
29  /**
30   * Handles all configuration elements in the Mule Management module.
31   */
32  public class ManagementNamespaceHandler extends AbstractMuleNamespaceHandler
33  {
34  
35      public void init()
36      {
37          registerBeanDefinitionParser("jmx-server", new JmxAgentDefinitionParser());
38          registerBeanDefinitionParser("mBeanServer", new ObjectFactoryWrapper("MBeanServerObjectFactory"));
39          registerBeanDefinitionParser("credentials", new ChildMapDefinitionParser("credentials"));
40          registerBeanDefinitionParser("jmx-log4j", new DefaultNameMuleOrphanDefinitionParser(Log4jAgent.class));
41          registerBeanDefinitionParser("jmx-mx4j-adaptor", new DefaultNameMuleOrphanDefinitionParser(Mx4jAgent.class));
42          registerBeanDefinitionParser("jmx-notifications", new DefaultNameMuleOrphanDefinitionParser(JmxServerNotificationAgent.class));
43  
44          MuleDefinitionParserConfiguration defaultJmxParser = registerMuleBeanDefinitionParser("jmx-default-config", new DefaultNameMuleOrphanDefinitionParser(DefaultJmxSupportAgent.class));
45          defaultJmxParser.addAlias("registerMx4jAdapter", "loadMx4jAgent");
46          defaultJmxParser.addAlias("registerLog4j", "loadLog4jAgent");
47          
48          registerBeanDefinitionParser("level-mapping", new ChildMapEntryDefinitionParser("levelMappings", "severity", "eventId"));
49  
50          // these two are identical?
51          registerBeanDefinitionParser("log4j-notifications", new DefaultNameMuleOrphanDefinitionParser(Log4jNotificationLoggerAgent.class));
52          registerBeanDefinitionParser("chainsaw-notifications", new DefaultNameMuleOrphanDefinitionParser(Log4jNotificationLoggerAgent.class));
53  
54          registerBeanDefinitionParser("publish-notifications", new DefaultNameMuleOrphanDefinitionParser(EndpointNotificationLoggerAgent.class));
55          registerBeanDefinitionParser("rmi-server", new DefaultNameMuleOrphanDefinitionParser(RmiRegistryAgent.class));
56          registerBeanDefinitionParser("yourkit-profiler", new DefaultNameMuleOrphanDefinitionParser(YourKitProfilerAgent.class));
57  
58          registerBeanDefinitionParser("outbound-endpoint", new ChildEndpointDefinitionParser(OutboundEndpointFactoryBean.class));
59  
60          // This gets processed by the jmx-server parser
61          registerIgnoredElement("connector-server");
62      }
63      
64  }