]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/CmsJettyCustomizer.java
Prepare release.
[lgpl/argeo-commons.git] / org.argeo.ext.equinox.jetty / src / org / argeo / equinox / jetty / CmsJettyCustomizer.java
1 package org.argeo.equinox.jetty;
2
3 import java.util.Dictionary;
4
5 import javax.servlet.ServletContext;
6 import javax.websocket.DeploymentException;
7
8 import org.eclipse.equinox.http.jetty.JettyCustomizer;
9 import org.eclipse.jetty.servlet.ServletContextHandler;
10 import org.eclipse.jetty.websocket.jsr356.server.ServerContainer;
11 import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
12 import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.Configurator;
13 import org.osgi.framework.BundleContext;
14 import org.osgi.framework.FrameworkUtil;
15
16 /** Customises the Jetty HTTP server. */
17 public class CmsJettyCustomizer extends JettyCustomizer {
18 private BundleContext bc = FrameworkUtil.getBundle(CmsJettyCustomizer.class).getBundleContext();
19
20 @Override
21 public Object customizeContext(Object context, Dictionary<String, ?> settings) {
22 // WebSocket
23 Object webSocketEnabled = settings.get("websocket.enabled");
24 if (webSocketEnabled == null) {
25 webSocketEnabled = bc.getProperty("org.eclipse.equinox.http.jetty.websocket.enabled");
26 }
27 if (webSocketEnabled != null && webSocketEnabled.toString().equals("true")) {
28 ServletContextHandler servletContextHandler = (ServletContextHandler) context;
29 WebSocketServerContainerInitializer.configure(servletContextHandler, new Configurator() {
30
31 @Override
32 public void accept(ServletContext servletContext, ServerContainer serverContainer)
33 throws DeploymentException {
34 bc.registerService(javax.websocket.server.ServerContainer.class, serverContainer, null);
35 }
36 });
37 }
38 return super.customizeContext(context, settings);
39
40 }
41 }