Added Shutdown handler to Jetty server and fixed NamedVCLoader.
Change-Id: I18fe51031103deb966843cc248e154011efb8abe
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index c318536..5ff29ea 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -15,6 +15,7 @@
import de.ids_mannheim.korap.util.KrillProperties;
import de.ids_mannheim.korap.utils.TimeUtils;
import lombok.Getter;
+import lombok.Setter;
/**
* if configuration class is extended, loadSubTypes method should be
@@ -27,6 +28,7 @@
* - cleaned up log4j loader
*/
+@Setter
@Getter
public class KustvaktConfiguration {
@@ -89,6 +91,10 @@
protected Pattern freeLicensePattern;
protected Pattern allLicensePattern;
+ // random code generator
+ private String secureRandomAlgorithm;
+ private String messageDigestAlgorithm;
+
public KustvaktConfiguration (Properties properties) throws Exception {
load(properties);
KrillProperties.setProp(properties);
@@ -165,6 +171,13 @@
// passcodeSaltField =
// properties.getProperty("security.passcode.salt",
// "accountCreation");
+
+ setSecureRandomAlgorithm(properties
+ .getProperty("security.secure.random.algorithm", "SHA1PRNG"));
+
+ setMessageDigestAlgorithm(
+ properties.getProperty("security.md.algorithm", "MD5"));
+
}
/**
diff --git a/core/src/main/java/de/ids_mannheim/korap/web/KustvaktBaseServer.java b/core/src/main/java/de/ids_mannheim/korap/web/KustvaktBaseServer.java
deleted file mode 100644
index 60065aa..0000000
--- a/core/src/main/java/de/ids_mannheim/korap/web/KustvaktBaseServer.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package de.ids_mannheim.korap.web;
-
-import javax.servlet.ServletContextListener;
-
-import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.springframework.web.context.ContextLoaderListener;
-
-import com.sun.jersey.spi.spring.container.servlet.SpringServlet;
-
-import de.ids_mannheim.korap.config.KustvaktConfiguration;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author hanl
- * @date 01/06/2015
- */
-public abstract class KustvaktBaseServer {
-
- protected static KustvaktConfiguration config;
-
- protected static String rootPackages;
- protected static KustvaktArgs kargs;
-
- public KustvaktBaseServer () {}
-
- protected KustvaktArgs readAttributes (String[] args) {
- KustvaktArgs kargs = new KustvaktArgs();
- for (int i = 0; i < args.length; i++) {
- switch ((args[i])) {
- case "--spring-config":
- kargs.setSpringConfig(args[i + 1]);
- break;
- case "--port":
- kargs.setPort(Integer.valueOf(args[i + 1]));
- break;
- case "--help":
- StringBuffer b = new StringBuffer();
-
- b.append("Parameter description: \n")
- .append("--spring-config <Spring XML configuration filename in classpath>\n")
- .append("--port <Server port number>\n")
- .append("--help : This help menu\n");
- System.out.println(b.toString());
- System.out.println();
- return (KustvaktArgs) null;
- }
- }
- return kargs;
- }
-
- protected void start () {
-
- if (kargs.port == -1) {
- kargs.setPort(config.getPort());
- }
-
- Server server = new Server();
-
- ServletContextHandler contextHandler =
- new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
- contextHandler.setContextPath("/");
- contextHandler.setInitParameter("contextConfigLocation",
- "classpath:" + kargs.getSpringConfig());
-
- ServletContextListener listener = new ContextLoaderListener();
- contextHandler.addEventListener(listener);
-
- ServletHolder servletHolder = new ServletHolder(new SpringServlet());
- servletHolder.setInitParameter(
- "com.sun.jersey.config.property.packages", rootPackages);
- servletHolder.setInitParameter(
- "com.sun.jersey.api.json.POJOMappingFeature", "true");
- servletHolder.setInitOrder(1);
- contextHandler.addServlet(servletHolder, config.getBaseURL());
-
- ServerConnector connector = new ServerConnector(server);
- connector.setPort(kargs.port);
- connector.setIdleTimeout(60000);
-
- server.setHandler(contextHandler);
-
- server.setConnectors(new Connector[] { connector });
- try {
- server.start();
- server.join();
- }
- catch (Exception e) {
- System.out.println("Server could not be started!");
- System.out.println(e.getMessage());
- e.printStackTrace();
- System.exit(-1);
- }
- }
-
- @Setter
- public static class KustvaktArgs {
-
- @Getter
- private String springConfig;
- private int port;
-
- public KustvaktArgs () {
- this.port = -1;
- this.springConfig = null;
- }
- }
-}