Миграция модуля интеграции Liferay и Flowable с версии Flowable 6.1.2 на версию 6.2.1

В данный момент активно тестируется и готовится к релизу модуль интеграции портала Liferay и движка бизнес-процессов Flowable - https://github.com/emdev-limited/flowable-engine/tree/flowable-emdev. Этот релиз будет основан на версии Flowable 6.1.2. Параллельно нами запущен следующий процесс - миграция на версию Flowable 6.2.1. Из функциональных отличий по сравнению с 6.1.2 - это добавление поддержки CMMN. Кроме этого проект претерпел много изменений с точки зрения модуляризации - в рамках подготовки к Java 9. Описание релизов можно прочитать тут и тут

В рамках данного блога хотел упомянуть те проблемы, с которыми столкнулись при миграции на Flowable 6.2.1. Как сказано в описании релизов - в проекте произведён большой рефакторинг в части перекомпановки кода и переименовании пакетов. В OSGi среде это всегда головная боль, поэтому пришлось скрупулёзно править сломавшиеся импорты и искать недостающие экспорты. Но проблемой, которая отняла много времени оказалась следующая. Скрипты БД были декомпозированы из 1-го файла в разные файлы по разным модулям. Намерено или случайно разработчики Flowable оставили 2 пакета с одинаковым именем в разных модулях: https://github.com/flowable/flowable-engine/tree/flowable-6.2.1/modules/flowable-engine-common/src/main/resources/org/flowable/db и https://github.com/flowable/flowable-engine/tree/flowable-6.2.1/modules/flowable-engine/src/main/resources/org/flowable/db. По этой причине не проходил импорт и не создавалась БД. Пришлось вносить изменения в имена пакетов движка: https://github.com/emdev-limited/flowable-engine/tree/flowable-6.2.1-emdev/modules/flowable-engine-common/src/main/resources/org/flowable/db/common.

30.01.2018