Как загрузить конкретное правило (.drl) из веб-приложения Guvnor?

Например, я добавил два правила (rule1.drl и rule2.drl) в Guvnor.

Обычно я могу получить эти правила вместе, создав файл changeset.xml, например:

<change-set ...>
<add>
<resource source='http://localhost/guvnor/org.drools.guvnor.Guvnor/package/name/LATEST.drl' type='DRL' basicAuthentication="enabled" username="username" password="password"  />
</add>
</change-set>

И загрузите changeset.xml по кодам:

KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("Test Agent", kaconf);
kagent.applyChangeSet(ResourceFactory.newClassPathResource("changeset.xml"));
knowledgeBase = kagent.getKnowledgeBase();

Но как я могу получить только конкретное правило? например rule2.drl

Конечно, я могу изменить URL-адрес в changeset.xml на

<resource source='http://localhost/guvnor/org.drools.guvnor.Guvnor/package/name/LATEST/rule2.drl' type='DRL' basicAuthentication="enabled" username="username" password="password"  />

Но я обнаружил, что в файле ответов отсутствует имя пакета и все операторы импорта, например:

package com.packname;
import namespace.EntityA;

person Matthew Lai    schedule 04.05.2011    source источник


Ответы (3)


Когда нам нужно выполнить определенный пакет drl, мы используем разные наборы изменений для каждого пакета / снимка.

Если правила связаны, используйте разные pojos для отдельного правила, потому что вы знаете, что guvnor компилирует все ваши правила из пакета в один большой .drl, это может быть медленным, если у вас есть сотня правил-затем-конец и повторять его с разные экземпляры pojo.

person Hector Mendoza    schedule 12.01.2012

Шаблоны URL-адресов для пакетов и отдельных ресурсов различаются. Для активов (например, DRL) шаблон выглядит следующим образом:

<resource source='http://localhost:9090/drools-guvnor/rest/packages/test/assets/MyRule/source' type='DRL' />
person jammann    schedule 14.03.2012

Мое решение этой проблемы - создать два разных пакета, один для rule1.drl и один для rule2.drl. Итак, моя программа считывает эти два правила двумя разными наборами изменений.

person Matthew Lai    schedule 16.05.2011