UNPKG

node-jmx

Version:

Bridge library to communicate with Java applications through JMX.

74 lines (57 loc) 2.07 kB
var JavaJmx = require("./javaJmx"), util = require("util"), EventEmitter = require("events").EventEmitter; function Client(serviceOrHost, port, protocol, urlPath, username, password) { var self = this; function subscribeTo(obj) { obj.on("connect", function() { self.emit("connect"); }); obj.on("disconnect", function() { self.emit("disconnect"); }); obj.on("error", function(err) { self.emit("error", err); }); } EventEmitter.call(self); self.javaJmx = new JavaJmx(); subscribeTo(self.javaJmx); self.jmxServiceUrl = this.javaJmx.JmxServiceUrl(serviceOrHost, port, protocol, urlPath); self.username = username; self.password = password; } util.inherits(Client, EventEmitter); Client.prototype.connect = function() { this.javaJmx.setCredentials(this.username, this.password); this.javaJmx.connect(this.jmxServiceUrl); }; Client.prototype.disconnect = function() { this.javaJmx.disconnect(); }; // ISSUE-6 / EMB - Added getAttributes function Client.prototype.getAttributes = function(mbean, attributes, callback) { this.javaJmx.getAttributes(mbean, attributes, callback); }; Client.prototype.getAttribute = function(mbean, attribute, callback) { this.javaJmx.getAttribute(mbean, attribute, callback); }; Client.prototype.getDefaultDomain = function(callback) { this.javaJmx.getDefaultDomain(callback); }; Client.prototype.getDomains = function(callback) { this.javaJmx.getDomains(callback); }; Client.prototype.getMBeanCount = function(callback) { this.javaJmx.getMBeanCount(callback); }; Client.prototype.invoke = function(mbean, methodName, params, signatureOrCallback, callback) { this.javaJmx.invoke(mbean, methodName, params, signatureOrCallback, callback); }; Client.prototype.listMBeans = function(callback) { this.javaJmx.listMBeans(callback); }; Client.prototype.setAttribute = function(mbean, attribute, value, classNameOrCallback, callback) { this.javaJmx.setAttribute(mbean, attribute, value, classNameOrCallback, callback); }; module.exports = Client;