Created
November 6, 2011 18:02
-
-
Save masayuki038/1343248 to your computer and use it in GitHub Desktop.
MBeanRegister using jmx4r
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'jmx4r' | |
import java.lang.management.ManagementFactory | |
import javax.management.ObjectName | |
class MBeanRegister < JMX::DynamicMBean | |
operation "regster mbean script" | |
parameter :string, "mbean class name" | |
parameter :string, "object name" | |
parameter :string, "strings of mbean script" | |
returns :void | |
def register(cname, oname, src) | |
begin | |
eval(src) | |
object_name = ObjectName.new oname | |
lib = cname.gsub(/([A-Z])/, '_\\1').downcase.sub(/^_/, '') | |
require lib | |
mbean = Object.const_get(cname).new | |
ManagementFactory.platform_mbean_server.register_mbean mbean, object_name | |
rescue => ex | |
puts ex | |
end | |
return nil | |
end | |
operation "unregister mbean" | |
parameter :string, "object name" | |
returns :void | |
def unregister(name) | |
object_name = ObjectName.new name | |
ManagementFactory.platform_mbean_server.unregister_mbean object_name | |
end | |
end | |
register = MBeanRegister.new | |
object_name = ObjectName.new "mbean_register:type=MBeanRegister" | |
ManagementFactory.platform_mbean_server.register_mbean register, object_name | |
gets |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment