Статьи

Представляем JMX Builder для Groovy

После того как я посетил Groovy / Grails Experience в феврале этого года, я понял, что шаблон сборки Groovy можно использовать для фасада многих других API (не только Swing). Итак, я решил создать еще одного компоновщика для JMX API, и вот оно!

http://code.google.com/p/groovy-jmx-builder/

Jmx Builder — это DSL, разработанный для работы с API Java Management Extension (JMX). Jmx Builder использует шаблон компоновщика для облегчения захвата и предоставления компонентов для контроля и управления во время выполнения с помощью сервера MBean. Groovy JMX Builder DSL скрывает сложность работы с JMX API , предоставляя набор естественных конструкций для украшения ваших компонентов. управление через JMX.

Характеристики

  • Возможность выставить для управления любой экземпляр класса, включая классы Java и Groovy.
  • Не нужно реализовывать определенный интерфейс управления .
  • Защитите разработчика от сложности JMX API
  • Использует знакомый шаблон Groovy Builder
  • Выставляет атрибут, конструкторы, операции, параметры

пример

В следующем примере показано, как можно использовать Groovy JMX Builder для предоставления обычного класса Java для управления на MBean Server.

Предположим, у вас есть класс Java , представляющий службу приветствия, и вы хотите предоставить его для управления :

public class Greeter {
private String name;
private String language = "en";

// ... code omitted

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

// ... code omitted

public String greet(){
String greet = (String) (langs.containsKey(getLanguage()) ?
langs.get(getLanguage()) : langs.get("en"));
return greet + " " + getName();
}

String greet(String person){
return langs.get(language) + " " + person
}
}

 

Теперь, чтобы представить экземпляр как компонент управления с помощью JmxBuilder ()

def greeter = new Greeter()
JmxBuilder jmx = new JmxBuilder()
def server = jmx.export(svr){
bean(greeter){
name("greeterDemo:service=greeting")
desc("This service prints a greeting on console")
attribute(name:"name", desc:"name of person to greet", writable:true)
attribute(name:"language", desc:"the language to use", editable:true)
operation(name:"greet", desc:"Sends greeting to user")
operation(name:"greet", desc:"Send greeting to user"){
parameter(type:"java.lang.String", name:"Person", desc:"The person to send greeting to")
}
}

bean(object:greeter, name:"greeterDemo:service=greeting2")
}

 

Использование JmxBuilder

Приведенный выше код демонстрирует два способа предоставления вашего компонента для управления. Первые из них является явным образом , когда все управляемые членами экземпляра компонента объявляется для управления.

  1. Узел export () является верхним внешним узлом и принимает в качестве параметра необязательный экземпляр сервера MBean.
  2. Фасоли () принимает экземпляр объекта подвергаясь в качестве параметра
  3. В этом контексте сборщик требует правильное имя JMX
  4. Каждая строка указывает либо атрибут, конструктор и операцию
  5. И конструктор, и операция поддерживают узлы параметров для описания параметров метода.

Второй способ — просто объявить бин с

bean(object:greeter, name:"greeterDemo:service=greeting2")

JmxBuilder () автоматически предоставляет все открытые члены bean-компонента для управления.

JConsole

Как только компонент представлен, вы можете увидеть, как информация, полученная с помощью JmxBuilder (), представлена ​​в MBeanServer с помощью клиента JMX, такого как JConsole.

JConsole

 

Скачать JmxBuilder

Итак, посетите веб-сайт проекта и загрузите двоичный файл по адресу http://code.google.com/p/groovy-jmx-builder/ . Сообщайте обо всех ошибках или проблемах на сайте проекта на вкладке « Проблемы ».

Еще не все…