001    package de.deepamehta.plugins.websockets;
002    
003    import de.deepamehta.plugins.websockets.service.WebSocketsService;
004    import de.deepamehta.core.osgi.PluginActivator;
005    
006    import java.util.logging.Level;
007    import java.util.logging.Logger;
008    
009    
010    
011    public class WebSocketsPlugin extends PluginActivator implements WebSocketsService {
012    
013        // ------------------------------------------------------------------------------------------------------- Constants
014    
015        private static final int WEBSOCKETS_PORT = 8081;
016    
017        // ---------------------------------------------------------------------------------------------- Instance Variables
018    
019        private WebSocketsServer server;
020    
021        private Logger logger = Logger.getLogger(getClass().getName());
022    
023        // -------------------------------------------------------------------------------------------------- Public Methods
024    
025        // *** WebSocketsService Implementation ***
026    
027        @Override
028        public void broadcast(String pluginUri, String message) {
029            server.broadcast(pluginUri, message);
030        }
031    
032        // *** Hook Implementations ***
033    
034        @Override
035        public void init() {
036            try {
037                logger.info("##### Starting Jetty WebSocket server #####");
038                server = new WebSocketsServer(WEBSOCKETS_PORT, dms);
039                server.start();
040                // ### server.join();
041                logger.info("### Jetty WebSocket server started successfully");
042            } catch (Exception e) {
043                logger.log(Level.SEVERE, "Starting Jetty WebSocket server failed");
044            }
045        }
046    
047        @Override
048        public void shutdown() {
049            try {
050                logger.info("##### Stopping Jetty WebSocket server #####");
051                server.stop();
052            } catch (Exception e) {
053                logger.log(Level.SEVERE, "Stopping Jetty WebSocket server failed");
054            }
055        }
056    }