В настоящее время мы используем версию Activiti v5.22.0 с программным механизмом процесса, настроенным следующим образом:
public class ProgrammaticProcessEngineConfiguration implements ProcessEngineLookup {
private static final Logger LOGGER = LoggerFactory.getLogger(ProgrammaticProcessEngineConfiguration.class.getCanonicalName());
private ProcessEngine processEngine;
private ManagedThreadFactory managedThreadFactory;
@Override
public ProcessEngine getProcessEngine() {
managedThreadFactory = getThreadFactory();
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
final ManagedAsyncJobExecutor managedJobExecutor = new ManagedAsyncJobExecutor() {
@Override
protected void startExecutingAsyncJobs() {
if (threadFactory == null) {
super.startExecutingAsyncJobs();
} else {
if (threadPoolQueue == null) { threadPoolQueue = new ArrayBlockingQueue<>(queueSize); }
if (executorService == null) {
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, threadPoolQueue, threadFactory) {
@Override
protected void beforeExecute(Thread t, Runnable r) { t.setContextClassLoader(classLoader); }
};
threadPoolExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executorService = threadPoolExecutor;
}
startJobAcquisitionThread();
}
}
};
managedJobExecutor.setThreadFactory(managedThreadFactory);
final CdiJtaProcessEngineConfiguration cdiJtaProcessEngineConfiguration = new CdiJtaProcessEngineConfiguration();
cdiJtaProcessEngineConfiguration.setTransactionManager(getTransactionManager());
processEngine = cdiJtaProcessEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
.setDataSourceJndiName("something").setDatabaseType("something")
.setHistoryLevel(HistoryLevel.NONE)
.setTransactionsExternallyManaged(true).setJobExecutorActivate(true)
.setAsyncExecutorEnabled(true)
.setAsyncExecutorActivate(true)
.setAsyncExecutor(managedJobExecutor)
.setClassLoader(Thread.currentThread().getContextClassLoader())
.buildProcessEngine();
return processEngine;
}
При переходе на v6.0.0 мы хотим, чтобы поведение обратной совместимости для экземпляров процесса поддерживалось, поэтому задаем следующее:
cdiJtaProcessEngineConfiguration.setActiviti5CompatibilityEnabled(true);
Нам нужен механизм процессов для поддержки JTA и CDI.Однако инструкции на странице миграции (https://www.activiti.org/migration) не очень понятны, и я не уверен, как настроить механизм процесса.
Я получаю следующую ошибку: Unsupported process engine configuration
, когда режим совместимости
Кто-нибудь знаком с миграцией activiti на v6.0.0 с использованием CdiJtaProcessEngineConfiguration?
Спасибо