You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2014/02/20 09:18:58 UTC

svn commit: r898613 [2/3] - in /websites/production/camel/content: cache/main.pageCache camel-2130-release.html camel-jmx.html spring-web-services.html

Modified: websites/production/camel/content/camel-jmx.html
==============================================================================
--- websites/production/camel/content/camel-jmx.html (original)
+++ websites/production/camel/content/camel-jmx.html Thu Feb 20 08:18:57 2014
@@ -86,19 +86,12 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="CamelJMX-CamelJMX">Camel JMX</h2>
+<div class="wiki-content maincontent"><h2 id="CamelJMX-CamelJMX">Camel JMX</h2><p>Apache Camel has extensive support for JMX to allow you to monitor and control the Camel managed objects with a JMX client.<br clear="none"> Camel also provides a <a shape="rect" href="jmx.html">JMX</a> component that allows you to subscribe to MBean notifications. This page is about how to manage and monitor Camel using JMX.</p><h3 id="CamelJMX-ActivatingJMXinCamel">Activating JMX in Camel</h3><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1392884300447 {padding: 0px;}
+div.rbtoc1392884300447 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1392884300447 li {margin-left: 0px;padding-left: 0px;}
 
-<p>Apache Camel has extensive support for JMX to allow you to monitor and control the Camel managed objects with a JMX client.<br clear="none">
-Camel also provides a <a shape="rect" href="jmx.html">JMX</a> component that allows you to subscribe to MBean notifications. This page is about how to manage and monitor Camel using JMX.</p>
-
-<h3 id="CamelJMX-ActivatingJMXinCamel">Activating JMX in Camel</h3>
-
-<style type="text/css">/*<![CDATA[*/
-div.rbtoc1392707966775 {padding: 0px;}
-div.rbtoc1392707966775 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1392707966775 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style><div class="toc-macro rbtoc1392707966775">
+/*]]>*/</style></p><div class="toc-macro rbtoc1392884300447">
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-CamelJMX">Camel JMX</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-ActivatingJMXinCamel">Activating JMX in Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-UsingJMXtomanageApacheCamel">Using JMX to manage Apache Camel</a></li><li><a shape="rect" href="#CamelJMX-DisablingJMXinstrumentationagentinCamel">Disabling JMX instrumentation agent in Camel</a></li><li><a shape="rect" href="#CamelJMX-LocatingaMBeanServerintheJavaVM">Locating a MBeanServer in the Java VM</a></li><li><a shape="rect" href="#CamelJMX-CreatingJMXRMIConnectorServer">Creating JMX RMI Connector Server</a></li><li><a shape="rect" href="#CamelJMX-JMXServiceURL">JMX Service URL</a></li><li><a shape="rect" href="#CamelJMX-TheSystemPropertiesforCamelJMXsupport">The System Properties for Camel JMX support</a></li><li><a shape="rect" href="#CamelJMX-HowtouseauthenticationwithJMX">How to use authentication with JMX</a></li><li><a shape="rect" href="#CamelJMX-JMXinsideanApplicationServer">JMX inside an Application Server</a>
@@ -112,165 +105,82 @@ div.rbtoc1392707966775 li {margin-left: 
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-DeclaringwhichJMXattributesandoperationstomask(hidesensitiveinformation)">Declaring which JMX attributes and operations to mask (hide sensitive information)</a></li></ul>
 </li><li><a shape="rect" href="#CamelJMX-SeeAlso">See Also</a></li></ul>
 </li></ul>
-</div>
-
-    <div class="aui-message hint shadowed information-macro">
+</div>    <div class="aui-message hint shadowed information-macro">
                     <p class="title">Spring JAR dependency, required for Camel 2.8 or older</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            
-<p><code>spring-context.jar</code>, <code>spring-aop.jar</code>, <code>spring-beans.jar</code>, and <code>spring-core.jar</code> are needed on the classpath by Camel to be able to use JMX instrumentation. If these .jars are not on the classpath, Camel will fallback to non JMX mode. This situation is logged at <code>WARN</code> level using logger name <code>org.apache.camel.impl.DefaultCamelContext</code>.</p>
-
-<p>From <strong>Camel 2.9</strong> onwards, the Spring JARs are <strong>no</strong> longer required to run Camel in JMX mode.</p>
+                            <p><code>spring-context.jar</code>, <code>spring-aop.jar</code>, <code>spring-beans.jar</code>, and <code>spring-core.jar</code> are needed on the classpath by Camel to be able to use JMX instrumentation. If these .jars are not on the classpath, Camel will fallback to non JMX mode. This situation is logged at <code>WARN</code> level using logger name <code>org.apache.camel.impl.DefaultCamelContext</code>.</p><p>From <strong>Camel 2.9</strong> onwards, the Spring JARs are <strong>no</strong> longer required to run Camel in JMX mode.</p>
                     </div>
     </div>
-
-
-<h4 id="CamelJMX-UsingJMXtomanageApacheCamel">Using JMX to manage Apache Camel</h4>
-
-<p>By default, JMX instrumentation agent is enabled in Camel, which means that Camel runtime creates and registers MBean management objects with a <code>MBeanServer</code> instance in the VM. This allows Camel users to instantly obtain insights into how Camel routes perform down to the individual processor level.</p>
-
-<p>The supported types of management objects are <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedEndpoint.html">endpoint</a>, <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedRoute.html">route</a>, <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedService.html">service</a>, and <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedProcessor.html">processor</a>. Some of these management objects also expose lifecycle operations in addition to performance counter attributes.</p>
-
-<p>The <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/DefaultManagementNamingStrategy.html">DefaultManagementNamingStrategy</a> is the default naming strategy which builds object names used for MBean registration. By default, <strong>org.apache.camel</strong> is the domain name for all object names created by CamelNamingStrategy. The domain name of the MBean object can be configured by Java VM system property:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.mbeanObjectDomainName=your.domain.name
+<h4 id="CamelJMX-UsingJMXtomanageApacheCamel">Using JMX to manage Apache Camel</h4><p>By default, JMX instrumentation agent is enabled in Camel, which means that Camel runtime creates and registers MBean management objects with a <code>MBeanServer</code> instance in the VM. This allows Camel users to instantly obtain insights into how Camel routes perform down to the individual processor level.</p><p>The supported types of management objects are <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedEndpoint.html">endpoint</a>, <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedRoute.html">route</a>, <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedService.html">service</a>, and <a shape="rect" class="external-link" 
 href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedProcessor.html">processor</a>. Some of these management objects also expose lifecycle operations in addition to performance counter attributes.</p><p>The <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/DefaultManagementNamingStrategy.html">DefaultManagementNamingStrategy</a> is the default naming strategy which builds object names used for MBean registration. By default, <strong>org.apache.camel</strong> is the domain name for all object names created by CamelNamingStrategy. The domain name of the MBean object can be configured by Java VM system property:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.mbeanObjectDomainName=your.domain.name
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; mbeanObjectDomainName=&quot;your.domain.name&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p>Spring configuration always takes precedence over system properties when they both present. It is true for all JMX related configurations.</p>
-
-<h4 id="CamelJMX-DisablingJMXinstrumentationagentinCamel">Disabling JMX instrumentation agent in Camel</h4>
-
-<p>You can disable JMX instrumentation agent by setting the Java VM system property as follow. The property value is treated as <code>boolean</code>.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.disabled=true
+</div></div><p>Spring configuration always takes precedence over system properties when they both present. It is true for all JMX related configurations.</p><h4 id="CamelJMX-DisablingJMXinstrumentationagentinCamel">Disabling JMX instrumentation agent in Camel</h4><p>You can disable JMX instrumentation agent by setting the Java VM system property as follow. The property value is treated as <code>boolean</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.disabled=true
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; disabled=&quot;true&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>Or in <strong>Camel 2.1</strong> its a bit easier (not having to use JVM system property) if using pure Java as you can disable it as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-CamelContext camel = new DefaultCamelContext();
+</div></div><p>Or in <strong>Camel 2.1</strong> its a bit easier (not having to use JVM system property) if using pure Java as you can disable it as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[CamelContext camel = new DefaultCamelContext();
 camel.disableJMX();
 ]]></script>
