blob: d51c2e729599b98c12c0ab079839d8ffc34619c5 [file] [log] [blame]
hebastae2bd6e42020-03-03 19:07:20 +01001package de.ids_mannheim.korap.plkexport;
2
hebasta68a5bdd2020-03-07 13:44:17 +01003import java.io.File;
hebasta68a5bdd2020-03-07 13:44:17 +01004import java.util.Properties;
5
hebasta97c0a042020-03-24 21:26:44 +01006import org.eclipse.jetty.server.Handler;
hebastae2bd6e42020-03-03 19:07:20 +01007import org.eclipse.jetty.server.Server;
hebasta68a5bdd2020-03-07 13:44:17 +01008import org.eclipse.jetty.server.ServerConnector;
hebasta97c0a042020-03-24 21:26:44 +01009import org.eclipse.jetty.server.handler.ContextHandler;
10import org.eclipse.jetty.server.handler.DefaultHandler;
11import org.eclipse.jetty.server.handler.HandlerList;
hebastae2bd6e42020-03-03 19:07:20 +010012import org.eclipse.jetty.servlet.ServletContextHandler;
13import org.eclipse.jetty.servlet.ServletHolder;
14
Akronbb076c72020-09-28 14:39:15 +020015import org.glassfish.jersey.servlet.ServletContainer;
16
hebastae2bd6e42020-03-03 19:07:20 +010017public class PluginServer {
18 public static void main (String[] args) throws Exception {
19
hebastae2bd6e42020-03-03 19:07:20 +010020 ServletContextHandler contextHandler = new ServletContextHandler(
Akronbb076c72020-09-28 14:39:15 +020021 ServletContextHandler.NO_SESSIONS
22 );
hebastae2bd6e42020-03-03 19:07:20 +010023 contextHandler.setContextPath("/");
24
Akronc931cd02020-09-15 10:54:17 +020025 Properties properties = ExWSConf.properties(null);
hebasta68a5bdd2020-03-07 13:44:17 +010026
27 //Default: Server is available under http://localhost:7070/
28 String portStr = properties.getProperty("server.port", "7070");
29 String host = properties.getProperty("server.host", "localhost");
30 int port = Integer.parseInt(portStr);
31
32 Server jettyServer = new Server();
33 ServerConnector connector = new ServerConnector(jettyServer);
34 connector.setPort(port);
35 connector.setHost(host);
36 connector.setIdleTimeout(60000);
37 jettyServer.addConnector(connector);
hebasta97c0a042020-03-24 21:26:44 +010038
hebasta97c0a042020-03-24 21:26:44 +010039 HandlerList handlers = new HandlerList();
Akronb87af2f2020-09-24 14:38:02 +020040 handlers.setHandlers(new Handler[] { contextHandler, new DefaultHandler()});
hebasta97c0a042020-03-24 21:26:44 +010041 jettyServer.setHandler(handlers);
Akronbb076c72020-09-28 14:39:15 +020042
43
44 ServletContainer servletContainer = new ServletContainer();
45 ServletHolder servletHolder = new ServletHolder(servletContainer);
46 contextHandler.addServlet(servletHolder, "/*");
hebasta97c0a042020-03-24 21:26:44 +010047
hebastae2bd6e42020-03-03 19:07:20 +010048 servletHolder.setInitOrder(0);
49
50 // Tells the Jersey Servlet which REST service/class to load.
51 servletHolder.setInitParameter(
52 "jersey.config.server.provider.classnames",
53 IdsExportService.class.getCanonicalName());
54
55 try {
56 jettyServer.start();
hebasta68a5bdd2020-03-07 13:44:17 +010057 System.out.println("PluginServer available under: http://" + host+ ":" + portStr);
Akronbb076c72020-09-28 14:39:15 +020058 System.out.println(
59 "ApiServer expected under: " +
60 properties.getProperty("api.scheme") +
61 "://" +
Akron68f221b2020-09-29 23:15:43 +020062 properties.getProperty("api.host") +
Akron0bdcab22020-11-19 18:36:16 +010063 properties.getProperty("api.path","") + ":" +
Akronbb076c72020-09-28 14:39:15 +020064 properties.getProperty("api.port")
65 );
hebastae2bd6e42020-03-03 19:07:20 +010066 jettyServer.join();
67 }
68 finally {
69 jettyServer.destroy();
70 }
71 }
72}