All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.cyclopsgroup.jmxterm.cmd.UnsubscribeCommand Maven / Gradle / Ivy

The newest version!
package org.cyclopsgroup.jmxterm.cmd;

import java.io.IOException;
import javax.management.JMException;
import javax.management.MBeanServerConnection;
import javax.management.MalformedObjectNameException;
import javax.management.NotificationListener;
import javax.management.ObjectName;
import org.cyclopsgroup.jcli.annotation.Cli;
import org.cyclopsgroup.jcli.annotation.Option;
import org.cyclopsgroup.jmxterm.Command;
import org.cyclopsgroup.jmxterm.Session;

/**
 * Command to subscribe to an MBean notification
 *
 * 

Remove the subscription of an already subscribed notification listener. Notifications will no * longer be sent to the session output. */ @Cli( name = "unsubscribe", description = "Unsubscribe the notifications of an earlier subscribed bean", note = "Syntax is \n unsubscribe ") public class UnsubscribeCommand extends Command { private String bean; private String domain; @Override public void execute() throws MalformedObjectNameException, IOException, JMException { Session session = getSession(); String beanName = BeanCommand.getBeanName(bean, domain, session); if (beanName == null) { throw new IllegalArgumentException( "Please specify MBean to invoke either using -b option or bean command"); } ObjectName name = new ObjectName(beanName); NotificationListener listener = SubscribeCommand.getListeners().remove(name); if (listener != null) { MBeanServerConnection con = session.getConnection().getServerConnection(); con.removeNotificationListener(name, listener); session.output.printMessage("Unsubscribed from " + name); } } /** @param bean Bean under which the operation is */ @Option(name = "b", longName = "bean", description = "MBean to invoke") public final void setBean(String bean) { this.bean = bean; } /** @param domain Domain under which is bean is */ @Option(name = "d", longName = "domain", description = "Domain of MBean to invoke") public final void setDomain(String domain) { this.domain = domain; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy