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}