onddo/node-jmx

View on GitHub
lib/client.js

Summary

Maintainability
A
2 hrs
Test Coverage
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;