Как создать сценарии sql для развертывания определения процесса в jBPM?

Я изучаю интеграцию jBPM с моим текущим проектом, пока все хорошо, просто включив банку jpdl в ухо и используя модуль spring 0.8 jbpm, однако у меня должен быть разумный способ перейти от моих изменений к определение процесса в конструкторе для развертывания в производстве.

Путь должен повторяться в нескольких средах (разработка, много тестов, промежуточная и затем рабочая) и в идеале должен выполняться, когда сама система не работает.

В идеале я бы упаковал все определение в виде сценария SQL, однако я не видел никакого инструмента для перевода из processdefinition.xml в sql, и сборка всего этого вручную кажется слишком сложной и подверженной ошибкам.

У кого-нибудь еще есть опыт здесь?

Система работает на websphere 6.1, и я предпочитаю избегать выполнения java-кода во время миграции (хотя выполнение java-кода для создания артефактов, которые затем можно использовать во время миграции, допустимо)


person Community    schedule 05.11.2008    source источник


Ответы (3)


Если вы не хотите идти по пути .par, легко написать простой код Java для развертывания новой версии определения процесса в вашей базе данных. Что-то типа

JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("jbpm.cfg.xml"));
ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(newPdStream);
JbpmContext context = jbpmConfiguration.createJbpmContext();
context.getGraphSession().deployProcessDefinition(processDefinition);

Вам понадобится hibernate.properties или hibernate.cfg.xml для соответствующей базы данных в пути к классам.

Что хорошо в этом способе, так это то, что все элементы управления версиями выполняются за вас автоматически. Раньше мы использовали хак, когда мы модифицировали определение процесса (в основном игнорируя управление версиями), но это был большой беспорядок для экземпляров процесса, которые были активны в то время.

person Harry Lime    schedule 13.11.2008

Предложение обходного пути: развертывание и перехват запросов sql

Я не пробовал это, но я бы предложил попробовать использовать развертывание сервлета развертывания jBPM-console или

context.getGraphSession().deployProcessDefinition(processDefinition);

как предложил Шьямсундар

И

регистрируйте обновления sql с помощью LogDriver: http://rkbloom.net/logdriver/logdriver.tar.gz

person Balint Pato    schedule 02.12.2008