blob: 2062e204882e5fc71d8cc4254fdbd436a80a9aa1 [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
margaretha2c50c732018-10-17 18:48:52 +02008import de.ids_mannheim.korap.annotation.FreeResourceParser;
margaretha34954472018-10-24 20:05:17 +02009import de.ids_mannheim.korap.config.NamedVCLoader;
margaretha2df06602018-11-14 19:10:30 +010010import de.ids_mannheim.korap.constant.OAuth2Scope;
margaretha563aabe2018-09-13 20:39:45 +020011import de.ids_mannheim.korap.exceptions.KustvaktException;
margarethab4ce6602018-04-26 20:23:57 +020012import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
margarethac7196d22018-08-27 14:20:03 +020013import de.ids_mannheim.korap.util.QueryException;
margarethab4ce6602018-04-26 20:23:57 +020014
margarethabe4c5c92018-05-03 18:55:49 +020015/**
margaretha1b320452018-08-02 16:56:25 +020016 * Initializes values in the database from kustvakt configuration and
17 * performs named VC caching.
margarethab4ce6602018-04-26 20:23:57 +020018 *
19 * @author margaretha
20 *
21 */
margarethafc5fab22021-07-26 12:17:39 +020022public class Initializator{
margarethab4ce6602018-04-26 20:23:57 +020023
margaretha1b320452018-08-02 16:56:25 +020024 @Autowired
margarethab4ce6602018-04-26 20:23:57 +020025 private AccessScopeDao accessScopeDao;
margaretha1b320452018-08-02 16:56:25 +020026 @Autowired
margaretha0b903912019-01-08 17:41:39 +010027 private NamedVCLoader vcLoader;
margaretha51e5e3f2018-10-17 15:10:03 +020028 @Autowired
margaretha2c50c732018-10-17 18:48:52 +020029 private FreeResourceParser resourceParser;
30
margarethafc5fab22021-07-26 12:17:39 +020031 public Initializator () {}
margaretha1b320452018-08-02 16:56:25 +020032
margaretha563aabe2018-09-13 20:39:45 +020033 public void init () throws IOException, QueryException, KustvaktException {
margaretha1b320452018-08-02 16:56:25 +020034 setInitialAccessScope();
margaretha2c50c732018-10-17 18:48:52 +020035 resourceParser.run();
margaretha0b903912019-01-08 17:41:39 +010036 Thread t = new Thread(vcLoader);
37 t.start();
margaretha51e5e3f2018-10-17 15:10:03 +020038 }
39
margarethafc5fab22021-07-26 12:17:39 +020040 public void initTest () throws IOException, KustvaktException {
margaretha2df06602018-11-14 19:10:30 +010041 setInitialAccessScope();
42 }
43
margarethafc5fab22021-07-26 12:17:39 +020044 public void initResourceTest () throws IOException, KustvaktException {
margaretha1b320452018-08-02 16:56:25 +020045 setInitialAccessScope();
margaretha3da7cd32018-10-22 17:42:52 +020046 resourceParser.run();
margarethab4ce6602018-04-26 20:23:57 +020047 }
margarethad7b7d532018-08-13 17:10:31 +020048
margaretha1b320452018-08-02 16:56:25 +020049 private void setInitialAccessScope () {
margaretha835178d2018-08-15 19:04:03 +020050 EnumSet<OAuth2Scope> scopes = EnumSet.allOf(OAuth2Scope.class);
margaretha20f31232018-07-09 17:49:39 +020051 accessScopeDao.storeAccessScopes(scopes);
margarethab4ce6602018-04-26 20:23:57 +020052 }
53}