package es.ejie.frmk.control.arranque;

import java.util.Date;

import javax.management.Notification;
import javax.management.NotificationListener;
import javax.management.ObjectName;

import es.ejie.frmk.Q70Factoria;
import es.ejie.frmk.Q70FactoriaConstantes;
import es.ejie.frmk.infraestructura.logs.base.Q70LogInterno;
import es.ejie.frmk.infraestructura.traza.Q70TraceLevel;
import es.ejie.frmk.infraestructura.traza.Q70TrazaInterface;

public class Q70ListenerMBean implements NotificationListener {

	public void handleNotification(Notification notificacion, Object arg1) {
		String strMensaje = new Date(notificacion.getTimeStamp()) + " " + notificacion.getType()
				+ " " + notificacion.getMessage() + ", Notificacion:"
				+ notificacion.getSequenceNumber() + " de " + notificacion.getSource();
		
		String strNombreComponente = ((ObjectName) notificacion.getSource()).getKeyProperty("name");
		if (!Q70FactoriaConstantes.ID_GESTOR_TRAZA.equals(strNombreComponente) && 
			!Q70FactoriaConstantes.ID_GESTOR_LOGS.equals(strNombreComponente) ) {
			
			Q70TrazaInterface traza = Q70Factoria.getTraza();
			traza.trace(Q70GestorArranqueConfiguracionServidor.ID_COMPONENTE, Q70TraceLevel.DEBUG, strMensaje);
		} else {
			if (Q70LogInterno.isEnabled()) {
				Q70LogInterno.log("Q70ListenerMBean Notificacion:"+ strMensaje);
			}
		}
	}
}
