This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 9709aba  Regen
9709aba is described below

commit 9709aba430c03c0d37cf1eff5e1e8eb32a8e4fb1
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Mar 25 07:55:23 2019 +0100

    Regen
---
 .../modules/ROOT/pages/jmx-component.adoc          | 980 ---------------------
 1 file changed, 980 deletions(-)

diff --git a/docs/components/modules/ROOT/pages/jmx-component.adoc 
b/docs/components/modules/ROOT/pages/jmx-component.adoc
index 97aca1b..7b375a8 100644
--- a/docs/components/modules/ROOT/pages/jmx-component.adoc
+++ b/docs/components/modules/ROOT/pages/jmx-component.adoc
@@ -112,983 +112,3 @@ The component supports 2 options, which are listed below.
 // spring-boot-auto-configure options: END
 
 
-=== Activating JMX in Camel
-
-[NOTE]
-====
-*Spring JAR dependency, required for Camel 2.8 or older*
-
-`spring-context.jar`, `spring-aop.jar`, `spring-beans.jar`, and
-`spring-core.jar` 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 `WARN` level using
-logger name `org.apache.camel.impl.DefaultCamelContext`.
-
-From *Camel 2.9* onwards, the Spring JARs are *no* longer required to
-run Camel in JMX mode.
-====
-
-==== Using JMX to manage Apache Camel
-
-By default, JMX instrumentation agent is enabled in Camel, which means
-that Camel runtime creates and registers MBean management objects with a
-`MBeanServer` instance in the VM. This allows Camel users to instantly
-obtain insights into how Camel routes perform down to the individual
-processor level.
-
-The supported types of management objects are
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedEndpoint.html[endpoint],
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedRoute.html[route],
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedService.html[service],
-and
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/mbean/ManagedProcessor.html[processor].
-Some of these management objects also expose lifecycle operations in
-addition to performance counter attributes.
-
-The
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/DefaultManagementObjectNameStrategy.html[`DefaultManagementObjectNameStrategy`]
-is the default naming strategy which builds object names used for MBean
-registration. By default, `org.apache.camel` 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:
-
-[source]
-----
--Dorg.apache.camel.jmx.mbeanObjectDomainName=your.domain.name
-----
-
-Or, by adding a `jmxAgent` element inside the camelContext element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" mbeanObjectDomainName="your.domain.name"/>
-    ...
-</camelContext>
-----
-
-Spring configuration always takes precedence over system properties when
-they both present. It is true for all JMX related configurations.
-
-==== Disabling JMX instrumentation agent in Camel
-
-You can disable JMX instrumentation agent by setting the Java VM system
-property as follow:
-
-[source]
-----
--Dorg.apache.camel.jmx.disabled=true
-----
-
-The property value is treated as `boolean`.
-
-Or, by adding a `jmxAgent` element inside the `camelContext` element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" disabled="true"/>
-    ...
-</camelContext>
-----
-
-Or in *Camel 2.1* its a bit easier (not having to use JVM system
-property) if using pure Java as you can disable it as follows:
-
-[source,java]
-----
-CamelContext camel = new DefaultCamelContext();
-camel.disableJMX();
-----
-
-==== Locating a MBeanServer in the Java VM
-
-Each CamelContext can have an instance of
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/InstrumentationAgent.html[`InstrumentationAgent`]
-wrapped inside the
-http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/management/InstrumentationLifecycleStrategy.html[`InstrumentationLifecycleStrategy`].
-The InstrumentationAgent is the object that interfaces with a
-http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServer.html[`MBeanServer`]
-to register / unregister Camel MBeans. Multiple
-CamelContexts / InstrumentationAgents can / should share a `MBeanServer`. By
-default, Camel runtime picks the first `MBeanServer` returned by
-http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServerFactory.html#findMBeanServer(java.lang.String)[MBeanServerFactory.findMBeanServer
-method] that matches the default domain name of `org.apache.camel`.
-
-You may want to change the default domain name to match the
-`MBeanServer` instance that you are already using in your application.
-Especially, if your `MBeanServer` is attached to a JMX connector server,
-you will not need to create a connector server in Camel.
-
-You can configure the matching default domain name via system property.
-
-[source]
-----
--Dorg.apache.camel.jmx.mbeanServerDefaultDomain=<your.domain.name>
-----
-
-Or, by adding a `jmxAgent` element inside the camelContext element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" mbeanServerDefaultDomain="your.domain.name"/>
-    ...
-</camelContext>
-----
-
-If no matching `MBeanServer` can be found, a new one is created and the
-new `MBeanServer`'s default domain name is set according to the default
-and configuration as mentioned above.
-
-It is also possible to use the
-http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()[`PlatformMBeanServer`]
-when it is desirable to manage JVM MBeans by setting the system
-property. The `MBeanServer` default domain name configuration is ignored
-as it is not applicable.
-
-[CAUTION]
-Starting in next release (1.5), the default
-value of `usePlatformMBeanServer` will be changed to `true`. You can set
-the property to `false` to disable using platform `MBeanServer`.
-
-[source]
-----
--Dorg.apache.camel.jmx.usePlatformMBeanServer=True
-----
-
-Or, by adding a `jmxAgent` element inside the `camelContext` element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" usePlatformMBeanServer="true"/>
-    ...
-</camelContext>
-----
-
-==== Creating JMX RMI Connector Server
-
-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 `MBeanServer`
-used by Camel is attached to that connector server.
-
-[source]
-----
--Dorg.apache.camel.jmx.createRmiConnector=True
-----
-
-Or, by adding a `jmxAgent` element inside the `camelContext` element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" createConnector="true"/>
-    ...
-</camelContext>
-----
-
-==== JMX Service URL
-
-The default JMX Service URL has the format:
-
-[source]
-----
-service:jmx:rmi:///jndi/rmi://localhost:<registryPort>/<serviceUrlPath>
-----
-
-`registryPort` is the RMI registry port and the default value is
-`1099`.
-
-You can set the RMI registry port by system property.
-
-[source]
-----
--Dorg.apache.camel.jmx.rmiConnector.registryPort=<port number>
-----
-
-Or, by adding a `jmxAgent` element inside the `camelContext` element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" createConnector="true" registryPort="port number"/>
-    ...
-</camelContext>
-----
-
-`serviceUrlPath` is the path name in the URL and the default value is
-`/jmxrmi/camel`.
-
-You can set the service URL path by system property.
-
-[source]
-----
--Dorg.apache.camel.jmx.serviceUrlPath=<path>
-----
-
-[TIP]
-====
-*Setting ManagementAgent settings in Java*
-
-In *Camel 2.4* onwards you can also set the various options on the
-`ManagementAgent`:
-
-[source,java]
-----
-context.getManagementStrategy().getManagementAgent().setServiceUrlPath("/foo/bar");
-context.getManagementStrategy().getManagementAgent().setRegistryPort(2113);
-context.getManagementStrategy().getManagementAgent().setCreateConnector(true);
-----
-
-====
-
-Or, by adding a `jmxAgent` element inside the camelContext element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" createConnector="true" serviceUrlPath="path"/>
-    ...
-</camelContext>
-----
-
-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.
-
-[source]
-----
--Dorg.apache.camel.jmx.rmiConnector.connectorPort=<port number>
-----
-
-Or, by adding a `jmxAgent` element inside the `camelContext` element in
-Spring configuration:
-
-[source,xml]
-----
-<camelContext id="camel" 
xmlns="http://activemq.apache.org/camel/schema/spring";>
-  <jmxAgent id="agent" createConnector="true" connectorPort="port number"/>
-    ...
-</camelContext>
-----
-
-When the connector port option is set, the JMX service URL will become:
-
-[source]
-----
-service:jmx:rmi://localhost:<connectorPort>/jndi/rmi://localhost:<registryPort>/<serviceUrlPath>
-----
-
-==== The System Properties for Camel JMX support
-
-[width="100%",cols="1m,1,3",options="header",]
-|=======================================================================
-|Property Name |value |Description
-|org.apache.camel.jmx |`true` or `false` |if is `true`, it will enable jmx
-feature in Camel
-|=======================================================================
-
-See more system properties in this section below: _jmxAgent Properties
-Reference_.
-
-==== How to use authentication with JMX
-
-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:
-
-* http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html
-* http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
-
-==== JMX inside an Application Server
-
-===== Tomcat 6
-
-See http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html[this page]
-for details about enabling JMX in Tomcat.
-
-In short, modify your catalina.sh (or catalina.bat in Windows) file to
-set the following options...
-
-[source]
-----
- 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
-----
-
-===== JBoss AS 4
-
-By default JBoss creates its own `MBeanServer`. To allow Camel to expose
-to the same server follow these steps:
-
-. Tell Camel to use the Platform `MBeanServer` (This defaults to true
-in Camel 1.5)
-
-[source,xml]
-----
-<camel:camelContext id="camelContext">
-  <camel:jmxAgent id="jmxAgent" mbeanObjectDomainName="org.yourname" 
usePlatformMBeanServer="true"  />
-</camel:camelContext>
-----
-
-. Alter your JBoss instance to use the Platform `MBeanServer`. +
-Add the following property to your `JAVA_OPTS` by editing `run.sh` or
-`run.conf` `-Djboss.platform.mbeanserver`. See
-http://wiki.jboss.org/wiki/JBossMBeansInJConsole
-
-===== WebSphere
-
-Alter the `mbeanServerDefaultDomain` to be `WebSphere`:
-
-[source,xml]
-----
-<camel:jmxAgent id="agent" createConnector="true" 
mbeanObjectDomainName="org.yourname" usePlatformMBeanServer="false" 
mbeanServerDefaultDomain="WebSphere"/>
-----
-
-===== Oracle OC4j
-
-The Oracle OC4J J2EE application server will not allow Camel to access
-the platform `MBeanServer`. You can identify this in the log as Camel
-will log a `WARNING`.
-
-[source]
-----
-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)
-----
-
-To resolve this you should disable the JMX agent in Camel, see section
-_Disabling JMX instrumentation agent in Camel_.
-
-==== Advanced JMX Configuration
-
-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.
-
-==== Example:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <jmxAgent id="agent" createConnector="true" registryPort="2000" 
mbeanServerDefaultDomain="org.apache.camel.test"/>
-    <route>
-      <from uri="seda:start"/>
-      <to uri="mock:result"/>
-    </route>
-</camelContext>
-----
-
-If you wish to change the Java 5 JMX settings you can use various
-http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#properties[JMX
-system properties]
-
-For example you can enable remote JMX connections to the Sun JMX
-connector, via setting the following environment variable (using *set*
-or *export* 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.
-
-[source]
-----
-SUNJMX=-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=1616 \
--Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false
-----
-
-(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.)
-
-==== `jmxAgent` Properties Reference
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Spring property |System property |Default Value |Description
-|`id` |  |  |The JMX agent name, and it is not optional
-
-|`usePlatformMBeanServer` |`org.apache.camel.jmx.usePlatformMBeanServer`
-|`false`, `true` - Release 1.5 or later |If `true`, it will use the
-`MBeanServer` from the JVM
-
-|`mbeanServerDefaultDomain`
-|`org.apache.camel.jmx.mbeanServerDefaultDomain` |`org.apache.camel`
-|The default JMX domain of the `MBeanServer`
-
-|`mbeanObjectDomainName` |`org.apache.camel.jmx.mbeanObjectDomainName`
-|`org.apache.camel` |The JMX domain that all object names will use
-
-|`createConnector` |`org.apache.camel.jmx.createRmiConnect` |`false` |If
-we should create a JMX connector (to allow remote management) for the
-`MBeanServer`
-
-|`registryPort` |`org.apache.camel.jmx.rmiConnector.registryPort`
-|`1099` |The port that the JMX RMI registry will use
-
-|`connectorPort` |`org.apache.camel.jmx.rmiConnector.connectorPort` |-1
-(dynamic) |The port that the JMX RMI server will use
-
-|`serviceUrlPath` |`org.apache.camel.jmx.serviceUrlPath`
-|`/jmxrmi/camel` |The path that JMX connector will be registered under
-
-|`onlyRegisterProcessorWithCustomId`
-|`org.apache.camel.jmx.onlyRegisterProcessorWithCustomId` |`false`
-|*Camel 2.0:* 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.
-
-|`statisticsLevel` |  |`All / Default` |*Camel 2.1:* Configures the
-level for whether performance statistics is enabled for the MBean. See
-section _Configuring level of granularity for performance statistics_
-for more details. From *Camel 2.16* onwards the All option is renamed to
-Default, and a new Extended option has been introduced which allows
-gathered additional runtime JMX metrics.
-
-|`includeHostName` |`org.apache.camel.jmx.includeHostName` |  |*Camel
-2.13:* Whether to include the hostname in the MBean naming. From Camel
-2.13 onwards this is default `false`, where as in older releases its
-default `true`. You can use this option to restore old behavior if
-really needed.
-
-|`useHostIPAddress` |`org.apache.camel.jmx.useHostIPAddress` |`false`
-|*Camel 2.16:* Whether to use hostname or IP Address in the service url
-when creating the remote connector. By default the hostname will be
-used.
-
-|`loadStatisticsEnabled` |`org.apache.camel.jmx.loadStatisticsEnabled`
-|`false` |**Camel 2.16:**Whether load statistics is enabled (gathers
-load statistics using a background thread per CamelContext).
-
-|`endpointRuntimeStatisticsEnabled`
-|`org.apache.camel.jmx.endpointRuntimeStatisticsEnabled` |`true` |*Camel
-2.16:* Whether endpoint runtime statistics is enabled (gathers runtime
-usage of each incoming and outgoing endpoints).
-|=======================================================================
-
-
-==== Configuring whether to register MBeans always, for new routes or just by 
default
-
-
-*Available as of Camel 2.7*
-
-Camel now offers 2 settings to control whether or not to register mbeans
-
-[width="100%",cols="34%,33%,33%",options="header",]
-|=======================================================================
-|Option |Default |Description
-|`registerAlways` |`false` |If enabled then MBeans is always registered.
-
-|`registerNewRoutes` |`true` |If enabled then adding new routes after
-CamelContext has been started will also register
-MBeans from that given route.
-|=======================================================================
-
-By default Camel registers MBeans for all the routes configured when its
-starting. The `registerNewRoutes` 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.
-
-Be a bit caution to use the `registerAlways` option when using dynamic
-EIP patterns such as the
-Recipient List 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.
-
-=== Monitoring Camel using JMX
-
-==== Using JConsole to monitor Camel
-
-The `CamelContext` should appear in the list of local connections, if
-you are running JConsole on the same host as Camel.
-
-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`.
-
-Using the Apache Camel with JConsole:
-
-image:camel-jmx.png[image]
-
-==== Which endpoints are registered
-
-In *Camel 2.1* onwards *only* `singleton` 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 Recipient List EIP or from a
-`ProducerTemplate` that sends a lot of messages.
-
-==== Which processors are registered
-
-See this FAQ.
-
-==== How to use the JMX NotificationListener to listen the camel events?
-
-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.
-
-From *Camel 2.4* you can use a custom JMX NotificationListener to listen
-the camel events.
-
-First you need to set up a `JmxNotificationEventNotifier` before you start
-the CamelContext:
-
-[source,java]
-----
-// Set up the JmxNotificationEventNotifier
-notifier = new JmxNotificationEventNotifier();
-notifier.setSource("MyCamel");
-notifier.setIgnoreCamelContextEvents(true);
-notifier.setIgnoreRouteEvents(true);
-notifier.setIgnoreServiceEvents(true);
-
-CamelContext context = new DefaultCamelContext(createRegistry());
-context.getManagementStrategy().addEventNotifier(notifier);
-----
-
-Second you can register your listener for listening the event:
-
-[source,java]
-----
-// register the NotificationListener
-ObjectName on = 
ObjectName.getInstance("org.apache.camel:context=camel-1,type=eventnotifiers,name=JmxEventNotifier");
-MyNotificationListener listener = new MyNotificationListener();
-context.getManagementStrategy().getManagementAgent().getMBeanServer().addNotificationListener(on,
-    listener,
-    new NotificationFilter() {
-        private static final long serialVersionUID = 1L;
-
-        public boolean isNotificationEnabled(Notification notification) {
-            return notification.getSource().equals("MyCamel");
-        }
-    }, null);
-----
-
-==== Using the Tracer MBean to get fine grained tracing
-
-Additionally to the coarse grained notifications above *Camel 2.9.0*
-support JMX Notification for fine grained trace events.
-
-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.
-
-This can either be done when configuring the context or on the context /
-route MBeans.
-
-As a second step you have to set the `jmxTraceNotifications` attribute
-to `true` on the tracer. This can again be done when configuring the
-context or at runtime on the tracer MBean.
-
-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:
-
-image:jconsole_trace_notifications.png[image]
-
-=== Using JMX for your own Camel Code
-
-==== Registering your own Managed Endpoints
-
-*Available as of Camel 2.0* +
-You can decorate your own endpoints with Spring managed annotations
-`@ManagedResource` to allow to register them in the Camel `MBeanServer`
-and thus access your custom MBeans using JMX.
-
-[NOTE]
-====
-In *Camel 2.1* we have changed this to apply other than just
-endpoints but then you need to implement the interface
-`org.apache.camel.spi.ManagementAware` as well. More about this later.
-====
-
-For example we have the following custom endpoint where we define some
-options to be managed:
-
-[source,java]
-----
-@ManagedResource(description = "Our custom managed endpoint")
-public class CustomEndpoint extends MockEndpoint implements 
ManagementAware<CustomEndpoint> {
-
-    public CustomEndpoint(final String endpointUri, final Component component) 
{
-        super(endpointUri, component);
-    }
-
-    public Object getManagedObject(CustomEndpoint object) {
-        return this;
-    }
-
-    public boolean isSingleton() {
-        return true;
-    }
-
-    protected String createEndpointUri() {
-        return "custom";
-    }
-
-    @ManagedAttribute
-    public String getFoo() {
-        return "bar";
-    }
-
-    @ManagedAttribute
-    public String getEndpointUri() {
-        return super.getEndpointUri();
-    }
-}
-----
-
-Notice from *Camel 2.9* onwards its encouraged to use the
-`@ManagedResource`, `@ManagedAttribute`, and `@ManagedOperation` from
-the `org.apache.camel.api.management` package. This allows your custom
-code to not depend on Spring JARs.
-
-==== Programming your own Managed Services
-
-*Available as of Camel 2.1*
-
-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
-`org.apache.camel.spi.ManagementAware` and return the managed object
-Camel should use.
-
-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 `this` in the
-`getManagedObject` from the `ManagementAware` interface. For an example
-see the code example above with the `CustomEndpoint`.
-
-Now in *Camel 2.1* you can do this for all the objects that Camel
-registers for management which are quite a bunch, but not all.
-
-For services which do not implement this `ManagementAware` interface
-then Camel will fallback to using default wrappers as defined in the
-table below:
-
-[width="100%",cols="1m,2m",options="header",]
-|=================================
-|Type |MBean wrapper
-|CamelContext |ManagedCamelContext
-|Component |ManagedComponent
-|Endpoint |ManagedEndpoint
-|Consumer |ManagedConsumer
-|Producer |ManagedProducer
-|Route |ManagedRoute
-|Processor |ManagedProcessor
-|Tracer |ManagedTracer
-|Service |ManagedService
-|=================================
-
-In addition to that there are some extended wrappers for specialized
-types such as:
-
-[width="100%",cols="1m,2m",options="header",]
-|===================================================
-|Type |MBean wrapper
-|ScheduledPollConsumer |ManagedScheduledPollConsumer
-|BrowsableEndpoint |ManagedBrowseableEndpoint
-|Throttler |ManagedThrottler
-|Delayer |ManagedDelayer
-|SendProcessor |ManagedSendProcessor
-|===================================================
-
-And in the future we will add additional wrappers for more EIP patterns.
-
-==== ManagementObjectNameStrategy
-
-*Available as of Camel 2.1*
-
-Camel provides a pluggable API for naming strategy by
-`org.apache.camel.spi.ManagementObjectNameStrategy`. A default
-implementation is used to compute the MBean names that all MBeans are
-registered with.
-
-==== Management naming pattern
-
-*Available as of Camel 2.10*
-
-From *Camel 2.10* onwards we made it easier to configure a naming
-pattern for the MBeans. The pattern is used as part of the `ObjectName`
-as they key after the domain name.
-
-By default Camel will use MBean names for the `ManagedCamelContextMBean`
-as follows:
-
-[source]
-----
-org.apache.camel:context=localhost/camel-1,type=context,name=camel-1
-----
-
-And from *Camel 2.13* onwards the hostname is not included in the MBean
-names, so the above example would be as follows:
-
-[source]
-----
-org.apache.camel:context=camel-1,type=context,name=camel-1
-----
-
-If you configure a name on the `CamelContext` then that name is part of
-the `ObjectName` as well. For example if we have
-
-[source,xml]
-----
-<camelContext id="myCamel" ...>
-----
-
-Then the MBean names will be as follows:
-
-[source]
-----
-org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
-----
-
-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 `JMXMBeanServer` by
-using a counter. As shown below the counter is now appended, so we have
-`myCamel-1` as part of the `ObjectName`:
-
-[source]
-----
-org.apache.camel:context=localhost/myCamel-1,type=context,name=myCamel
-----
-
-This is possible because Camel uses a naming pattern by default that
-supports the following tokens:
-
-* `#camelId#` = the CamelContext id (eg the name)
-* `#name#` - same as `#camelId#`
-* `#counter#` - an incrementing counter
-`* #bundleId#` - the OSGi bundle id (only for OSGi environments)
-* `#symbolicName#` - the OSGi symbolic name (only for OSGi environments)
-* `#version#` - the OSGi bundle version (only for OSGi environments)
-
-The default naming pattern is differentiated between OSGi and non-OSGi
-as follows:
-
-* non OSGI: `#name#`
-* OSGi: `#bundleId#-#name#`
-* OSGi *Camel 2.13:* `#symbolicName#`
-
-However if there is a naming clash in the `JMXMBeanServer` then Camel
-will automatic fallback and use the `#counter#` in the pattern to remedy
-this. And thus the following patterns will then be used:
-
-* non OSGI: `#name#-#counter#`
-* OSGi: `#bundleId#-#name#-#counter#`
-* OSGi *Camel 2.13:* `#symbolicName#-#counter#`
-
-If you set an explicit naming pattern, then that pattern is always used,
-and the default patterns above is *not* used.
-
-This allows us to have full control, very easily, of the naming for both
-the `CamelContext` id in the Registry as well the
-JMX MBeans in the `JMXMBeanRegistry`.
-
-From *Camel 2.15* onwards you can configure the default management
-name pattern using a JVM system property, to configure this globally for
-the JVM. Notice that you can override this pattern by configure it
-explicit, as shown in the examples further below.
-
-Set a JVM system property to use a default management name pattern that
-prefixes the name with cool.
-
-[source,java]
-----
-System.setProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN, 
"cool-#name#");
-----
-
-So if we want to explicit name both the `CamelContext` and to use fixed
-MBean names, that do not change (eg has no counters), then we can use
-the new `managementNamePattern` attribute:
-
-[source,xml]
-----
-<camelContext id="myCamel" managementNamePattern="#name#">
-----
-
-Then the MBean names will always be as follows:
-
-[source]
-----
-org.apache.camel:context=localhost/myCamel,type=context,name=myCamel
-----
-
-In Java, you can configure the `managementNamePattern` as follows:
-
-[source,java]
-----
-context.getManagementNameStrategy().setNamePattern("#name#");
-----
-
-You can also use a different name in the `managementNamePattern` than
-the id, so for example we can do:
-
-[source,xml]
-----
-<camelContext id="myCamel" managementNamePattern="coolCamel">
-----
-
-You may want to do this in OSGi environments in case you do not want the
-OSGi bundle id as part of the MBean names. As the OSGi bundle id can
-change if you restart the server, or uninstall and install the same
-application. You can then do as follows to not use the OSGi bundle id as
-part of the name:
-
-[source,xml]
-----
-<camelContext id="myCamel" managementNamePattern="#name#">
-----
-
-Note this requires that `myCamel` is unique in the entire JVM. If you
-install a 2nd Camel application that has the same `CamelContext` id and
-`managementNamePattern` then Camel will fail upon starting, and report a
-MBean already exists exception.
-
-==== ManagementStrategy
-
-*Available as of Camel 2.1*
-
-Camel now provides a totally pluggable management strategy that allows
-you to be 100% in control of management. It is a rich interface with
-many methods for management. Not only for adding and removing managed
-objects from the `MBeanServer`, but also event notification is provided
-as well using the `org.apache.camel.spi.EventNotifier` API. What it
-does, for example, is make it easier to provide an adapter for other
-management products. In addition, it also allows you to provide more
-details and features that are provided out of the box at Apache.
-
-==== Configuring level of granularity for performance statistics
-
-*Available as of Camel 2.1*
-
-You can now set a pre set level whether performance statistics is
-enabled or not when Camel start ups. The levels are
-
-* `Extended` - As default but with additional statistics gathered during
-runtime such as fine grained level of usage of endpoints and more. This
-options requires Camel 2.16
-* `All` / `Default` - Camel will enable statistics for both routes and
-processors (fine grained). From *Camel 2.16* onwards the All option
-was renamed to Default.
-* `RoutesOnly` - Camel will only enable statistics for routes (coarse
-grained)
-* `Off` - Camel will not enable statistics for any.
-
-From *Camel 2.9* onwards the performance statistics also include average
-load statistics per CamelContext and Route MBeans. The statistics is
-average load based on the number of in-flight exchanges, on a per 1, 5,
-and 15 minute rate. This is similar to load statistics on Unix systems.
-*Camel 2.11* onwards allows you to explicit disable load performance
-statistics by setting `loadStatisticsEnabled=false` on the `<jmxAgent>`.
-Note that it will be off if the statics level is configured to off as
-well. From *Camel 2.13* onwards the load performance statistics is by
-default disabled. You can enable this by
-setting `loadStatisticsEnabled=true` on the `<jmxAgent>`.
-
-At runtime you can always use the management console (such as JConsole)
-to change on a given route or processor whether its statistics are
-enabled or not.
-
-[NOTE]
-====
-*What does statistics enabled mean?*
-
-Statistics enabled means that Camel will do fine grained performance
-statistics for that particular MBean. The statistics you can see are
-many, such as: number of exchanges completed/failed,
-last/total/mina/max/mean processing time, first/last failed time, etc.
-
-====
-
-Using Java DSL you set this level by:
-
-[source,java]
-----
-// only enable routes when Camel starts
-context.getManagementStrategy().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly);
-----
-
-And from Spring DSL you do:
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-    <jmxAgent id="agent" statisticsLevel="RoutesOnly"/>
- ...
-</camelContext>
-----
-
-=== Hiding sensitive information
-
-*Available as of Camel 2.12*
-
-By default, Camel enlists MBeans in JMX such as endpoints configured
-using URIs. In this configuration, there may be
-sensitive information such as passwords.
-
-This information can be hidden by enabling the `mask` option as shown
-below:
-
-Using Java DSL you turn this on by:
-
-[source,java]
-----
-  // only enable routes when Camel starts
-  context.getManagementStrategy().getManagementAgent().setMask(true);
-----
-
-And from Spring DSL you do:
-
-[source,xml]
-----
-    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-        <jmxAgent id="agent" mask="true"/>
-     ...
-    </camelContext>
-----
-
-This will mask URIs having options such as password and
-passphrase, and use `xxxxxx` as the replacement value.
-
-==== Declaring which JMX attributes and operations to mask
-
-On the `org.apache.camel.api.management.ManagedAttribute` and
-`org.apache.camel.api.management.ManagedOperation`, the attribute `mask`
-can be set to `true` to indicate that the result of this JMX
-attribute/operation should be masked (if enabled on JMX agent, see
-above).
-
-For example, on the default managed endpoints from camel-core
-`org.apache.camel.api.management.mbean.ManagedEndpointMBean`, we have
-declared that the `EndpointUri` JMX attribute is masked:
-
-[source,java]
-----
-@ManagedAttribute(description = "Endpoint URI", mask = true)
-String getEndpointUri();
-----
-
-=== See Also
-
-* Management Example
-* link:why-is-my-processor-not-showing-up-in-jconsole.html[Why is my
-processor not showing up in JConsole]

Reply via email to