001package org.granite.gravity.jetty8; 002 003import javax.servlet.ServletContextEvent; 004import javax.servlet.ServletContextListener; 005 006public class EmbeddedJettyWebSocketServerListener implements ServletContextListener { 007 008 private EmbeddedJettyWebSocketServer server = null; 009 010 public void contextInitialized(ServletContextEvent sce) { 011 server = new EmbeddedJettyWebSocketServer(sce.getServletContext()); 012 013 String serverPort = sce.getServletContext().getInitParameter("embedded-jetty-websocket-server-port"); 014 if (serverPort != null) { 015 try { 016 server.setServerPort(Integer.parseInt(serverPort)); 017 } 018 catch (NumberFormatException e) { 019 throw new RuntimeException("Incorrect port " + serverPort + " defined for embedded-jetty-websocket-server-port", e); 020 } 021 } 022 023 try { 024 server.start(); 025 } 026 catch (Exception e) { 027 throw new RuntimeException("Could not start embedded Jetty websocket server", e); 028 } 029 } 030 031 public void contextDestroyed(ServletContextEvent sce) { 032 try { 033 if (server != null) 034 server.stop(); 035 } 036 catch (Exception e) { 037 throw new RuntimeException("Could not stop embedded Jetty websocket server", e); 038 } 039 } 040 041}