Skip to content

Commit dd75ce2

Browse files
committed
Allow unregistering mbeans.
Patch for JMX-17 by Mike Sassak.
1 parent 546139c commit dd75ce2

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/main/clojure/clojure/java/jmx.clj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,11 @@
272272
[mbean mbean-name]
273273
(.registerMBean *connection* mbean (as-object-name mbean-name)))
274274

275+
(defn unregister-mbean
276+
"Unregister mbean named mbean-name with the current *connection*."
277+
[mbean-name]
278+
(.unregisterMBean *connection* (as-object-name mbean-name)))
279+
275280
(defn mbean-names
276281
"Finds all MBeans matching a name on the current *connection*."
277282
[n]

src/test/clojure/clojure/java/test_jmx.clj

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
(ns clojure.java.test-jmx
1414
(:import javax.management.openmbean.CompositeDataSupport
15-
[javax.management MBeanAttributeInfo Attribute AttributeList]
15+
[javax.management MBeanAttributeInfo Attribute AttributeList InstanceNotFoundException]
1616
[java.util.logging LogManager Logger])
1717
(:use clojure.test)
1818
(:require [clojure.java [jmx :as jmx]]))
@@ -222,3 +222,11 @@
222222
(if primitive-int?
223223
(is (= "int" (@#'jmx/guess-attribute-typename 10)))
224224
(is (= "long" (@#'jmx/guess-attribute-typename 10)))))
225+
226+
(deftest test-unregister-mbean
227+
(let [mbean (jmx/create-bean (ref {:a-property 123}))
228+
mbean-name "clojure.java.test_jmx:name=UnregisterTest"]
229+
(jmx/register-mbean mbean mbean-name)
230+
(is (= 123 (jmx/read mbean-name :a-property)))
231+
(jmx/unregister-mbean mbean-name)
232+
(is (thrown? InstanceNotFoundException (jmx/read mbean-name :a-property)))))

0 commit comments

Comments
 (0)