]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.lib.jetty/src/org/argeo/cms/jetty/CmsJettyServer.java
Do not offer locale choice if there is only one.
[lgpl/argeo-commons.git] / org.argeo.cms.lib.jetty / src / org / argeo / cms / jetty / CmsJettyServer.java
1 package org.argeo.cms.jetty;
2
3 import java.io.IOException;
4 import java.nio.file.Files;
5 import java.nio.file.Path;
6
7 import javax.servlet.ServletException;
8
9 import org.eclipse.jetty.server.session.SessionHandler;
10 import org.eclipse.jetty.servlet.ServletContextHandler;
11
12 public class CmsJettyServer extends JettyHttpServer {
13 private static final String CONTEXT_TEMPDIR = "javax.servlet.context.tempdir";
14 // Equinox compatibility
15 private static final String INTERNAL_CONTEXT_CLASSLOADER = "org.eclipse.equinox.http.jetty.internal.ContextClassLoader";
16 // private static final CmsLog log = CmsLog.getLog(CmsJettyServer.class);
17
18 // private Server server;
19 // private Path tempDir;
20 //
21 // private ServerConnector httpConnector;
22 // private ServerConnector httpsConnector;
23 private Path tempDir;
24
25 // WebSocket
26 // private ServerContainer wsServerContainer;
27 // private ServerEndpointConfig.Configurator wsEndpointConfigurator;
28
29 // private Authenticator defaultAuthenticator;
30
31 protected void addServlets(ServletContextHandler servletContextHandler) throws ServletException {
32 }
33
34 @Override
35 public void start() {
36 try {
37 tempDir = Files.createTempDirectory("jetty");
38 } catch (IOException e) {
39 throw new IllegalStateException("Cannot create temp dir", e);
40 }
41 super.start();
42 }
43
44 protected ServletContextHandler createRootContextHandler() {
45 ServletContextHandler servletContextHandler = new ServletContextHandler();
46 servletContextHandler.setAttribute(INTERNAL_CONTEXT_CLASSLOADER,
47 Thread.currentThread().getContextClassLoader());
48 servletContextHandler.setClassLoader(this.getClass().getClassLoader());
49 servletContextHandler.setContextPath("/");
50
51 servletContextHandler.setAttribute(CONTEXT_TEMPDIR, tempDir.toAbsolutePath().toFile());
52 SessionHandler handler = new SessionHandler();
53 handler.setMaxInactiveInterval(-1);
54 servletContextHandler.setSessionHandler(handler);
55
56 return servletContextHandler;
57 }
58
59 @Override
60 protected void configureRootContextHandler(ServletContextHandler servletContextHandler) throws ServletException {
61 addServlets(servletContextHandler);
62 // enableWebSocket(servletContextHandler);
63
64 }
65
66 // @Override
67 // public synchronized HttpContext createContext(String path) {
68 // HttpContext httpContext = super.createContext(path);
69 // httpContext.setAuthenticator(defaultAuthenticator);
70 // return httpContext;
71 // }
72
73 // protected void enableWebSocket(ServletContextHandler servletContextHandler) {
74 // String webSocketEnabled = getDeployProperty(CmsDeployProperty.WEBSOCKET_ENABLED);
75 // // web socket
76 // if (webSocketEnabled != null && webSocketEnabled.equals(Boolean.toString(true))) {
77 //// JavaxWebSocketServletContainerInitializer.configure(servletContextHandler, new Configurator() {
78 ////
79 //// @Override
80 //// public void accept(ServletContext servletContext, ServerContainer serverContainer)
81 //// throws DeploymentException {
82 ////// wsServerContainer = serverContainer;
83 ////
84 //// CmsWebSocketConfigurator wsEndpointConfigurator = new CmsWebSocketConfigurator();
85 ////
86 //// ServerEndpointConfig config = ServerEndpointConfig.Builder
87 //// .create(TestEndpoint.class, "/ws/test/events/{topic}").configurator(wsEndpointConfigurator)
88 //// .build();
89 //// try {
90 //// serverContainer.addEndpoint(config);
91 //// } catch (DeploymentException e) {
92 //// throw new IllegalStateException("Cannot initalise the WebSocket server runtime.", e);
93 //// }
94 //// }
95 //// });
96 // }
97 // }
98
99 // public void setDefaultAuthenticator(Authenticator defaultAuthenticator) {
100 // this.defaultAuthenticator = defaultAuthenticator;
101 // }
102
103 }