protected InternalTaskService newTaskService(TaskServiceFactory factory) { InternalTaskService internalTaskService = (InternalTaskService) factory.newTaskService(); if (internalTaskService instanceof CommandBasedTaskService) { ((CommandBasedTaskService) internalTaskService).getEnvironment().set(EnvironmentName.DEPLOYMENT_ID, this.getIdentifier()); ((CommandBasedTaskService) internalTaskService).getEnvironment().set(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, ((SimpleRuntimeEnvironment)environment).getEnvironmentTemplate().get(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES)); } return internalTaskService; }
@Override protected TaskServiceFactory getTaskServiceFactory(RuntimeEnvironment environment) { // if there is an implementation of TaskServiceFactory in the environment then use it TaskServiceFactory taskServiceFactory = (TaskServiceFactory) ((SimpleRuntimeEnvironment)environment).getEnvironmentTemplate() .get("org.kie.internal.runtime.manager.TaskServiceFactory"); if (taskServiceFactory != null) { return taskServiceFactory; } try { taskServiceFactory = taskServiceFactoryInjected.get(); // since this is CDI let's make sure it has all dependencies met taskServiceFactory.newTaskService().toString(); } catch (Exception e) { taskServiceFactory = new LocalTaskServiceFactory(environment); } return taskServiceFactory; } }
@Override public void close() { try { if (taskServiceFactory instanceof CDITaskServiceFactory) { // if it's CDI based (meaning single application scoped bean) we need to unregister context removeRuntimeFromTaskService((InternalTaskService) taskServiceFactory.newTaskService()); } } catch(Exception e) { // do nothing } super.close(); factory.close(); }
protected InternalTaskService newTaskService(TaskServiceFactory factory) { InternalTaskService internalTaskService = (InternalTaskService) factory.newTaskService(); if (internalTaskService instanceof CommandBasedTaskService) { ((CommandBasedTaskService) internalTaskService).getEnvironment().set(EnvironmentName.DEPLOYMENT_ID, this.getIdentifier()); ((CommandBasedTaskService) internalTaskService).getEnvironment().set(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, ((SimpleRuntimeEnvironment)environment).getEnvironmentTemplate().get(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES)); } return internalTaskService; }
InternalTaskService internalTaskService = (InternalTaskService) taskServiceFactory.newTaskService();