@Bean public DmnEngine dmnEngine(@SuppressWarnings("unused") ProcessEngine processEngine) { // The process engine needs to be injected, as otherwise it won't be initialized, which means that the DmnEngine is not initialized yet if (!DmnEngines.isInitialized()) { throw new IllegalStateException("DMN engine has not been initialized"); } return DmnEngines.getDefaultDmnEngine(); } }
@Bean public DmnEngine dmnEngine(@SuppressWarnings("unused") AppEngine appEngine) { // The app engine needs to be injected, as otherwise it won't be initialized, which means that the DmnEngine is not initialized yet if (!DmnEngines.isInitialized()) { throw new IllegalStateException("DMN engine has not been initialized"); } return DmnEngines.getDefaultDmnEngine(); } }
/** * obtain a dmn engine by name. * * @param dmnEngineName * is the name of the dmn engine or null for the default dmn engine. */ public static DmnEngine getDmnEngine(String dmnEngineName) { if (!isInitialized()) { init(); } return dmnEngines.get(dmnEngineName); }
/** * closes all dmn engines. This method should be called when the server shuts down. */ public static synchronized void destroy() { if (isInitialized()) { Map<String, DmnEngine> engines = new HashMap<>(dmnEngines); dmnEngines = new HashMap<>(); for (String dmnEngineName : engines.keySet()) { DmnEngine dmnEngine = engines.get(dmnEngineName); try { dmnEngine.close(); } catch (Exception e) { LOGGER.error("exception while closing {}", (dmnEngineName == null ? "the default dmn engine" : "dmn engine " + dmnEngineName), e); } } dmnEngineInfosByName.clear(); dmnEngineInfosByResourceUrl.clear(); dmnEngineInfos.clear(); setInitialized(false); } }
if (!isInitialized()) { if (dmnEngines == null) {