Fixed issues with multi-release jar (#706, #708)

Change-Id: I97d70dde790a3838962f0ffe270b9b1d8595a489
diff --git a/full/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java b/full/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
index 324a98d..d13517c 100644
--- a/full/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
+++ b/full/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
@@ -19,11 +19,11 @@
 import org.glassfish.jersey.server.ServerProperties;
 import org.glassfish.jersey.servlet.ServletContainer;
 import org.springframework.web.context.ContextLoaderListener;
+import org.springframework.web.context.support.XmlWebApplicationContext;
 
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
 import de.ids_mannheim.korap.encryption.RandomCodeGenerator;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
-import jakarta.servlet.ServletContextListener;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -40,9 +40,10 @@
     protected static KustvaktArgs kargs;
 
     public KustvaktBaseServer () {
-        rootPackages = "de.ids_mannheim.korap.core.web; "
-                + "de.ids_mannheim.korap.web; "
-                + "com.fasterxml.jackson.jaxrs.json;";
+        rootPackages = "de.ids_mannheim.korap.core.web;"
+                + "de.ids_mannheim.korap.web;"
+//                + "com.fasterxml.jackson.jaxrs.json;"
+                ;
 
         File d = new File(KustvaktConfiguration.DATA_FOLDER);
         if (!d.exists()) {
@@ -103,24 +104,21 @@
 
         Server server = new Server();
 
+        String configLocation = "classpath:" + springConfig;
+        if (kargs.getSpringConfig() != null) {
+            configLocation = "file:" + kargs.getSpringConfig();
+        }
+        XmlWebApplicationContext context = new XmlWebApplicationContext();
+        context.setConfigLocation(configLocation);
+        
         ServletContextHandler contextHandler = new ServletContextHandler(
                 ServletContextHandler.NO_SESSIONS);
         contextHandler.setContextPath("/");
-
-        if (kargs.getSpringConfig() != null) {
-            contextHandler.setInitParameter("contextConfigLocation",
-                    "file:" + kargs.getSpringConfig());
-        }
-        else {
-            contextHandler.setInitParameter("contextConfigLocation",
-                    "classpath:" + this.springConfig);
-        }
-
-        ServletContextListener listener = new ContextLoaderListener();
-        contextHandler.addEventListener(listener);
+        contextHandler.addEventListener(new ContextLoaderListener(context));
         contextHandler.setInitParameter("adminToken", adminToken);
 
-        ServletHolder servletHolder = new ServletHolder(new ServletContainer());
+        ServletHolder servletHolder = new ServletHolder(
+                new ServletContainer());
         servletHolder.setInitParameter(ServerProperties.PROVIDER_PACKAGES,
                 rootPackages);
         servletHolder.setInitOrder(1);
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java b/full/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
index 0b44ae8..6063aa0 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
@@ -1,5 +1,6 @@
 package de.ids_mannheim.korap.web.utils;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.glassfish.jersey.model.internal.CommonConfig;
@@ -7,7 +8,8 @@
 import org.springframework.stereotype.Component;
 
 import de.ids_mannheim.korap.web.filter.APIVersionFilter;
-import edu.emory.mathcs.backport.java.util.Arrays;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.Priority;
 import jakarta.ws.rs.container.DynamicFeature;
 import jakarta.ws.rs.container.ResourceInfo;
 import jakarta.ws.rs.core.FeatureContext;