-</div></div>
-
-<h4 id="CamelJMX-LocatingaMBeanServerintheJavaVM">Locating a MBeanServer in the Java VM</h4>
-
-<p>Each CamelContext can have an instance of <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/InstrumentationAgent.html">InstrumentationAgent</a> wrapped inside the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/InstrumentationLifecycleStrategy.html">InstrumentationLifecycleStrategy</a>. The InstrumentationAgent is the object that interfaces with a <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServer.html" rel="nofollow">MBeanServer</a> to register/unregister Camel MBeans. Multiple CamelContexts/InstrumentationAgents can/should share a <code>MBeanServer</code>. By default, Camel runtime picks the first <code>MBeanServer</code> returned by <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServerFactory.html#findMBeanS
 erver(java.lang.String)" rel="nofollow">MBeanServerFactory.findMBeanServer method</a> that matches the default domain name of <strong>org.apache.camel</strong>. You may want to change the default domain name to match the <code>MBeanServer</code> instance that you are already using in your application. Especially, if your <code>MBeanServer</code> is attached to a JMX connector server, you will not need to create a connector server in Camel.</p>
-
-<p>You can configure the matching default domain name via system property.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.mbeanServerDefaultDomain=&lt;your.domain.name&gt;
+</div></div><h4 id="CamelJMX-LocatingaMBeanServerintheJavaVM">Locating a MBeanServer in the Java VM</h4><p>Each CamelContext can have an instance of <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/InstrumentationAgent.html">InstrumentationAgent</a> wrapped inside the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/InstrumentationLifecycleStrategy.html">InstrumentationLifecycleStrategy</a>. The InstrumentationAgent is the object that interfaces with a <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServer.html" rel="nofollow">MBeanServer</a> to register/unregister Camel MBeans. Multiple CamelContexts/InstrumentationAgents can/should share a <code>MBeanServer</code>. By default, Camel runtime picks the first <code>MBeanServer</code> returned by <a shape="rect" class="external
 -link" href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServerFactory.html#findMBeanServer(java.lang.String)" rel="nofollow">MBeanServerFactory.findMBeanServer method</a> that matches the default domain name of <strong>org.apache.camel</strong>. You may want to change the default domain name to match the <code>MBeanServer</code> instance that you are already using in your application. Especially, if your <code>MBeanServer</code> is attached to a JMX connector server, you will not need to create a connector server in Camel.</p><p>You can configure the matching default domain name via system property.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.mbeanServerDefaultDomain=&lt;your.domain.name&gt;
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; mbeanServerDefaultDomain=&quot;your.domain.name&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p>If no matching <code>MBeanServer</code> can be found, a new one is created and the new <code>MBeanServer</code>'s default domain name is set according to the default and configuration as mentioned above.</p>
-
-<p>It is also possible to use the <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()" rel="nofollow">PlatformMBeanServer</a> when it is desirable to manage JVM MBeans by setting the system property. The <code>MBeanServer</code> default domain name configuration is ignored as it is not applicable. <strong>Starting in next release (1.5), the default value of <code>usePlatformMBeanServer</code> will be changed to "True". You can set the property to "False" to disable using platform <code>MBeanServer</code>.</strong></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.usePlatformMBeanServer=True
+</div></div><p>If no matching <code>MBeanServer</code> can be found, a new one is created and the new <code>MBeanServer</code>'s default domain name is set according to the default and configuration as mentioned above.</p><p>It is also possible to use the <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()" rel="nofollow">PlatformMBeanServer</a> when it is desirable to manage JVM MBeans by setting the system property. The <code>MBeanServer</code> default domain name configuration is ignored as it is not applicable. <strong>Starting in next release (1.5), the default value of <code>usePlatformMBeanServer</code> will be changed to "True". You can set the property to "False" to disable using platform <code>MBeanServer</code>.</strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.usePlatformMBeanServer=True
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; usePlatformMBeanServer=&quot;true&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<h4 id="CamelJMX-CreatingJMXRMIConnectorServer">Creating JMX RMI Connector Server</h4>
-
-<p>JMX connector server enables MBeans to be remotely managed by a JMX client such as JConsole; Camel JMX RMI connector server can be optionally turned on by setting system property and the <code>MBeanServer</code> used by Camel is attached to that connector server.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.createRmiConnector=True
+</div></div><h4 id="CamelJMX-CreatingJMXRMIConnectorServer">Creating JMX RMI Connector Server</h4><p>JMX connector server enables MBeans to be remotely managed by a JMX client such as JConsole; Camel JMX RMI connector server can be optionally turned on by setting system property and the <code>MBeanServer</code> used by Camel is attached to that connector server.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.createRmiConnector=True
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<h4 id="CamelJMX-JMXServiceURL">JMX Service URL</h4>
-
-<p>The default JMX Service URL has the format:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-service:jmx:rmi:///jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;
+</div></div><h4 id="CamelJMX-JMXServiceURL">JMX Service URL</h4><p>The default JMX Service URL has the format:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[service:jmx:rmi:///jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;
 ]]></script>
