@Override public TaskService newTaskService() { // all to reuse an already given instance of task service instead of producing new one TaskService providedTaskService = (TaskService) ((SimpleRuntimeEnvironment) runtimeEnvironment) .getEnvironmentTemplate().get("org.kie.api.task.TaskService"); if (providedTaskService != null) { return providedTaskService; } EntityManagerFactory emf = ((SimpleRuntimeEnvironment)runtimeEnvironment).getEmf(); if (emf != null) { HumanTaskConfigurator configurator = HumanTaskServiceFactory.newTaskServiceConfigurator() .environment(runtimeEnvironment.getEnvironment()) .entityManagerFactory(emf) .userGroupCallback(runtimeEnvironment.getUserGroupCallback()) .userInfo(runtimeEnvironment.getUserInfo()); TaskService internalTaskService = configurator.getTaskService(); return internalTaskService; } else { return null; } }
@Override protected void configureHumanTaskConfigurator(HumanTaskConfigurator configurator) { Environment environment = EnvironmentFactory.newEnvironment(); environment.set(EnvironmentName.TRANSACTION_MANAGER, new CustomTransactionManager()); super.configureHumanTaskConfigurator(configurator.environment(environment)); }
protected void configureHumanTaskConfigurator(HumanTaskConfigurator configurator) { configurator .environment(getEnvironment(identityProvider)) .entityManagerFactory( emf ) .userGroupCallback( safeGet( userGroupCallback ) )
@Bean @ConditionalOnMissingBean(name = "runtimeDataService") public RuntimeDataService runtimeDataService(EntityManagerFactory entityManagerFactory, UserGroupCallback userGroupCallback, UserInfo userInfo, TransactionalCommandService transactionalCommandService, IdentityProvider identityProvider, DeploymentService deploymentService) { Environment environment = EnvironmentFactory.newEnvironment(); environment.set(EnvironmentName.TRANSACTION_MANAGER, transactionManager); environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory); TaskService taskService = HumanTaskServiceFactory.newTaskServiceConfigurator() .entityManagerFactory(entityManagerFactory) .userGroupCallback(userGroupCallback) .userInfo(userInfo) .environment(environment) .getTaskService(); // build runtime data service RuntimeDataServiceImpl runtimeDataService = new RuntimeDataServiceImpl(); runtimeDataService.setCommandService(transactionalCommandService); runtimeDataService.setIdentityProvider(identityProvider); runtimeDataService.setUserGroupCallback(userGroupCallback); runtimeDataService.setTaskService(taskService); runtimeDataService.setTaskAuditService(TaskAuditServiceFactory.newTaskAuditServiceConfigurator() .setTaskService(taskService) .getTaskAuditService()); ((KModuleDeploymentService) deploymentService).setRuntimeDataService(runtimeDataService); ((KModuleDeploymentService) deploymentService).addListener(runtimeDataService); return runtimeDataService; }
@Override public TaskService newTaskService() { // all to reuse an already given instance of task service instead of producing new one TaskService providedTaskService = (TaskService) ((SimpleRuntimeEnvironment) runtimeEnvironment) .getEnvironmentTemplate().get("org.kie.api.task.TaskService"); if (providedTaskService != null) { return providedTaskService; } EntityManagerFactory emf = ((SimpleRuntimeEnvironment)runtimeEnvironment).getEmf(); if (emf != null) { HumanTaskConfigurator configurator = HumanTaskServiceFactory.newTaskServiceConfigurator() .environment(runtimeEnvironment.getEnvironment()) .entityManagerFactory(emf) .userGroupCallback(runtimeEnvironment.getUserGroupCallback()) .userInfo(runtimeEnvironment.getUserInfo()); TaskService internalTaskService = configurator.getTaskService(); return internalTaskService; } else { return null; } }
@Override public Object getObject() throws Exception { if (instance == null) { HumanTaskConfigurator configurator = HumanTaskServiceFactory.newTaskServiceConfigurator(); configurator .entityManagerFactory(entityManagerFactory) .userGroupCallback(userGroupCallback) .userInfo(userInfo); if (listeners != null) { for(TaskLifeCycleEventListener listener : listeners) { configurator.listener(listener); } } Environment environment = EnvironmentFactory.newEnvironment(); environment.set(EnvironmentName.TRANSACTION_MANAGER, transactionManager); environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory); if (entityManager != null) { environment.set(EnvironmentName.APP_SCOPED_ENTITY_MANAGER, entityManager); environment.set(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER, entityManager); environment.set("IS_JTA_TRANSACTION", false); environment.set("IS_SHARED_ENTITY_MANAGER", true); } configurator.environment(environment); instance = configurator.getTaskService(); } return instance; }
@Override public Object getObject() throws Exception { if (instance == null) { HumanTaskConfigurator configurator = HumanTaskServiceFactory.newTaskServiceConfigurator(); configurator .entityManagerFactory(entityManagerFactory) .userGroupCallback(userGroupCallback) .userInfo(userInfo); if (listeners != null) { for(TaskLifeCycleEventListener listener : listeners) { configurator.listener(listener); } } Environment environment = EnvironmentFactory.newEnvironment(); environment.set(EnvironmentName.TRANSACTION_MANAGER, transactionManager); environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory); if (entityManager != null) { environment.set(EnvironmentName.APP_SCOPED_ENTITY_MANAGER, entityManager); environment.set(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER, entityManager); environment.set("IS_JTA_TRANSACTION", false); environment.set("IS_SHARED_ENTITY_MANAGER", true); } configurator.environment(environment); instance = configurator.getTaskService(); } return instance; }