Hi,

I would like to ask for help with setting up drools-server with Guvnor. I am using version 5.1.1 of both.

I am trying to set up an instance of drools-server in Tomcat that periodically loads new updates of packages published in Guvnor (both drools-server and Guvnor run in the same instance of Tomcat).

My change set definition is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<change-set xmlns='http://drools.org/drools-5.0/change-set'
  xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
  xs:schemaLocation='http://drools.org/drools-5.0/change-set
  http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
  <add>
    <resource source='http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/<one of my packages>/LATEST'
      type='PKG' basicAuthentication="enabled" username="<username>" password="" />
    <resource source="http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/<another of my packages>/LATEST"
      type="PKG" basicAuthentication="enabled" username="<username>" password="" />
  </add>
</change-set>

My knowledge-services.xml configuration is as follows (based on the unit test examples highlighted in http://article.gmane.org/gmane.comp.java.drools.user/20992/match=drools+spring):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:drools="http://drools.org/schema/drools-spring"      
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                           http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd">

  <drools:resource-change-scanner id="s1" interval="5" />

  <drools:execution-node id="node1" />

  <drools:ksession id="ksession1" type="stateless" kbase="kbase1" node="node1"/>

  <drools:kbase id="kbase1" node="node1" />

  <drools:kagent id="kagent1" kbase="kbase1">
    <drools:resources>
      <drools:resource type="CHANGE_SET" source="classpath:changeset.xml" />
    </drools:resources>
  </drools:kagent>
 
</beans>

On loading drools-server, the resources listed in the change set are loaded and available.

The problem is that when a new package built and published in Guvnor, drools-server does not detect this and update itself. The effect is the same as if a KnowledgeAgent were used locally and

  ResourceFactory.getResourceChangeNotifierService().start();
  ResourceFactory.getResourceChangeScannerService().start();

were not called. This leads me to the assumption that drools-server does not start these services by default.

My question is then can/how do I configure drools-server to start these services such that it will update new changes from Guvnor automatically?


Thanks a lot for any help you can offer,

Cheers,

Graham.