-</div></div>
-<p><em>registryPort</em> is the RMI registry port and the default value is <strong>1099</strong>.</p>
-
-<p>You can set the RMI registry port by system property.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.rmiConnector.registryPort=&lt;port number&gt;
+</div></div><p><em>registryPort</em> is the RMI registry port and the default value is <strong>1099</strong>.</p><p>You can set the RMI registry port by system property.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.rmiConnector.registryPort=&lt;port number&gt;
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; registryPort=&quot;port number&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p><em>serviceUrlPath</em> is the path name in the URL and the default value is <strong>/jmxrmi/camel</strong>.</p>
-
-<p>You can set the service URL path by system property.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.serviceUrlPath=&lt;path&gt;
+</div></div><p><em>serviceUrlPath</em> is the path name in the URL and the default value is <strong>/jmxrmi/camel</strong>.</p><p>You can set the service URL path by system property.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.serviceUrlPath=&lt;path&gt;
 ]]></script>
-</div></div>
-
-    <div class="aui-message success shadowed information-macro">
+</div></div>    <div class="aui-message success shadowed information-macro">
                     <p class="title">Setting ManagementAgent settings in Java</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>In <strong>Camel 2.4</strong> onwards you can also set the various options on the <code>ManagementAgent</code>:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+                            <p>In <strong>Camel 2.4</strong> onwards you can also set the various options on the <code>ManagementAgent</code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 context.getManagementStrategy().getManagementAgent().setServiceUrlPath(&quot;/foo/bar&quot;);
 context.getManagementStrategy().getManagementAgent().setRegistryPort(2113);
@@ -279,117 +189,46 @@ context.getManagementStrategy().getManag
 </div></div>
                     </div>
     </div>
-
-
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+<p>Or, by adding a <strong>jmxAgent</strong> element inside the camelContext element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; serviceUrlPath=&quot;path&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p>By default, RMI server object listens on a dynamically generated port, which can be a problem for connections established through a firewall. In such situations, RMI connection port can be explicitly set by the system property.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.camel.jmx.rmiConnector.connectorPort=&lt;port number&gt;
+</div></div><p>By default, RMI server object listens on a dynamically generated port, which can be a problem for connections established through a firewall. In such situations, RMI connection port can be explicitly set by the system property.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.camel.jmx.rmiConnector.connectorPort=&lt;port number&gt;
 ]]></script>
-</div></div>
-<p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://activemq.apache.org/camel/schema/spring&quot;&gt;
+</div></div><p>Or, by adding a <strong>jmxAgent</strong> element inside the <code>camelContext</code> element in Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://activemq.apache.org/camel/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; connectorPort=&quot;port number&quot;/&gt;
     ...
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p>When the connector port option is set, the JMX service URL will become:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-service:jmx:rmi://localhost:&lt;connectorPort&gt;/jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;
+</div></div><p>When the connector port option is set, the JMX service URL will become:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[service:jmx:rmi://localhost:&lt;connectorPort&gt;/jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;
 ]]></script>
-</div></div>
-
-<h4 id="CamelJMX-TheSystemPropertiesforCamelJMXsupport">The System Properties for Camel JMX support</h4>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Property Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> org.apache.camel.jmx </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> true or false </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> if is true , it will enable jmx feature in Camel </p></td></tr></tbody></table></div>
-
-
-<p>See more system properties in this section below: <em>jmxAgent Properties Reference</em></p>
-
-<h4 id="CamelJMX-HowtouseauthenticationwithJMX">How to use authentication with JMX</h4>
-
-<p>JMX in the JDK have features for authentication and also for using secure connections over SSL. You have to refer to the SUN documentation how to use this:</p>
-<ul class="alternate"><li><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html</a></li><li><a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html" rel="nofollow">http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html</a></li></ul>
-
-
-<h4 id="CamelJMX-JMXinsideanApplicationServer">JMX inside an Application Server</h4>
-
-<h5 id="CamelJMX-Tomcat6">Tomcat 6</h5>
-
-<p>See <a shape="rect" class="external-link" href="http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html">this page</a> for details about enabling JMX in Tomcat.</p>
-
-<p>In short, modify your catalina.sh (or catalina.bat in Windows) file to set the following options...</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
- set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
+</div></div><h4 id="CamelJMX-TheSystemPropertiesforCamelJMXsupport">The System Properties for Camel JMX support</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.camel.jmx</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true or false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if is true , it will enable jmx feature in Camel</p></td></tr></tbody></table></div><p>See more system properties in this section below: <em>jmxAgent Properties Reference</em></p><h4 id="CamelJMX-HowtouseauthenticationwithJMX">How to use authentication with JMX</h4><p>JMX in the JDK have features for authentication and also for using secure connections over SSL. You have to refer to t
 he SUN documentation how to use this:</p><ul class="alternate"><li><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html</a></li><li><a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html" rel="nofollow">http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html</a></li></ul><h4 id="CamelJMX-JMXinsideanApplicationServer">JMX inside an Application Server</h4><h5 id="CamelJMX-Tomcat6">Tomcat 6</h5><p>See <a shape="rect" class="external-link" href="http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html">this page</a> for details about enabling JMX in Tomcat.</p><p>In short, modify your catalina.sh (or catalina.bat in Windows) file to set the following options...</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=1099 \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.authenticate=false
 ]]></script>
