/* Copyright 2009 SpringSource Inc. All Rights Reserved. */ package org.hyperic.hq.bizapp.server.mdb; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hyperic.hq.control.ControlEvent; import org.hyperic.hq.control.server.session.ServerRestartHandler; import org.hyperic.hq.control.shared.ControlConstants; import org.springframework.beans.factory.annotation.Autowired; /** * Bound to topic/eventsTopic */ public class ServerRestartedListener implements MessageListener { private ServerRestartHandler serverRestartHandler; private final Log log = LogFactory.getLog(ServerRestartedListener.class); @Autowired public ServerRestartedListener(ServerRestartHandler serverRestartHandler) { this.serverRestartHandler = serverRestartHandler; } public void onMessage(Message message) { if (message instanceof ObjectMessage) { try { final Object messageObject = ((ObjectMessage) message).getObject(); if (messageObject instanceof ControlEvent) { ControlEvent event = (ControlEvent) messageObject; if ((event.getAction().equals("restart") || event.getAction().equals("start")) && event.getStatus().equals(ControlConstants.STATUS_COMPLETED) && event.getResource().isServer()) { try { serverRestartHandler.serverRestarted(event.getResource()); } catch (Exception e) { log.error("Error processing possible server restart event", e); } } } } catch (JMSException e) { log.error("Error processing possible server restart event", e); } } } }