protected void initializeServices() { dmnEngineConfiguration = dmnEngine.getDmnEngineConfiguration(); managementService = dmnEngine.getDmnManagementService(); repositoryService = dmnEngine.getDmnRepositoryService(); ruleService = dmnEngine.getDmnRuleService(); historyService = dmnEngine.getDmnHistoryService(); }
@Override public void destroy() throws Exception { if (dmnEngine != null) { dmnEngine.close(); } }
/** * Registers the given dmn engine. No {@link EngineInfo} will be available for this dmn engine. An engine that is registered will be closed when the {@link DmnEngines#destroy()} is called. */ public static void registerDmnEngine(DmnEngine dmnEngine) { dmnEngines.put(dmnEngine.getName(), dmnEngine); }
protected void initializeServices() { dmnEngineConfiguration = dmnEngine.getDmnEngineConfiguration(); repositoryService = dmnEngine.getDmnRepositoryService(); }
@Bean public DmnRepositoryService dmnRepositoryService(DmnEngine dmnEngine) { return dmnEngine.getDmnRepositoryService(); }
DmnEngineConfiguration dmnEngineConfiguration = dmnEngine.getDmnEngineConfiguration(); DmnManagementService managementService = dmnEngine.getDmnManagementService(); Map<String, Long> tableCounts = managementService.getTableCount(); StringBuilder outputMessage = new StringBuilder(); CommandExecutor commandExecutor = dmnEngine.getDmnEngineConfiguration().getCommandExecutor(); CommandConfig config = new CommandConfig().transactionNotSupported(); commandExecutor.execute(config, new Command<Object>() {
@Bean public DmnHistoryService dmnHistoryService(DmnEngine dmnEngine) { return dmnEngine.getDmnHistoryService(); } }
@Bean public DmnManagementService dmnManagementService(DmnEngine dmnEngine) { return dmnEngine.getDmnManagementService(); }
@Bean public DmnRuleService dmnRuleService(DmnEngine dmnEngine) { return dmnEngine.getDmnRuleService(); }
public void setCurrentTime(Instant instant) { dmnEngine.getDmnEngineConfiguration().getClock().setCurrentTime(instant == null ? null : Date.from(instant)); }
public static void annotationDeploymentTearDown(DmnEngine dmnEngine, String deploymentId, Class<?> testClass, String methodName) { LOGGER.debug("annotation @Deployment deletes deployment for {}.{}", testClass.getSimpleName(), methodName); if (deploymentId != null) { try { dmnEngine.getDmnRepositoryService().deleteDeployment(deploymentId); } catch (FlowableObjectNotFoundException e) { // Deployment was already deleted by the test case. Ignore. } } }
public void setCurrentTime(Date date) { dmnEngine.getDmnEngineConfiguration().getClock().setCurrentTime(date); }
protected void autoDeployResources(DmnEngine dmnEngine) { if (deploymentResources != null && deploymentResources.length > 0) { final AutoDeploymentStrategy strategy = getAutoDeploymentStrategy(deploymentMode); strategy.deployResources(deploymentName, deploymentResources, dmnEngine.getDmnRepositoryService()); } }
/** * Unregisters the given dmn engine. */ public static void unregister(DmnEngine dmnEngine) { dmnEngines.remove(dmnEngine.getName()); }
public static void closeDmnEngines() { for (DmnEngine dmnEngine : dmnEngines.values()) { dmnEngine.close(); } dmnEngines.clear(); }
public static void main(String[] args) { try { DmnEngine dmnEngine = DmnEngines.getDefaultDmnEngine(); DataSource dataSource = dmnEngine.getDmnEngineConfiguration().getDataSource(); DatabaseConnection connection = new JdbcConnection(dataSource.getConnection()); Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(connection); database.setDatabaseChangeLogTableName(DmnEngineConfiguration.LIQUIBASE_CHANGELOG_PREFIX + database.getDatabaseChangeLogTableName()); database.setDatabaseChangeLogLockTableName(DmnEngineConfiguration.LIQUIBASE_CHANGELOG_PREFIX + database.getDatabaseChangeLogLockTableName()); if (StringUtils.isNotEmpty(dmnEngine.getDmnEngineConfiguration().getDatabaseSchema())) { database.setDefaultSchemaName(dmnEngine.getDmnEngineConfiguration().getDatabaseSchema()); database.setLiquibaseSchemaName(dmnEngine.getDmnEngineConfiguration().getDatabaseSchema()); } if (StringUtils.isNotEmpty(dmnEngine.getDmnEngineConfiguration().getDatabaseCatalog())) { database.setDefaultCatalogName(dmnEngine.getDmnEngineConfiguration().getDatabaseCatalog()); database.setLiquibaseCatalogName(dmnEngine.getDmnEngineConfiguration().getDatabaseCatalog()); } Liquibase liquibase = new Liquibase("org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml", new ClassLoaderResourceAccessor(), database); liquibase.dropAll(); liquibase.getDatabase().close(); } catch (Exception e) { e.printStackTrace(); } } }
protected static String deployResourceFromAnnotation(DmnEngine dmnEngine, Class<?> testClass, String methodName, Method method, String[] resources) { String deploymentId; LOGGER.debug("annotation @Deployment creates deployment for {}.{}", testClass.getSimpleName(), methodName); if (resources.length == 0) { String name = method.getName(); String resource = getDmnDecisionResource(testClass, name); resources = new String[] { resource }; } DmnDeploymentBuilder deploymentBuilder = dmnEngine.getDmnRepositoryService().createDeployment().name(testClass.getSimpleName() + "." + methodName); for (String resource : resources) { deploymentBuilder.addClasspathResource(resource); } deploymentId = deploymentBuilder.deploy().getId(); return deploymentId; }
protected static void initDmnEngineFromSpringResource(URL resource) { try { Class<?> springConfigurationHelperClass = ReflectUtil.loadClass("org.flowable.dmn.spring.SpringDmnConfigurationHelper"); Method method = springConfigurationHelperClass.getDeclaredMethod("buildDmnEngine", new Class<?>[] { URL.class }); DmnEngine dmnEngine = (DmnEngine) method.invoke(null, new Object[] { resource }); String dmnEngineName = dmnEngine.getName(); EngineInfo dmnEngineInfo = new EngineInfo(dmnEngineName, resource.toString(), null); dmnEngineInfosByName.put(dmnEngineName, dmnEngineInfo); dmnEngineInfosByResourceUrl.put(resource.toString(), dmnEngineInfo); } catch (Exception e) { throw new FlowableException("couldn't initialize dmn engine from spring configuration resource " + resource.toString() + ": " + e.getMessage(), e); } }
/** * 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); } }
@Override public void afterEach(ExtensionContext context) { FlowableDmnTestHelper flowableTestHelper = getTestHelper(context); DmnEngine dmnEngine = flowableTestHelper.getDmnEngine(); String deploymentIdFromDeploymentAnnotation = flowableTestHelper.getDeploymentIdFromDeploymentAnnotation(); if (deploymentIdFromDeploymentAnnotation != null) { DmnTestHelper.annotationDeploymentTearDown(dmnEngine, deploymentIdFromDeploymentAnnotation, context.getRequiredTestClass(), context.getRequiredTestMethod().getName()); flowableTestHelper.setDeploymentIdFromDeploymentAnnotation(null); } dmnEngine.getDmnEngineConfiguration().getClock().reset(); }