-</div></div>
-
-<h5 id="CamelJMX-JBossAS4">JBoss AS 4</h5>
-
-<p>By default JBoss creates its own <code>MBeanServer</code>. To allow Camel to expose to the same server follow these steps:</p>
-
-<p>1. Tell Camel to use the Platform <code>MBeanServer</code> (This defaults to true in Camel 1.5)</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camel:camelContext id=&quot;camelContext&quot;&gt;
+</div></div><h5 id="CamelJMX-JBossAS4">JBoss AS 4</h5><p>By default JBoss creates its own <code>MBeanServer</code>. To allow Camel to expose to the same server follow these steps:</p><p>1. Tell Camel to use the Platform <code>MBeanServer</code> (This defaults to true in Camel 1.5)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camel:camelContext id=&quot;camelContext&quot;&gt;
   &lt;camel:jmxAgent id=&quot;jmxAgent&quot; mbeanObjectDomainName=&quot;org.yourname&quot; usePlatformMBeanServer=&quot;true&quot;  /&gt;
 &lt;/camel:camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>2. Alter your JBoss instance to use the Platform <code>MBeanServer</code>.<br clear="none">
-Add the following property to your JAVA_OPTS by editing run.sh or run.conf {{ -Djboss.platform.mbeanserver }} See <a shape="rect" class="external-link" href="http://wiki.jboss.org/wiki/JBossMBeansInJConsole" rel="nofollow">http://wiki.jboss.org/wiki/JBossMBeansInJConsole</a></p>
-
-<h5 id="CamelJMX-WebSphere">WebSphere</h5>
-
-<p>Alter the <code>mbeanServerDefaultDomain</code> to be "WebSphere"</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camel:jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; mbeanObjectDomainName=&quot;org.yourname&quot; usePlatformMBeanServer=&quot;false&quot; mbeanServerDefaultDomain=&quot;WebSphere&quot;/&gt;
+</div></div><p>2. Alter your JBoss instance to use the Platform <code>MBeanServer</code>.<br clear="none"> Add the following property to your JAVA_OPTS by editing run.sh or run.conf {{ -Djboss.platform.mbeanserver }} See <a shape="rect" class="external-link" href="http://wiki.jboss.org/wiki/JBossMBeansInJConsole" rel="nofollow">http://wiki.jboss.org/wiki/JBossMBeansInJConsole</a></p><h5 id="CamelJMX-WebSphere">WebSphere</h5><p>Alter the <code>mbeanServerDefaultDomain</code> to be "WebSphere"</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camel:jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; mbeanObjectDomainName=&quot;org.yourname&quot; usePlatformMBeanServer=&quot;false&quot; mbeanServerDefaultDomain=&quot;WebSphere&quot;/&gt;
 ]]></script>
-</div></div>
-
-<h5 id="CamelJMX-OracleOC4j">Oracle OC4j</h5>
-
-<p>The Oracle OC4J J2EE application server will not allow Camel to access the platform <code>MBeanServer</code>. You can identify this in the log as Camel will log a <code>WARNING</code>.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-xxx xx, xxxx xx:xx:xx xx org.apache.camel.management.InstrumentationLifecycleStrategy onContextStart
+</div></div><h5 id="CamelJMX-OracleOC4j">Oracle OC4j</h5><p>The Oracle OC4J J2EE application server will not allow Camel to access the platform <code>MBeanServer</code>. You can identify this in the log as Camel will log a <code>WARNING</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[xxx xx, xxxx xx:xx:xx xx org.apache.camel.management.InstrumentationLifecycleStrategy onContextStart
 WARNING: Could not register CamelContext MBean
 java.lang.SecurityException: Unauthorized access from application: xx to MBean: java.lang:type=ClassLoading
         at oracle.oc4j.admin.jmx.shared.UserMBeanServer.checkRegisterAccess(UserMBeanServer.java:873)
 ]]></script>
-</div></div>
-<p>To resolve this you should disable the JMX agent in Camel, see section <em>Disabling JMX instrumentation agent in Camel</em></p>
-
-<h4 id="CamelJMX-AdvancedJMXConfiguration">Advanced JMX Configuration</h4>
-
-<p>The Spring configuration file allows you to configure how Camel is exposed to JMX for management. In some cases, you could specify more information here, like the connector's port or the path name.</p>
-
-<h4 id="CamelJMX-Example:">Example:</h4>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>To resolve this you should disable the JMX agent in Camel, see section <em>Disabling JMX instrumentation agent in Camel</em></p><h4 id="CamelJMX-AdvancedJMXConfiguration">Advanced JMX Configuration</h4><p>The Spring configuration file allows you to configure how Camel is exposed to JMX for management. In some cases, you could specify more information here, like the connector's port or the path name.</p><h4 id="CamelJMX-Example:">Example:</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;jmxAgent id=&quot;agent&quot; createConnector=&quot;true&quot; registryPort=&quot;2000&quot; mbeanServerDefaultDomain=&quot;org.apache.camel.test&quot;/&gt;
     &lt;route&gt;
       &lt;from uri=&quot;seda:start&quot;/&gt;
@@ -397,62 +236,11 @@ java.lang.SecurityException: Unauthorize
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-<p>If you wish to change the Java 5 JMX settings you can use various <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#properties" rel="nofollow">JMX system properties</a></p>
-
-<p>For example you can enable remote JMX connections to the Sun JMX connector, via setting the following environment variable (using <strong>set</strong> or <strong>export</strong> depending on your platform). These settings only configure the Sun JMX connector within Java 1.5+, not the JMX connector that Camel creates by default.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
+</div></div><p>If you wish to change the Java 5 JMX settings you can use various <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#properties" rel="nofollow">JMX system properties</a></p><p>For example you can enable remote JMX connections to the Sun JMX connector, via setting the following environment variable (using <strong>set</strong> or <strong>export</strong> depending on your platform). These settings only configure the Sun JMX connector within Java 1.5+, not the JMX connector that Camel creates by default.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
 ]]></script>
