У меня странное поведение.
Я использую Seam и JBPM.
Когда я говорю:
ProcessDefinition templateDefinition = Jbpm.instance().getProcessDefinitionFromResource(ap.getJpdl());
//This will return Enkeltanledning.jpdl.xml
templateDefinition.getVersion();
Всегда возвращает -1.
Однако, когда я выбираю из базы данных, я получаю версию 2.
mysql> select * from JBPM_PROCESSDEFINITION;
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+
| ID_ | CLASS_ | NAME_ | DESCRIPTION_ | VERSION_ | ISTERMINATIONIMPLICIT_ | STARTSTATE_ |
+-----+--------+-----------------------------+--------------+----------+------------------------+-------------+
| 1 | P | Enkeltanledning | NULL | 1 | | 1 |
| 2 | P | Enkeltanledning | NULL | 2 | | 31 |
Теперь я нашел эту ссылку:
jpdl
И это говорит:
Unnamed process definitions will always have version number -1.
Тем не менее, у меня есть определения процессов, не названные, и когда я отлаживаю templateDefinition, я получаю правильное имя Enkeltanledning , поэтому я знаю, что загружен правильный файл jpdl.
Итак, мой вопрос: почему мой код всегда возвращает -1 в версии?
Причина, по которой мне нужна верная версия, заключается в том, что я делаю некоторые проверки, чтобы убедиться, что у меня правильная версия, в противном случае я буду повторно развертывать ProcessDefinition, и, поскольку я всегда получаю -1, он всегда будет повторно развертываться.