]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java
Make WebSocket activation configurable.
[lgpl/argeo-commons.git] / org.argeo.ext.equinox.jetty / src / org / argeo / equinox / jetty / WebSocketJettyCustomizer.java
diff --git a/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java b/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java
deleted file mode 100644 (file)
index f582a43..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.argeo.equinox.jetty;
-
-import java.util.Dictionary;
-
-import javax.servlet.ServletException;
-
-import org.eclipse.equinox.http.jetty.JettyCustomizer;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.websocket.jsr356.server.ServerContainer;
-import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-
-public class WebSocketJettyCustomizer extends JettyCustomizer {
-       private BundleContext bc = FrameworkUtil.getBundle(WebSocketJettyCustomizer.class).getBundleContext();
-
-       @Override
-       public Object customizeContext(Object context, Dictionary<String, ?> settings) {
-               ServletContextHandler servletContextHandler = (ServletContextHandler) context;
-               new WebSocketInit(servletContextHandler).start();
-               return super.customizeContext(context, settings);
-       }
-
-       /** Configure websocket container asynchronously as it may take some time */
-       private class WebSocketInit extends Thread {
-               ServletContextHandler servletContextHandler;
-
-               public WebSocketInit(ServletContextHandler servletContextHandler) {
-                       super("WebSocket Init");
-                       this.servletContextHandler = servletContextHandler;
-               }
-
-               @Override
-               public void run() {
-                       ServerContainer serverContainer;
-                       try {
-                               serverContainer = WebSocketServerContainerInitializer.configureContext(servletContextHandler);
-//                             serverContainer.addSessionListener(new WebSocketSessionListener() {
-//
-//                                     @Override
-//                                     public void onSessionOpened(WebSocketSession session) {
-//                                             UpgradeRequest upgradeRequest = session.getUpgradeRequest();
-//                                             UpgradeResponse upgradeResponse = session.getUpgradeResponse();
-//                                             List<String> acceptHeader = upgradeResponse.getHeaders("Sec-WebSocket-Accept");
-//                                             if (acceptHeader.contains("no"))
-//                                                     try {
-//                                                             upgradeResponse.sendForbidden("FORBIDDEN");
-//                                                             return;
-//                                                     } catch (IOException e) {
-//                                                             // TODO Auto-generated catch block
-//                                                             e.printStackTrace();
-//                                                     }
-//                                             List<HttpCookie> cookies = upgradeRequest.getCookies();
-//
-//                                             System.out.println("Upgrade request cookies : " + cookies);
-//                                             String httpSessionId = null;
-//                                             if (cookies != null) {
-//                                                     for (HttpCookie cookie : cookies) {
-//                                                             if (cookie.getName().equals("JSESSIONID")) {
-//                                                                     httpSessionId = cookie.getValue();
-//                                                             }
-//                                                     }
-//                                             }
-//
-//                                             if (httpSessionId == null) {
-//                                                     HttpSession httpSession = (HttpSession) upgradeRequest.getSession();
-//                                                     if (httpSession == null) {
-////                                                   session.disconnect();
-////                                                   return;
-//                                                     } else {
-//                                                             httpSessionId = httpSession.getId();
-//                                                             System.out.println("Upgrade request session ID : " + httpSession.getId());
-//                                                     }
-//                                             }
-//
-//                                             if (httpSessionId != null) {
-//                                                     int dotIdx = httpSessionId.lastIndexOf('.');
-//                                                     if (dotIdx > 0) {
-//                                                             httpSessionId = httpSessionId.substring(0, dotIdx);
-//                                                     }
-//                                             }
-//                                     }
-//
-//                                     @Override
-//                                     public void onSessionClosed(WebSocketSession session) {
-//                                     }
-//                             });
-                       } catch (ServletException e) {
-                               throw new IllegalStateException("Cannot configure web sockets", e);
-                       }
-                       bc.registerService(javax.websocket.server.ServerContainer.class, serverContainer, null);
-               }
-
-       }
-}