-</div></div>
-<p>(The SUNJMX environment variable is simple used by the startup script for Camel, as additional startup parameters for the JVM. If you start Camel directly, you'll have to pass these parameters yourself.)</p>
-
-<h4 id="CamelJMX-jmxAgentPropertiesReference">jmxAgent Properties Reference</h4>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Spring property </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> System property </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>id</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The JMX agent name, and it is not optional </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>usePlatformMBeanServer</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.usePlatformMBeanServer</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code>, 
 <code>true</code> - Release 1.5 or later </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If <code>true</code>, it will use the <code>MBeanServer</code> from the JVM </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>mbeanServerDefaultDomain</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.mbeanServerDefaultDomain</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The default JMX domain of the <code>MBeanServer</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>mbeanObjectDomainName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.mbeanObjectDomainName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> T
 he JMX domain that all object names will use </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>createConnector</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.createRmiConnect</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If we should create a JMX connector (to allow remote management) for the <code>MBeanServer</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>registryPort</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.rmiConnector.registryPort</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1099</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The port that the JMX RMI registry will use </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>connectorPort</c
 ode> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.rmiConnector.connectorPort</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> -1 (dynamic) </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The port that the JMX RMI server will use </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>serviceUrlPath</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.serviceUrlPath</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>/jmxrmi/camel</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The path that JMX connector will be registered under </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>onlyRegisterProcessorWithCustomId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.camel.jmx.onlyRegisterProcessorWithCustomId</code> </p></td><td colspan="1" row
 span="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.0:</strong> If this option is enabled then only processors with a custom id set will be registered. This allows you to filer out unwanted processors in the JMX console. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>statisticsLevel</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>All</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.1:</strong> Configures the level for whether performance statistics is enabled for the MBean. See section <em>Configuring level of granularity for performance statistics</em> for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>includeHostName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>org.apache.c
 amel.jmx.includeHostName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.13:</strong> Whether to include the hostname in the MBean naming. From Camel 2.13 onwards this is default <code>false</code>, where as in older releases its default <code>true</code>. You can use this option to restore old behavior if really needed. </p></td></tr></tbody></table></div>
-
-
-<h4 id="CamelJMX-ConfiguringwhethertoregisterMBeansalways,fornewroutesorjustbydefault">Configuring whether to register MBeans always, for new routes or just by default</h4>
-
-<p><strong>Available as of Camel 2.7</strong></p>
-
-<p>Camel now offers 2 settings to control whether or not to register mbeans</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>registerAlways</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If enabled then MBeans is always registered. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>registerNewRoutes</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If enabled then adding new routes after <a shape="rect" href="camelcontext.html">CamelContext</a> has been started will also register MBeans from that given route. </p></td></tr></tbody></table></
 div>
-
-
-<p>By default Camel registers MBeans for all the routes configured when its starting. The <code>registerNewRoutes</code> option control if MBeans should also be registered if you add new routes thereafter. You can disable this, if you for example add and remove temporary routes where management is not needed.</p>
-
-<p>Be a bit caution to use the <code>registerAlways</code> option when using dynamic <a shape="rect" href="eip.html">EIP</a> patterns such as the <a shape="rect" href="recipient-list.html">Recipient List</a> having unique endpoints. If so then each unique endpoint and its associated services/producers would also be registered. This could potential lead to system degration due the rising number of mbeans in the registry. A MBean is not a light-weight object and thus consumes memory.</p>
-
-<h3 id="CamelJMX-MonitoringCamelusingJMX">Monitoring Camel using JMX</h3>
-
-<h4 id="CamelJMX-UsingJConsoletomonitorCamel">Using JConsole to monitor Camel</h4>
-
-<p>The <code>CamelContext</code> should appear in the list of local connections, if you are running JConsole on the same host as Camel.</p>
-
-<p>To connect to a remote Camel instance, or if the local process does  not show up, use Remote Process option, and enter an URL. Here is an  example localhost URL:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel</p>
-
-<p>Using the Apache Camel with JConsole</p>
-
-<p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2" data-image-src="/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2"></p>
-
-<h4 id="CamelJMX-Whichendpointsareregistered">Which endpoints are registered</h4>
-
-<p>In <strong>Camel 2.1</strong> onwards <strong>only</strong> <code>singleton</code> endpoints are registered as the overhead for non singleton will be substantial in cases where thousands or millions of endpoints are used. This can happens when using a <a shape="rect" href="recipient-list.html">Recipient List</a> EIP or from a <code>ProducerTemplate</code> that sends a lot of messages.</p>
-
-<h4 id="CamelJMX-Whichprocessorsareregistered">Which processors are registered</h4>
-
-<p>See <a shape="rect" href="why-is-my-processor-not-showing-up-in-jconsole.html">this FAQ</a>.</p>
-
-<h4 id="CamelJMX-HowtousetheJMXNotificationListenertolistenthecamelevents?">How to use the JMX NotificationListener to listen the camel events?</h4>
-
-<p>The Camel notification events give a coarse grained overview what is happening. You can see lifecycle event from context and endpoints and you can see exchanges being received by and sent to endpoints.</p>
-
-<p>From <strong>Camel 2.4</strong> you can use a custom JMX NotificationListener to listen the camel events.<br clear="none">
-First you need to set up a JmxNotificationEventNotifier before you start the CamelContext.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>(The SUNJMX environment variable is simple used by the startup script for Camel, as additional startup parameters for the JVM. If you start Camel directly, you'll have to pass these parameters yourself.)</p><h4 id="CamelJMX-jmxAgentPropertiesReference">jmxAgent Properties Reference</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Spring property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>System property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX agent name, and it is not optional</p></td></tr><tr>
 <td colspan="1" rowspan="1" class="confluenceTd"><p><code>usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code>, <code>true</code> - Release 1.5 or later</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code>, it will use the <code>MBeanServer</code> from the JVM</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The default JMX domain of the <code>MBeanServer</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mbeanObjectDomainName</code><
 /p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanObjectDomainName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX domain that all object names will use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>createConnector</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.createRmiConnect</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If we should create a JMX connector (to allow remote management) for the <code>MBeanServer</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registryPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.rmiConnector.registryPort</code></p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p><code>1099</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI registry will use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.rmiConnector.connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-1 (dynamic)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI server will use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/jmxrmi/camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The path that JMX connector will be registered under</p></td></tr><tr><td colspan="1" rowspan=
 "1" class="confluenceTd"><p><code>onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.0:</strong> If this option is enabled then only processors with a custom id set will be registered. This allows you to filer out unwanted processors in the JMX console.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>statisticsLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>All</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> Configures the level for whether performance statistics is enabled for the MBean. See section <em>Configuring level of granularity for perfo
 rmance statistics</em> for more details.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13:</strong> Whether to include the hostname in the MBean naming. From Camel 2.13 onwards this is default <code>false</code>, where as in older releases its default <code>true</code>. You can use this option to restore old behavior if really needed.</p></td></tr></tbody></table></div><h4 id="CamelJMX-ConfiguringwhethertoregisterMBeansalways,fornewroutesorjustbydefault">Configuring whether to register MBeans always, for new routes or just by default</h4><p><strong>Available as of Camel 2.7</strong></p><p>Camel now offers 2 settings to control whether or not to register mbeans</p><div class="table-wr
 ap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registerAlways</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled then MBeans is always registered.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registerNewRoutes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled then adding new routes after <a shape="rect" href="camelcontext.html">CamelContext</a> has been started will also register MBeans from that given route.</p></td></tr></tbody></table></div><p>By default Camel registers MBea
 ns for all the routes configured when its starting. The <code>registerNewRoutes</code> option control if MBeans should also be registered if you add new routes thereafter. You can disable this, if you for example add and remove temporary routes where management is not needed.</p><p>Be a bit caution to use the <code>registerAlways</code> option when using dynamic <a shape="rect" href="eip.html">EIP</a> patterns such as the <a shape="rect" href="recipient-list.html">Recipient List</a> having unique endpoints. If so then each unique endpoint and its associated services/producers would also be registered. This could potential lead to system degration due the rising number of mbeans in the registry. A MBean is not a light-weight object and thus consumes memory.</p><h3 id="CamelJMX-MonitoringCamelusingJMX">Monitoring Camel using JMX</h3><h4 id="CamelJMX-UsingJConsoletomonitorCamel">Using JConsole to monitor Camel</h4><p>The <code>CamelContext</code> should appear in the list of local conn
 ections, if you are running JConsole on the same host as Camel.</p><p>To connect to a remote Camel instance, or if the local process does not show up, use Remote Process option, and enter an URL. Here is an example localhost URL:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel</p><p>Using the Apache Camel with JConsole</p><p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2" data-image-src="/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2"></p><h4 id="CamelJMX-Whichendpointsareregistered">Which endpoints are registered</h4><p>In <strong>Camel 2.1</strong> onwards <strong>only</strong> <code>singleton</code> endpoints are registered as the overhead for non singleton will be substantial in cases where thousands or millions of endpoints are used. This can happen
 s when using a <a shape="rect" href="recipient-list.html">Recipient List</a> EIP or from a <code>ProducerTemplate</code> that sends a lot of messages.</p><h4 id="CamelJMX-Whichprocessorsareregistered">Which processors are registered</h4><p>See <a shape="rect" href="why-is-my-processor-not-showing-up-in-jconsole.html">this FAQ</a>.</p><h4 id="CamelJMX-HowtousetheJMXNotificationListenertolistenthecamelevents?">How to use the JMX NotificationListener to listen the camel events?</h4><p>The Camel notification events give a coarse grained overview what is happening. You can see lifecycle event from context and endpoints and you can see exchanges being received by and sent to endpoints.</p><p>From <strong>Camel 2.4</strong> you can use a custom JMX NotificationListener to listen the camel events.<br clear="none"> First you need to set up a JmxNotificationEventNotifier before you start the CamelContext.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelC
 ontent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // Set up the JmxNotificationEventNotifier
 notifier = new JmxNotificationEventNotifier();
@@ -469,10 +257,7 @@ DefaultManagementNamingStrategy naming =
 naming.setHostName(&quot;localhost&quot;);
 naming.setDomainName(&quot;org.apache.camel&quot;);
 ]]></script>
