001 package org.granite.gravity.jetty8;
002
003 import javax.servlet.ServletContextEvent;
004 import javax.servlet.ServletContextListener;
005
006 public 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 }