Remove unused BeansInjectable, BeansFactory and DefaultHandler

Change-Id: I80b23e3510489b158cf30e628bf75a9d92a1c3e7
diff --git a/src/main/java/de/ids_mannheim/korap/config/BeanInjectable.java b/src/main/java/de/ids_mannheim/korap/config/BeanInjectable.java
deleted file mode 100644
index 54f432e..0000000
--- a/src/main/java/de/ids_mannheim/korap/config/BeanInjectable.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package de.ids_mannheim.korap.config;
-
-/**
- * @author hanl
- * @date 26/02/2016
- */
-public interface BeanInjectable {
-
-    <T extends ContextHolder> void insertBeans (T beans);
-}
diff --git a/src/main/java/de/ids_mannheim/korap/config/BeansFactory.java b/src/main/java/de/ids_mannheim/korap/config/BeansFactory.java
deleted file mode 100644
index 2616870..0000000
--- a/src/main/java/de/ids_mannheim/korap/config/BeansFactory.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package de.ids_mannheim.korap.config;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Collection;
-
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
-
-import de.ids_mannheim.korap.interfaces.KustvaktTypeInterface;
-import de.ids_mannheim.korap.web.CoreResponseHandler;
-
-/**
- * User: hanl
- * Date: 10/9/13
- * Time: 11:20 AM
- */
-public class BeansFactory {
-
-    private static ContextHolder beanHolder;
-
-    //todo: allow this for external plugin systems that are not kustvakt specific
-    @Deprecated
-    public static void setCustomBeansHolder (ContextHolder holder) {
-        beanHolder = holder;
-    }
-
-    public static synchronized ContextHolder getKustvaktContext () {
-        return beanHolder;
-    }
-
-    public static synchronized ContextHolder getKustvaktContext (int i) {
-        return beanHolder;
-    }
-
-    public static synchronized TypeBeanFactory getTypeFactory () {
-        return new TypeBeanFactory();
-    }
-
-    public static int loadClasspathContext (String ... files) {
-        ApplicationContext context;
-        if (files.length == 0)
-            throw new IllegalArgumentException(
-                    "Spring XML config file is not specified.");
-        else
-            context = new ClassPathXmlApplicationContext(files);
-        ContextHolder h = new ContextHolder(context) {};
-        BeansFactory.beanHolder = h;
-        //        return BeansFactory.beanHolder.indexOf(h);
-        return 0;
-    }
-
-    public static synchronized int addApplicationContext (
-            ApplicationContext context) {
-        ContextHolder h = new ContextHolder(context) {};
-        BeansFactory.beanHolder = h;
-        //        return BeansFactory.beanHolder.indexOf(h);
-        return 0;
-    }
-
-    public static synchronized void setKustvaktContext (ContextHolder holder) {
-        BeansFactory.beanHolder = holder;
-    }
-
-    public static synchronized int setApplicationContext (
-            ApplicationContext context) {
-        ContextHolder h = new ContextHolder(context) {};
-        BeansFactory.beanHolder = h;
-        return 0;
-    }
-
-    public static synchronized int loadFileContext (String filepath) {
-        ApplicationContext context = new FileSystemXmlApplicationContext(
-                "file:" + filepath);
-        ContextHolder h = new ContextHolder(context) {};
-        BeansFactory.beanHolder = h;
-        return 0;
-    }
-
-    public static void closeApplication () {
-        BeansFactory.beanHolder = null;
-    }
-
-    //todo: set response handler
-    @Deprecated
-    public static CoreResponseHandler getResponseHandler () {
-        return null;
-    }
-
-    public BeansFactory () {}
-
-    public static class TypeBeanFactory {
-
-        public <T> T getTypeInterfaceBean (Collection objs, Class type) {
-            for (Object o : objs) {
-                if (o instanceof KustvaktTypeInterface) {
-                    Class t = ((KustvaktTypeInterface) o).type();
-                    if (type.equals(t))
-                        return (T) o;
-                }
-            }
-            throw new RuntimeException(
-                    "Could not find typed bean in context for class '" + type
-                            + "'");
-        }
-
-        @Deprecated
-        public <T> T getTypedBean (Collection objs, Class type) {
-            for (Object o : objs) {
-                Type gtype = o.getClass().getGenericSuperclass();
-                if (gtype instanceof ParameterizedType) {
-                    ParameterizedType ptype = (ParameterizedType) gtype;
-                    Object ctype = ptype.getActualTypeArguments()[0];
-                    if (ctype.equals(type))
-                        return (T) o;
-                }
-            }
-            throw new RuntimeException(
-                    "Could not find typed bean in context for class '" + type
-                            + "'");
-        }
-    }
-}
diff --git a/src/main/java/de/ids_mannheim/korap/config/ContextHolder.java b/src/main/java/de/ids_mannheim/korap/config/ContextHolder.java
deleted file mode 100644
index 3d26bcc..0000000
--- a/src/main/java/de/ids_mannheim/korap/config/ContextHolder.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.ids_mannheim.korap.config;
-
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.context.ApplicationContext;
-
-import de.ids_mannheim.korap.web.CoreResponseHandler;
-
-/**
- * @author hanl
- * @date 26/02/2016
- */
-public abstract class ContextHolder {
-
-    public static final String KUSTVAKT_DB = "kustvakt_db";
-    public static final String KUSTVAKT_ENCRYPTION = "kustvakt_encryption";
-    public static final String KUSTVAKT_AUDITING = "kustvakt_auditing";
-    public static final String KUSTVAKT_CONFIG = "kustvakt_config";
-    public static final String KUSTVAKT_USERDATA = "kustvakt_userdata";
-    public static final String KUSTVAKT_RESOURCES = "kustvakt_resources";
-
-    public static final String KUSTVAKT_AUTHENTICATION_MANAGER = "kustvakt_authenticationmanager";
-    public static final String KUSTVAKT_AUTHPROVIDERS = "kustvakt_authproviders";
-    public static final String KUSTVAKT_USERDB = "kustvakt_userdb";
-    public static final String KUSTVAKT_ADMINDB = "kustvakt_admindb";
-    public static final String KUSTVAKT_POLICIES = "kustvakt_policies";
-
-    private ApplicationContext context = null;
-    private DefaultHandler handler;
-
-    public ContextHolder (ApplicationContext context) {
-        this.handler = new DefaultHandler();
-        this.context = context;
-        // todo: better method?!
-        new CoreResponseHandler();
-    }
-
-    protected <T> T getBean (Class<T> clazz) {
-        if (this.context != null) {
-            try {
-                return context.getBean(clazz);
-            }
-            catch (NoSuchBeanDefinitionException e) {
-                // do nothing
-            }
-        }
-        return this.handler.getDefault(clazz);
-    }
-
-    protected <T> T getBean (String name) {
-        T bean = null;
-        if (this.context != null) {
-            try {
-                bean = (T) context.getBean(name);
-            }
-            catch (NoSuchBeanDefinitionException e) {
-                // do nothing
-                bean = (T) this.handler.getDefault(name);
-            }
-        }
-
-        return bean;
-    }
-
-    @Deprecated
-    public <T extends KustvaktConfiguration> T getConfiguration () {
-        return (T) getBean(KUSTVAKT_CONFIG);
-    }
-
-    private void close () {
-        this.context = null;
-    }
-}
diff --git a/src/main/java/de/ids_mannheim/korap/config/DefaultHandler.java b/src/main/java/de/ids_mannheim/korap/config/DefaultHandler.java
deleted file mode 100644
index df7be47..0000000
--- a/src/main/java/de/ids_mannheim/korap/config/DefaultHandler.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package de.ids_mannheim.korap.config;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author hanl
- * @date 17/06/2015
- */
-public class DefaultHandler {
-
-    private Map<String, Object> defaults;
-
-    public DefaultHandler () {
-        this.defaults = new HashMap<>();
-        loadClasses();
-    }
-
-    private void loadClasses () {
-        Set<Class<?>> cls = KustvaktClassLoader
-                .loadFromAnnotation(Configurable.class);
-        for (Class clazz : cls) {
-            Configurable c = (Configurable) clazz
-                    .getAnnotation(Configurable.class);
-            try {
-                this.defaults.put(c.value(), clazz.newInstance());
-            }
-            catch (InstantiationException | IllegalAccessException e) {
-                throw new RuntimeException("Could not instantiate class");
-            }
-        }
-    }
-
-    public Object getDefault (String name) {
-        return this.defaults.get(name);
-    }
-
-    public <T> T getDefault (Class<T> tClass) {
-        for (Object o : this.defaults.values()) {
-            if (o.getClass().equals(tClass))
-                return (T) o;
-        }
-        return null;
-    }
-
-    public void remove (String name) {
-        this.defaults.remove(name);
-    }
-
-    @Override
-    public String toString () {
-        return defaults.toString();
-    }
-}
diff --git a/src/main/java/de/ids_mannheim/korap/encryption/DefaultEncryption.java b/src/main/java/de/ids_mannheim/korap/encryption/DefaultEncryption.java
index 6792ff3..c3d362a 100644
--- a/src/main/java/de/ids_mannheim/korap/encryption/DefaultEncryption.java
+++ b/src/main/java/de/ids_mannheim/korap/encryption/DefaultEncryption.java
@@ -4,7 +4,6 @@
 import java.security.SecureRandom;
 
 import de.ids_mannheim.korap.config.Configurable;