-</div></div>
-
-<p>Second you can register your listener for listening the event</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Second you can register your listener for listening the event</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 // register the NotificationListener
 ObjectName on = ObjectName.getInstance(&quot;org.apache.camel:context=localhost/camel-1,type=eventnotifiers,name=JmxEventNotifier&quot;);
@@ -488,30 +273,7 @@ context.getManagementStrategy().getManag
     }, null);
 
 ]]></script>
-</div></div>
-
-<h4 id="CamelJMX-UsingtheTracerMBeantogetfinegrainedtracing">Using the Tracer MBean to get fine grained tracing</h4>
-
-<p>Additionally to the coarse grained notifications above <strong>Camel 2.9.0</strong> support JMX Notification for fine grained trace events.<br clear="none">
-These can be found in the Tracer MBean. To activate fine grained tracing you first need to activate tracing on the context or on a route.<br clear="none">
-This can either be done when configuring the context or on the context / route MBeans.</p>
-
-<p>As a second step you have to set the <code>jmxTraceNotifications</code> attribute to <code>true</code> on the tracer. This can again be done when configuring the context or at runtime on the tracer MBean.</p>
-
-<p>Now you can register for TraceEvent Notifications on the Tracer MBean using JConsole. There will be one Notification for every step on the route with all exchange and message details.</p>
-
-<p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2" data-image-src="/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2"></p>
-
-<h3 id="CamelJMX-UsingJMXforyourownCamelCode">Using JMX for your own Camel Code</h3>
-
-<h4 id="CamelJMX-RegisteringyourownManagedEndpoints">Registering your own Managed Endpoints</h4>
-
-<p><strong>Available as of Camel 2.0</strong><br clear="none">
-You can decorate your own endpoints with Spring managed annotations <code>@ManagedResource</code> to allow to register them in the Camel <code>MBeanServer</code> and thus access your custom MBeans using JMX.<br clear="none">
-<strong>Notice:</strong> in <strong>Camel 2.1</strong> we have changed this to apply other than just endpoints but then you need to implement the interface <code>org.apache.camel.spi.ManagementAware</code> as well. More about this later.</p>
-
-<p>For example we have the following custom endpoint where we define some options to be managed:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="CamelJMX-UsingtheTracerMBeantogetfinegrainedtracing">Using the Tracer MBean to get fine grained tracing</h4><p>Additionally to the coarse grained notifications above <strong>Camel 2.9.0</strong> support JMX Notification for fine grained trace events.<br clear="none"> These can be found in the Tracer MBean. To activate fine grained tracing you first need to activate tracing on the context or on a route.<br clear="none"> This can either be done when configuring the context or on the context / route MBeans.</p><p>As a second step you have to set the <code>jmxTraceNotifications</code> attribute to <code>true</code> on the tracer. This can again be done when configuring the context or at runtime on the tracer MBean.</p><p>Now you can register for TraceEvent Notifications on the Tracer MBean using JConsole. There will be one Notification for every step on the route with all exchange and message details.</p><p><img class="confluence-embedded-image confluence-content-ima
 ge-border" src="https://cwiki.apache.org/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2" data-image-src="/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2"></p><h3 id="CamelJMX-UsingJMXforyourownCamelCode">Using JMX for your own Camel Code</h3><h4 id="CamelJMX-RegisteringyourownManagedEndpoints">Registering your own Managed Endpoints</h4><p><strong>Available as of Camel 2.0</strong><br clear="none"> You can decorate your own endpoints with Spring managed annotations <code>@ManagedResource</code> to allow to register them in the Camel <code>MBeanServer</code> and thus access your custom MBeans using JMX.<br clear="none"> <strong>Notice:</strong> in <strong>Camel 2.1</strong> we have changed this to apply other than just endpoints but then you need to implement the interface <code>org.apache.camel.spi.ManagementAware</code> as we
 ll. More about this later.</p><p>For example we have the following custom endpoint where we define some options to be managed:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 @ManagedResource(description = &quot;Our custom managed endpoint&quot;)
 public class CustomEndpoint extends MockEndpoint implements ManagementAware&lt;CustomEndpoint&gt; {
@@ -543,216 +305,68 @@ public class CustomEndpoint extends Mock
     }
 }
 ]]></script>
