<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">The ResourceChangeScanner will consider
      a resource modified if last modification &gt; last read.<br>
      If your resource is a URL resource pointing to a file, the
      implementation (version 5.6, at least)<br>
      will delegate to File.lastModified().<br>
      Make sure that whenever you (re)deploy your PKGs, the
      lastModified() timestamp is updated<br>
      <br>
      On 03/13/2014 12:47 PM, Peach Wyss wrote:<br>
    </div>
    <blockquote
      cite="mid:1394711239.34011.YahooMailNeo@web141102.mail.bf1.yahoo.com"
      type="cite">
      <div style="color:#000; background-color:#fff;
        font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial,
        Lucida Grande, sans-serif;font-size:10pt">Hy all<br>
        <br>
        We're having the following situation in our application:<br>
        <br>
        ChangeSet:<br>
        &lt;change-set xmlns='<a class="moz-txt-link-freetext" href="http://drools.org/drools-5.0/change-set">http://drools.org/drools-5.0/change-set</a>'
        xmlns:xs='<a class="moz-txt-link-freetext" href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>'<br>
        &nbsp; xs:schemaLocation='<a class="moz-txt-link-freetext" href="http://drools.org/drools-5.0/change-set">http://drools.org/drools-5.0/change-set</a>
<a class="moz-txt-link-freetext" href="http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd">http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd</a>'&gt;<br>
        &nbsp; &lt;add&gt;<br>
        &nbsp;&nbsp;&nbsp; &lt;resource source='<a class="moz-txt-link-freetext" href="file:rules/rules.pkg">file:rules/rules.pkg</a>' type='PKG' /&gt;<br>
        &nbsp; &lt;/add&gt;<br>
        &lt;/change-set&gt;<br>
        <br>
        <br>
        Code:<br>
        ...<br>
        // Build initial KnowledgeBase<br>
        KnowledgeBuilderConfiguration kbuilderConfig =
        KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,
        classloaders);<br>
        knowledgeBuilder =
        KnowledgeBuilderFactory.newKnowledgeBuilder(kbuilderConfig);<br>
        knowledgeBuilder.add(resource, resourceType); //Resource:
        URL-Resource (Patch to ChangeSet), ResourceType: ChangeSet<br>
        Collection&lt;KnowledgePackage&gt; knowledgePackages =
        knowledgeBuilder.getKnowledgePackages();<br>
        knowledgeBase.addKnowledgePackages(knowledgePackages);<br>
        <br>
        // Create and configure Knowledge Agent<br>
        KnowledgeAgentConfiguration knowledgeAgentConfig =
        KnowledgeAgentFactory.newKnowledgeAgentConfiguration();<br>
        knowledgeAgentConfig.setProperty("drools.agent.useKBaseClassLoaderForCompiling",
        "true");<br>
        knowledgeAgentConfig.setProperty("drools.agent.newInstance",
        "false");<br>
        knowledgeAgent =
        KnowledgeAgentFactory.newKnowledgeAgent("MyAgent",
        knowledgeBase, knowledgeAgentConfig);<br>
        knowledgeAgent.addEventListener(new
        KnowledgeAgentEventListener() {...} // Just for debugging
        purposes<br>
        knowledgeAgent.monitorResourceChangeEvents(true);<br>
        knowledgeAgent.applyChangeSet(resource);<br>
        <br>
        // Configure Notification and Scanner<br>
        ResourceChangeScannerConfiguration resourceChangeScannerConfig =
        ResourceFactory<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.getResourceChangeScannerService().newResourceChangeScannerConfiguration();<br>
        resourceChangeScannerConfig.setProperty("drools.resource.scanner.interval",
        "10");<br>
ResourceFactory.getResourceChangeScannerService().configure(resourceChangeScannerConfig);<br>
        ResourceFactory.getResourceChangeNotifierService().start();<br>
        ResourceFactory.getResourceChangeScannerService().start();<br>
        <br>
        // Get KnowledgeBase from Agent<br>
        knowledgeBase = knowledgeAgent.getKnowledgeBase();<br>
        ...<br>
        <br>
        <br>
        When i replace the rules.pkg with a new package (exported from
        guvnor with a newer "Date Modified"), the Knowledge-Base is
        newly generated. When I replace the pkg with the Package from
        the previous Version (older "Date modified"), nothing happens
        (despite the pkg has changed).<br>
        <br>
        Question:<br>
        Does the agent only updates the Knowledge-Base, when the
        replaced pkg-File has a newer "Date Modified"?<br>
        In our scenario, the expected behaviour would be that the Agent
        updates the Knowledge-Base everytime the pkg-file changes, so
        that we can switch between newer and older versions of the
        pkg-file. Any idea how to achieve this?<br>
        <br>
        Thanks for your help.<br>
        <br>
        Kind regards,<br>
        Peter<br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
    </blockquote>
    <br>
  </body>
</html>