-import de.ids_mannheim.korap.config.ContextHolder;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.interfaces.EncryptionIface;
 
@@ -12,7 +11,7 @@
  * @author hanl
  * @date 05/06/2015
  */
-@Configurable(ContextHolder.KUSTVAKT_ENCRYPTION)
+@Configurable("kustvakt_encryption")
 public class DefaultEncryption implements EncryptionIface {
 
     private SecureRandom randomizer;
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java b/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
index a7d0983..fe7abab 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
@@ -1,7 +1,7 @@
 package de.ids_mannheim.korap.rewrite;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import de.ids_mannheim.korap.config.BeanInjectable;
+
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
 import de.ids_mannheim.korap.user.User;
 
diff --git a/src/main/java/de/ids_mannheim/korap/utils/PropertyReader.java b/src/main/java/de/ids_mannheim/korap/utils/PropertyReader.java
index b377cd1..c691e74 100644
--- a/src/main/java/de/ids_mannheim/korap/utils/PropertyReader.java
+++ b/src/main/java/de/ids_mannheim/korap/utils/PropertyReader.java
@@ -1,7 +1,5 @@
 package de.ids_mannheim.korap.utils;
 
-import de.ids_mannheim.korap.config.BeanInjectable;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
diff --git a/src/main/java/de/ids_mannheim/korap/web/controller/AuthenticationController.java b/src/main/java/de/ids_mannheim/korap/web/controller/AuthenticationController.java
index 99ae42c..3d76fe4 100644
--- a/src/main/java/de/ids_mannheim/korap/web/controller/AuthenticationController.java
+++ b/src/main/java/de/ids_mannheim/korap/web/controller/AuthenticationController.java
@@ -15,7 +15,6 @@
 import de.ids_mannheim.korap.authentication.http.AuthorizationData;
 import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
 import de.ids_mannheim.korap.config.Attributes;
-import de.ids_mannheim.korap.config.BeansFactory;
 import de.ids_mannheim.korap.constant.AuthenticationMethod;
 import de.ids_mannheim.korap.constant.AuthenticationScheme;
 import de.ids_mannheim.korap.constant.TokenType;
@@ -23,8 +22,6 @@
 import de.ids_mannheim.korap.exceptions.StatusCodes;
 import de.ids_mannheim.korap.security.context.TokenContext;
 import de.ids_mannheim.korap.user.User;
-import de.ids_mannheim.korap.utils.JsonUtils;
-import de.ids_mannheim.korap.utils.ServiceInfo;
 import de.ids_mannheim.korap.web.KustvaktResponseHandler;
 import de.ids_mannheim.korap.web.filter.APIVersionFilter;
 import de.ids_mannheim.korap.web.filter.AuthenticationFilter;
@@ -88,24 +85,24 @@
      * 
      * @return String
      */
-    @Deprecated
-    @GET
-    @Path("bootstrap")
-    @Produces(MediaType.APPLICATION_JSON)
-    public Response bootstrap () {
-        Map m = new HashMap();
-        //        m.put("settings", new UserSettings().toObjectMap());
-        m.put("ql", BeansFactory.getKustvaktContext().getConfiguration()
-                .getQueryLanguages());
-        m.put("SortTypes", null); // types of sorting that are supported!
-        m.put("version", ServiceInfo.getInfo().getVersion());
-        try {
-            return Response.ok(JsonUtils.toJSON(m)).build();
-        }
-        catch (KustvaktException e) {
-            throw kustvaktResponseHandler.throwit(e);
-        }
-    }
+//    @Deprecated
+//    @GET
+//    @Path("bootstrap")
+//    @Produces(MediaType.APPLICATION_JSON)
+//    public Response bootstrap () {
+//        Map m = new HashMap();
+//        //        m.put("settings", new UserSettings().toObjectMap());
+//        m.put("ql", BeansFactory.getKustvaktContext().getConfiguration()
+//                .getQueryLanguages());
+//        m.put("SortTypes", null); // types of sorting that are supported!
+//        m.put("version", ServiceInfo.getInfo().getVersion());
+//        try {
+//            return Response.ok(JsonUtils.toJSON(m)).build();
+//        }
+//        catch (KustvaktException e) {
+//            throw kustvaktResponseHandler.throwit(e);
+//        }
+//    }
 
     // fixme: moved to user
     @GET