Testing mail with jetty jndi.

Change-Id: If4393b189e1eaa4380cbccfc8e126e336d122945
diff --git a/core/pom.xml b/core/pom.xml
index d110402..a8420e4 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -10,7 +10,7 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<spring-framework.version>5.0.3.RELEASE</spring-framework.version>
 		<jersey.version>1.19.4</jersey.version>
-		<jetty.version>8.2.0.v20160908</jetty.version>
+		<jetty.version>9.4.8.v20171121</jetty.version>
 		<hibernate.version>5.1.11.Final</hibernate.version>
 	</properties>
 	<build>
@@ -358,6 +358,8 @@
 			<artifactId>commons-collections</artifactId>
 			<version>3.2.2</version>
 		</dependency>
+		
+		<!-- jetty -->
 		<dependency>
 			<groupId>org.eclipse.jetty</groupId>
 			<artifactId>jetty-server</artifactId>
@@ -369,6 +371,12 @@
 			<version>${jetty.version}</version>
 		</dependency>
 		<dependency>
+			<groupId>org.eclipse.jetty</groupId>
+			<artifactId>jetty-webapp</artifactId>
+			<version>${jetty.version}</version>
+		</dependency>
+		
+		<dependency>
 			<groupId>asm</groupId>
 			<artifactId>asm</artifactId>
 			<version>3.3.1</version>
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/User.java b/core/src/main/java/de/ids_mannheim/korap/user/User.java
index 8732a21..3cba4a2 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/User.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/User.java
@@ -24,9 +24,10 @@
 @Data
 public abstract class User implements Serializable {
 
-//    public static final int ADMINISTRATOR_ID = 34349733;
-//    public static final String ADMINISTRATOR_NAME = "admin";
-
+    //EM: add
+    private String email;
+    //EM: finish
+    
     private Integer id;
     // in local its username, in shib it's edupersonPrincipalName
     private String username;
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
index 7ad0500..39e9961 100644
--- a/core/src/main/java/de/ids_mannheim/korap/web/KustvaktBaseServer.java
+++ b/core/src/main/java/de/ids_mannheim/korap/web/KustvaktBaseServer.java
@@ -1,17 +1,22 @@
 package de.ids_mannheim.korap.web;
 
+import javax.naming.InitialContext;
 import javax.servlet.ServletContextListener;
 
 import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.bio.SocketConnector;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.handler.HandlerList;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.webapp.Configuration.ClassList;
+import org.springframework.stereotype.Component;
 import org.springframework.web.context.ContextLoaderListener;
 
 import com.sun.jersey.spi.spring.container.servlet.SpringServlet;
 
-import de.ids_mannheim.korap.config.BeansFactory;
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
 import lombok.Getter;
 import lombok.Setter;
@@ -20,11 +25,14 @@
  * @author hanl
  * @date 01/06/2015
  */
+@Component
 public abstract class KustvaktBaseServer {
+
+    protected static KustvaktConfiguration config;
     
     protected static String rootPackages;
     protected static KustvaktArgs kargs;
-    
+
     public KustvaktBaseServer () {
         KustvaktConfiguration.loadLogger();
     }
@@ -59,51 +67,67 @@
         return kargs;
     }
 
-    protected abstract void setup ();
+    protected void setupJndi (Server server, WebAppContext webapp){}
 
     protected void start(){
-        KustvaktConfiguration config = BeansFactory.getKustvaktContext().getConfiguration();
         
-        if (kargs.init){
-            setup();
-        }
         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.getConfig());
+        contextHandler.setInitParameter("contextConfigLocation",
+                "classpath:" + kargs.getConfig());
         
         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.config.property.packages", rootPackages);
         servletHolder.setInitOrder(1);
         contextHandler.addServlet(servletHolder, config.getBaseURL());
-        
-        SocketConnector connector = new SocketConnector();
+
+        ServerConnector connector = new ServerConnector(server);
         connector.setPort(kargs.port);
-        connector.setMaxIdleTime(60000);
+        connector.setIdleTimeout(60000);
         
         server.setHandler(contextHandler);
+        
+//        ClassList classlist = ClassList.setServerDefault(server);
+//        classlist.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
+//                "org.eclipse.jetty.plus.webapp.EnvConfiguration",
+//                "org.eclipse.jetty.plus.webapp.PlusConfiguration");
+        
+//        WebAppContext webapp = new WebAppContext();
+//        webapp.setDescriptor(KustvaktBaseServer.class.getResource("/WEB-INF/web.xml").toString());
+//        webapp.setContextPath("/");
+//        webapp.setWar("./kustvakt.war");
+//        server.setHandler(webapp);
+//        setupJndi(server, webapp);
+//        HandlerList handlerList = new HandlerList();
+//        handlerList.setHandlers(new Handler[]{webapp,contextHandler});
+//        server.setHandler(handlerList);
+        
         server.setConnectors(new Connector[] { connector });
         try {
             server.start();
+//            InitialContext ic = new InitialContext();
+//            Object object = ic.lookup("mail/Session");
             server.join();
         }
         catch (Exception e) {
             System.out.println("Server could not be started!");
             System.out.println(e.getMessage());
+            e.printStackTrace();
             System.exit(-1);
-//            e.printStackTrace();
         }
     }
-    
+
     @Setter
     public static class KustvaktArgs {