blob: 318f47ebb494ee5c8f1eb0017551a60f95d3aeeb [file] [log] [blame]
margaretha34954472018-10-24 20:05:17 +02001package de.ids_mannheim.de.init;
margarethab4ce6602018-04-26 20:23:57 +02002
margaretha1b320452018-08-02 16:56:25 +02003import java.io.IOException;
margaretha835178d2018-08-15 19:04:03 +02004import java.util.EnumSet;
margarethab4ce6602018-04-26 20:23:57 +02005
margaretha1b320452018-08-02 16:56:25 +02006import org.springframework.beans.factory.annotation.Autowired;
7
margaretha51e5e3f2018-10-17 15:10:03 +02008import de.ids_mannheim.korap.annotation.AnnotationParser;
margaretha2c50c732018-10-17 18:48:52 +02009import de.ids_mannheim.korap.annotation.FreeResourceParser;
margaretha34954472018-10-24 20:05:17 +020010import de.ids_mannheim.korap.config.NamedVCLoader;
margaretha563aabe2018-09-13 20:39:45 +020011import de.ids_mannheim.korap.exceptions.KustvaktException;
margaretha20f31232018-07-09 17:49:39 +020012import de.ids_mannheim.korap.oauth2.constant.OAuth2Scope;
margarethab4ce6602018-04-26 20:23:57 +020013import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
margarethac7196d22018-08-27 14:20:03 +020014import de.ids_mannheim.korap.util.QueryException;
margarethab4ce6602018-04-26 20:23:57 +020015
margarethabe4c5c92018-05-03 18:55:49 +020016/**
margaretha1b320452018-08-02 16:56:25 +020017 * Initializes values in the database from kustvakt configuration and
18 * performs named VC caching.
margarethab4ce6602018-04-26 20:23:57 +020019 *
20 * @author margaretha
21 *
22 */
margaretha34954472018-10-24 20:05:17 +020023public class InitializatorImpl implements Initializator {
margarethab4ce6602018-04-26 20:23:57 +020024
margaretha1b320452018-08-02 16:56:25 +020025 @Autowired
margarethab4ce6602018-04-26 20:23:57 +020026 private AccessScopeDao accessScopeDao;
margaretha1b320452018-08-02 16:56:25 +020027 @Autowired
28 private NamedVCLoader loader;
margaretha51e5e3f2018-10-17 15:10:03 +020029 @Autowired
30 private AnnotationParser annotationParser;
margaretha2c50c732018-10-17 18:48:52 +020031 @Autowired
32 private FreeResourceParser resourceParser;
33
margaretha34954472018-10-24 20:05:17 +020034 public InitializatorImpl () {}
margaretha1b320452018-08-02 16:56:25 +020035
margaretha34954472018-10-24 20:05:17 +020036 /* (non-Javadoc)
37 * @see de.ids_mannheim.de.init.Initializator#init()
38 */
39 @Override
margaretha563aabe2018-09-13 20:39:45 +020040 public void init () throws IOException, QueryException, KustvaktException {
margaretha1b320452018-08-02 16:56:25 +020041 setInitialAccessScope();
42 loader.loadVCToCache();
margarethab4ce6602018-04-26 20:23:57 +020043 }
margarethabe4c5c92018-05-03 18:55:49 +020044
margaretha51e5e3f2018-10-17 15:10:03 +020045 public void initAnnotation ()
46 throws IOException, QueryException, KustvaktException {
47 setInitialAccessScope();
48 loader.loadVCToCache();
49 annotationParser.run();
margaretha2c50c732018-10-17 18:48:52 +020050 resourceParser.run();
margaretha51e5e3f2018-10-17 15:10:03 +020051 }
52
margaretha34954472018-10-24 20:05:17 +020053 /* (non-Javadoc)
54 * @see de.ids_mannheim.de.init.Initializator#initTest()
55 */
56 @Override
margaretha3da7cd32018-10-22 17:42:52 +020057 public void initTest () throws IOException, KustvaktException {
margaretha1b320452018-08-02 16:56:25 +020058 setInitialAccessScope();
margaretha3da7cd32018-10-22 17:42:52 +020059 annotationParser.run();
60 resourceParser.run();
margarethab4ce6602018-04-26 20:23:57 +020061 }
margarethad7b7d532018-08-13 17:10:31 +020062
margaretha1b320452018-08-02 16:56:25 +020063 private void setInitialAccessScope () {
margaretha835178d2018-08-15 19:04:03 +020064 EnumSet<OAuth2Scope> scopes = EnumSet.allOf(OAuth2Scope.class);
margaretha20f31232018-07-09 17:49:39 +020065 accessScopeDao.storeAccessScopes(scopes);
margarethab4ce6602018-04-26 20:23:57 +020066 }
67}