package org.rhq.embeddedagent.extension; import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.OperationStepHandler; import org.jboss.dmr.ModelNode; import org.jboss.logging.Logger; import org.jboss.msc.service.ServiceName; class AgentSubsystemStop implements OperationStepHandler { static final AgentSubsystemStop INSTANCE = new AgentSubsystemStop(); private final Logger log = Logger.getLogger(AgentSubsystemStop.class); private AgentSubsystemStop() { } @Override public void execute(OperationContext opContext, ModelNode model) throws OperationFailedException { try { ServiceName name = AgentService.SERVICE_NAME; AgentService service = (AgentService) opContext.getServiceRegistry(true).getRequiredService(name) .getValue(); log.info("Asked to stop the embedded agent"); service.stopAgent(); } catch (Exception e) { // the agent service isn't deployed, so obviously, the agent is already stopped. just keep going } opContext.completeStep(); return; } }