-</div></div>
-
-<p>Notice from <strong>Camel 2.9</strong> onwards its encouraged to use the <code>@ManagedResource</code>, <code>@ManagedAttribute</code>, and <code>@ManagedOperation</code> from the <code>org.apache.camel.api.management</code> package. This allows your custom code to not depend on Spring JARs.</p>
-
-<h4 id="CamelJMX-ProgrammingyourownManagedServices">Programming your own Managed Services</h4>
-
-<p><strong>Available as of Camel 2.1</strong></p>
-
-<p>Camel now offers to use your own MBeans when registering services for management. What that means is for example you can develop a custom Camel component and have it expose MBeans for endpoints, consumers and producers etc. All you need to do is to implement the interface <code>org.apache.camel.spi.ManagementAware</code> and return the managed object Camel should use.</p>
-
-<p>Now before you think oh boys the JMX API is really painful and terrible, then yeah you are right. Lucky for us Spring though too and they created a range of annotations you can use to export management on an existing bean. That means that you often use that and just return <code>this</code> in the <code>getManagedObject</code> from the <code>ManagementAware</code> interface. For an example see the code example above with the <code>CustomEndpoint</code>.</p>
-
-<p>Now in <strong>Camel 2.1</strong> you can do this for all the objects that Camel registers for management which are quite a bunch, but not all.</p>
-
-<p>For services which do not implement this <code>ManagementAware</code> interface then Camel will fallback to using default wrappers as defined in the table below:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> MBean wrapper </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> CamelContext </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedCamelContext </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Component </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedComponent </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Endpoint </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedEndpoint </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Consumer </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedConsumer </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Producer </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedProduc
 er </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Route </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedRoute </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Processor </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedProcessor </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Tracer </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedTracer </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Service </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedService </p></td></tr></tbody></table></div>
-
-
-<p>In addition to that there are some extended wrappers for specialized types such as</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> MBean wrapper </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> ScheduledPollConsumer </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedScheduledPollConsumer </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> BrowsableEndpoint </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedBrowseableEndpoint </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Throttler </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedThrottler </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Delayer </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ManagedDelayer </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> SendProcessor </p></td><td colspan="1" rowspan="1
 " class="confluenceTd"><p> ManagedSendProcessor </p></td></tr></tbody></table></div>
-
-
-<p>And in the future we will add additional wrappers for more EIP patterns.</p>
-
-<h4 id="CamelJMX-ManagementNamingStrategy">ManagementNamingStrategy</h4>
-
-<p><strong>Available as of Camel 2.1</strong></p>
-
-<p>Camel provides a pluggable API for naming strategy by <code>org.apache.camel.spi.ManagementNamingStrategy</code>. A default implementation is used to compute the MBean names that all MBeans are registered with.</p>
-
-<h4 id="CamelJMX-Managementnamingpattern">Management naming pattern</h4>
-<p><strong>Available as of Camel 2.10</strong></p>
-
-<p>From <strong>Camel 2.10</strong> onwards we made it easier to configure a naming pattern for the MBeans. The pattern is used as part of the <code>ObjectName</code> as they key after the domain name.</p>
-
-<p>By default Camel will use MBean names for the <code>ManagedCamelContextMBean</code> as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.camel:context=localhost/camel-1,type=context,name=camel-1
+</div></div><p>Notice from <strong>Camel 2.9</strong> onwards its encouraged to use the <code>@ManagedResource</code>, <code>@ManagedAttribute</code>, and <code>@ManagedOperation</code> from the <code>org.apache.camel.api.management</code> package. This allows your custom code to not depend on Spring JARs.</p><h4 id="CamelJMX-ProgrammingyourownManagedServices">Programming your own Managed Services</h4><p><strong>Available as of Camel 2.1</strong></p><p>Camel now offers to use your own MBeans when registering services for management. What that means is for example you can develop a custom Camel component and have it expose MBeans for endpoints, consumers and producers etc. All you need to do is to implement the interface <code>org.apache.camel.spi.ManagementAware</code> and return the managed object Camel should use.</p><p>Now before you think oh boys the JMX API is really painful and terrible, then yeah you are right. Lucky for us Spring though too and they created a range of annota
 tions you can use to export management on an existing bean. That means that you often use that and just return <code>this</code> in the <code>getManagedObject</code> from the <code>ManagementAware</code> interface. For an example see the code example above with the <code>CustomEndpoint</code>.</p><p>Now in <strong>Camel 2.1</strong> you can do this for all the objects that Camel registers for management which are quite a bunch, but not all.</p><p>For services which do not implement this <code>ManagementAware</code> interface then Camel will fallback to using default wrappers as defined in the table below:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MBean wrapper</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>CamelContext</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedCamelContext</p></td></tr><tr><td c
 olspan="1" rowspan="1" class="confluenceTd"><p>Component</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedComponent</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Endpoint</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedEndpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Consumer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedConsumer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Producer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedProducer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Route</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedRoute</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Processor</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedProcessor</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Tracer</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>ManagedTracer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Service</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedService</p></td></tr></tbody></table></div><p>In addition to that there are some extended wrappers for specialized types such as</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MBean wrapper</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ScheduledPollConsumer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedScheduledPollConsumer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>BrowsableEndpoint</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedBrowseableEndpoint</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Throttler</p></td><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>ManagedThrottler</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Delayer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedDelayer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>SendProcessor</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagedSendProcessor</p></td></tr></tbody></table></div><p>And in the future we will add additional wrappers for more EIP patterns.</p><h4 id="CamelJMX-ManagementNamingStrategy">ManagementNamingStrategy</h4><p><strong>Available as of Camel 2.1</strong></p><p>Camel provides a pluggable API for naming strategy by <code>org.apache.camel.spi.ManagementNamingStrategy</code>. A default implementation is used to compute the MBean names that all MBeans are registered with.</p><h4 id="CamelJMX-Managementnamingpattern">Management naming pattern</h4><p><strong>Available as of Camel 2.10</strong></p><p>From <strong>Camel 2.10</strong> onwards we made it easier to conf
 igure a naming pattern for the MBeans. The pattern is used as part of the <code>ObjectName</code> as they key after the domain name.</p><p>By default Camel will use MBean names for the <code>ManagedCamelContextMBean</code> as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.camel:context=localhost/camel-1,type=context,name=camel-1
 ]]></script>
