Например, у меня есть некоторое хранилище, которое я хочу управлять через jmx. Я хочу иметь контроль над всеми членами хранилища вместе и отдельно. Интерфейс хранилища может выглядеть так:
public interface StorageMBean {
int getSize();
int disableAll();
// ??????
List<EntryMBean> getAllEntries();
}
И интерфейс записи с одним хранилищем выглядит следующим образом:
public interface EntryMBean {
String getName();
void disable();
}
Поэтому я хочу иметь возможность запускать jconsole и отключать все записи сразу или один за другим. Теперь я вижу только один способ: зарегистрируйте GroupStorageMBean, где я помещаю групповые методы. И зарегистрируйте много отдельных EntryMBeans. И теперь мне нужно синхронизировать все эти объекты. Было бы проще, если бы я мог зарегистрировать StorageMBean, и он обеспечил бы вложенные MBeans как атрибут или что-то вроде этого. Таким образом, с помощью такого метода я мог бы получить все записи и работать с ними индивидуально. Надеюсь, мои объяснения не были очень запутанными. Можно ли это сделать?
Возможно, для void disableByIndex(int i)
может быть использован void disableByIndex(int i)
или void disableByName(String name)
который может отключить отдельный экземпляр. Я не уверен, что создание вложенных MBeans возможно, но в любом случае я считаю это излишне сложным решением, и почти уверен, что JConsole не справляется с ними.
Надеюсь это поможет.