blob: 02a141dbde8baa2d3904a9784c5fc200d927180d [file] [log] [blame]
package de.ids_mannheim.korap.init;
import java.io.IOException;
import java.util.EnumSet;
import org.springframework.beans.factory.annotation.Autowired;
import de.ids_mannheim.korap.annotation.ResourceParser;
import de.ids_mannheim.korap.cache.VirtualCorpusCache;
import de.ids_mannheim.korap.config.FullConfiguration;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.constant.OAuth2Scope;
import de.ids_mannheim.korap.constant.QueryType;
import de.ids_mannheim.korap.constant.ResourceType;
import de.ids_mannheim.korap.dao.AdminDao;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
import de.ids_mannheim.korap.oauth2.service.OAuth2InitClientService;
import de.ids_mannheim.korap.service.QueryService;
import de.ids_mannheim.korap.user.KorAPUser;
import de.ids_mannheim.korap.util.QueryException;
import de.ids_mannheim.korap.web.input.QueryJson;
/**
* Initializes values in the database from kustvakt configuration and
* performs named VC caching.
*
* @author margaretha
*
*/
public class Initializator {
@Autowired
private AccessScopeDao accessScopeDao;
@Autowired
private AdminDao adminDao;
@Autowired
private NamedVCLoader vcLoader;
@Autowired
private ResourceParser resourceParser;
@Autowired
private FullConfiguration config;
@Autowired
private OAuth2InitClientService clientService;
@Autowired
private QueryService queryService;
public Initializator () {}
public void init () throws IOException, QueryException, KustvaktException {
VirtualCorpusCache.CACHE_LOCATION = KustvaktConfiguration.DATA_FOLDER
+ "/vc-cache";
setInitialAccessScope();
resourceParser.run();
if (config.createInitialSuperClient()) {
clientService.createInitialSuperClient(
OAuth2InitClientService.OUTPUT_FILENAME);
}
Thread t = new Thread(vcLoader);
t.start();
}
public void initTest ()
throws IOException, KustvaktException, QueryException {
VirtualCorpusCache.CACHE_LOCATION = KustvaktConfiguration.DATA_FOLDER
+ "/vc-cache";
setInitialAccessScope();
if (config.createInitialSuperClient()) {
clientService.createInitialTestSuperClient();
}
vcLoader.loadVCToCache("system-vc", "/vc/system-vc.jsonld");
adminDao.addAccount(new KorAPUser("admin"));
QueryJson q = new QueryJson();
q.setType(ResourceType.SYSTEM);
q.setQueryLanguage("poliqarp");
q.setQuery("[]");
q.setDescription("\"system\" query");
q.setQueryType(QueryType.QUERY);
queryService.handlePutRequest("system", "system", "system-q", q);
}
public void initResourceTest () throws IOException, KustvaktException {
setInitialAccessScope();
resourceParser.run();
}
private void setInitialAccessScope () {
EnumSet<OAuth2Scope> scopes = EnumSet.allOf(OAuth2Scope.class);
accessScopeDao.storeAccessScopes(scopes);
}
}