///////////////////////////////////////////////////////////////
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
///////////////////////////////////////////////////////////////

[[library-jmx, JMX Library]]
= JMX =

[devstatus]
--------------
source=libraries/jmx/dev-status.xml
--------------

The JMX library provides a service that exposes a Zest™ app in
JMX automatically, giving you an opportunity to inspect the app much as
you would with the <<tools-envisage>> tool.

include::../../build/docs/buildinfo/artifact.txt[]

== Usage ==

[snippet,java]
----
source=libraries/jmx/src/test/java/org/apache/zest/library/jmx/JMXTest.java
tag=assembly
----

Note that you need to run it with -Dcom.sun.management.jmxremote so that the
JVM starts the MBeanServer.

image:library-jmx.png[]