-</div></div>
-
-<p>And from <strong>Camel 2.13</strong> onwards the hostname is not included in the MBean names, so the above example would be as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.camel:context=camel-1,type=context,name=camel-1
+</div></div><p>And from <strong>Camel 2.13</strong> onwards the hostname is not included in the MBean names, so the above example would be as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.camel:context=camel-1,type=context,name=camel-1
 ]]></script>
-</div></div>
-
-<p>If you configure a name on the <code>CamelContext</code> then that name is part of the <code>ObjectName</code> as well. For example if we have</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;myCamel&quot; ...&gt;
+</div></div><p>If you configure a name on the <code>CamelContext</code> then that name is part of the <code>ObjectName</code> as well. For example if we have</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;myCamel&quot; ...&gt;
 ]]></script>
-</div></div>
-<p>Then the MBean names will be as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
+</div></div><p>Then the MBean names will be as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
 ]]></script>
-</div></div>
-
-<p>Now if there is a naming clash in the JVM, such as there already exists a MBean with that given name above, then Camel will by default try to auto correct this by finding a new free name in the <code>JMXMBeanServer</code> by using a counter. As shown below the counter is now appended, so we have <code>myCamel-1</code> as part of the <code>ObjectName</code>:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.camel:context=localhost/myCamel-1,type=context,name=myCamel
+</div></div><p>Now if there is a naming clash in the JVM, such as there already exists a MBean with that given name above, then Camel will by default try to auto correct this by finding a new free name in the <code>JMXMBeanServer</code> by using a counter. As shown below the counter is now appended, so we have <code>myCamel-1</code> as part of the <code>ObjectName</code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.camel:context=localhost/myCamel-1,type=context,name=myCamel
 ]]></script>
-</div></div>
-
-<p>This is possible because Camel uses a naming pattern by default that supports the following tokens</p>
-<ul class="alternate"><li>#camelId# = the CamelContext id (eg the name)</li><li>#name# - same as #camelId#</li><li>#counter# - an incrementing counter</li><li>#bundleId# - the OSGi bundle id (only for OSGi environments)</li><li>#symbolicName# - the OSGi symbolic name (only for OSGi environments)</li><li>#version# - the OSGi bundle version (only for OSGi environments)</li></ul>
-
-
-<p>The default naming pattern is differentiated between OSGi and non-OSGi as follows:</p>
-<ul class="alternate"><li>non OSGI: #name#</li><li>OSGi: #bundleId#-#name#</li><li>OSGi <strong>Camel 2.13:</strong> #symbolicName#</li></ul>
-
-
-<p>However if there is a naming clash in the <code>JMXMBeanServer</code> then Camel will automatic fallback and use the #counter# in the pattern to remedy this. And thus the following patterns will then be used:</p>
-<ul class="alternate"><li>non OSGI: #name#-#counter#</li><li>OSGi: #bundleId#-#name#-#counter#</li><li>OSGi <strong>Camel 2.13:</strong> #symbolicName#-#counter#</li></ul>
-
-
-<p>If you set an explicit naming pattern, then that pattern is always used, and the default patterns above is <strong>not</strong> used.<br clear="none">
-This allows us to have full control, very easily, of the naming for both the <code>CamelContext</code> id in the <a shape="rect" href="registry.html">Registry</a> as well the JMX MBeans in the <code>JMXMBeanRegistry</code>.</p>
-
-<p>So if we want to explicit name both the <code>CamelContext</code> and to use fixed MBean names, that do not change (eg has no counters), then we can use the new <code>managementNamePattern</code> attribute:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;myCamel&quot; managementNamePattern=&quot;#name#&quot;&gt;
+</div></div><p>This is possible because Camel uses a naming pattern by default that supports the following tokens</p><ul class="alternate"><li>#camelId# = the CamelContext id (eg the name)</li><li>#name# - same as #camelId#</li><li>#counter# - an incrementing counter</li><li>#bundleId# - the OSGi bundle id (only for OSGi environments)</li><li>#symbolicName# - the OSGi symbolic name (only for OSGi environments)</li><li>#version# - the OSGi bundle version (only for OSGi environments)</li></ul><p>The default naming pattern is differentiated between OSGi and non-OSGi as follows:</p><ul class="alternate"><li>non OSGI: #name#</li><li>OSGi: #bundleId#-#name#</li><li>OSGi <strong>Camel 2.13:</strong> #symbolicName#</li></ul><p>However if there is a naming clash in the <code>JMXMBeanServer</code> then Camel will automatic fallback and use the #counter# in the pattern to remedy this. And thus the following patterns will then be used:</p><ul class="alternate"><li>non OSGI: #name#-#counter#</li
 ><li>OSGi: #bundleId#-#name#-#counter#</li><li>OSGi <strong>Camel 2.13:</strong> #symbolicName#-#counter#</li></ul><p>If you set an explicit naming pattern, then that pattern is always used, and the default patterns above is <strong>not</strong> used.<br clear="none"> This allows us to have full control, very easily, of the naming for both the <code>CamelContext</code> id in the <a shape="rect" href="registry.html">Registry</a> as well the JMX MBeans in the <code>JMXMBeanRegistry</code>.</p><p>So if we want to explicit name both the <code>CamelContext</code> and to use fixed MBean names, that do not change (eg has no counters), then we can use the new <code>managementNamePattern</code> attribute:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;myCamel&quot; managementNamePattern=&quot;#name#&quot;&gt;
 ]]></script>
-</div></div>
-<p>Then the MBean names will always be as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.camel:context=localhost/myCamel,type=context,name=myCamel

[... 139 lines stripped ...]