package com.loggingbox.servlet; //package com.log.servlet; // //import java.io.IOException; //import java.nio.ByteBuffer; //import java.nio.CharBuffer; //import java.util.List; //import java.util.Timer; //import java.util.TimerTask; //import java.util.concurrent.TimeUnit; // //import javax.servlet.http.HttpServletRequest; // //import org.apache.catalina.websocket.MessageInbound; //import org.apache.catalina.websocket.StreamInbound; //import org.apache.catalina.websocket.WebSocketServlet; //import org.apache.catalina.websocket.WsOutbound; //import org.codehaus.jackson.JsonGenerationException; //import org.codehaus.jackson.map.JsonMappingException; //import org.codehaus.jackson.map.ObjectMapper; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.stereotype.Component; // //import com.log.core.ApplicationRegistration; //import com.log.core.RegistrationContainer; //import com.log.model.Application; //import com.log.model.ApplicationObject; //import com.log.model.KpiDefinition; //import com.log.model.Log; //import com.log.storage.ApplicationAccessor; //import com.log.storage.LogAccessor; // //@Component //public class LogGetServlet extends WebSocketServlet { // // private static final long serialVersionUID = 5518097059496417942L; // // private final ObjectMapper objectMapper = new ObjectMapper(); // // @Autowired // RegistrationContainer registrationContainer; // // @Autowired // LogAccessor logAccessor; // @Autowired // ApplicationAccessor applicationAccessor; // // private class LogWebWebSocket extends MessageInbound { // // private ApplicationRegistration applicationRegistration; // private final String applicationId; // // private WsOutbound outbound; // // public LogWebWebSocket(final String applicationId) { // this.applicationId = applicationId; // } // // @Override // public void onOpen(WsOutbound outbound) { // this.outbound = outbound; // //this.connection.setMaxIdleTime((int) TimeUnit.HOURS.toMillis(10)); // // // Application application = new Application(); // application.setId(applicationId); // this.applicationRegistration = new ApplicationRegistration( // application); // // registrationContainer.register(applicationRegistration); // // for (Application otherAppli : applicationAccessor.getApplications()) { // sendMessage(otherAppli); // } // // List<KpiDefinition> kpis = applicationAccessor // .getKpiDefinitions(applicationId); // for (KpiDefinition kpiDefinition : kpis) { // sendMessage(kpiDefinition); // } // List<Log> oldLogs = logAccessor.getLogs(application.getId(), null, // 1000); // for (int i = oldLogs.size() - 1; i >= 0; i--) { // Log log = oldLogs.get(i); // sendMessage(log); // // } // Timer timer = new Timer(); // timer.schedule(new TimerTask() { // // @Override // public void run() { // getMessages(); // // } // }, 0); // } // // void getMessages() { // while (outbound != null && applicationRegistration != null) { // ApplicationObject object = applicationRegistration // .getNextObject(); // if (object != null) { // sendMessage(object); // } // } // } // // @Override // protected void onClose(int status) { // this.outbound = null; // if (applicationRegistration != null) { // registrationContainer.unregister(applicationRegistration); // applicationRegistration = null; // } // } // // // private void sendMessage(ApplicationObject object) { // try { // outbound.writeTextMessage(CharBuffer.wrap(objectMapper // .writeValueAsString(object).toCharArray())); // } catch (JsonGenerationException e) { // e.printStackTrace(); // } catch (JsonMappingException e) { // } catch (IOException e) { // System.err.println(e); // outbound = null; // } // } // // @Override // protected void onBinaryMessage(ByteBuffer arg0) throws IOException { // // } // // @Override // protected void onTextMessage(CharBuffer arg0) throws IOException { // // } // // @Override // public int getReadTimeout() { // return (int) TimeUnit.HOURS.toMillis(10); // } // // } // // @Override // protected StreamInbound createWebSocketInbound(String arg0, // HttpServletRequest arg1) { // return new LogWebWebSocket(arg1.getParameter("appId")); // } // //}