Skip to content
Snippets Groups Projects
AppLifecycleBean.java 1.60 KiB
package de.unikoblenz.fgbks.api;

import de.unikoblenz.fgbks.base.wordnet.WordnetService;
import de.unikoblenz.fgbks.core.dmn.verification.DmnVerificationService;
import de.unikoblenz.fgbks.core.dmn.verification.result.actions.FixActionService;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.StartupEvent;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ApplicationScoped
public class AppLifecycleBean {

  @Inject
  DmnVerificationService dmnVerificationService;
  @Inject
  FixActionService fixActionService;

  private static final Logger LOGGER = LoggerFactory.getLogger("AppLifecycle");

  @ConfigProperty(name = "wordnet.path")
  private String wordnetPath;

  @ConfigProperty(name = "verifier.fixes.active", defaultValue = "true")
  private String activeFixes;

  void onStart(@Observes StartupEvent ev) {
    LOGGER.info("The dmn verification application is starting...");
    // Init wordnet
    LOGGER.info("Starting initialization of wordnet...");
    WordnetService.getInstance(true, wordnetPath);
    LOGGER.info("Generating fix values at init: ..");
    fixActionService.setGlobalActive(Boolean.parseBoolean(activeFixes));
    LOGGER.info("... " + fixActionService.isGlobalActive());
    LOGGER.info("Starting initialization of verifier...");
    dmnVerificationService.initVerifier();
  }

  void onStop(@Observes ShutdownEvent ev) {
    LOGGER.info("The dmn verification application is stopping...");
  }
}