package br.usp.nds.remote.integracao; import java.net.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.persistence.EntityManager; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import br.usp.nds.remote.persistencia.Mensagem; import br.usp.nds.remote.persistencia.Persistencia; public class SCL implements ServletContextListener { private MqttClient client; public void contextDestroyed(ServletContextEvent arg0) { String hostName = ""; try { hostName = InetAddress.getLocalHost().getHostName(); } catch (Exception e) { } System.out.println("pegando hostname"); if ("ubuntu".equals(hostName)) { try { client.disconnect(); } catch (MqttException e) { e.printStackTrace(); } } System.out.println("terminou hostname"); } public void contextInitialized(ServletContextEvent arg0) { new Thread(new Runnable() { public void run() { GeradorEventos.getInstance().carregar(); GeradorTickets.getInstance().carregar(); } }).start();; String hostName = ""; try { hostName = InetAddress.getLocalHost().getHostName(); } catch (Exception e) { } if ("ubuntu".equals(hostName)) { try { client = new MqttClient("tcp://nds.lme.usp.br:1883", new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()), new MemoryPersistence()); client.setCallback(new MqttCallback() { public void messageArrived(String arg0, MqttMessage msg) { try { new ProcessadorMensagem() .registrar(new String(msg.getPayload())) .processar() .verificarEventos(); } catch (Exception e) { e.printStackTrace(); } } public void deliveryComplete(IMqttDeliveryToken arg0) { } public void connectionLost(Throwable arg0) { contextInitialized(null); } }); client.connect(); client.subscribe("remote"); } catch (MqttException e) { e.printStackTrace(); } } } }