<br><font size=2 face="sans-serif">Pritham,</font>
<br>
<br><font size=2 face="sans-serif">I've experienced this issue before as
well. It has to do with the way that the KnowledgeAgent subscribes
to resources. I believe behind the scenes the resources are loaded
in an arbitrary order. There is a JIRA bug report already filed:</font>
<br>
<br><a href="https://jira.jboss.org/jira/browse/JBRULES-2377"><font size=2 face="sans-serif">https://jira.jboss.org/jira/browse/JBRULES-2377</font></a>
<br>
<br><font size=2 face="sans-serif">Hope this helps,</font>
<br><font size=2 face="sans-serif"><br>
</font><font size=3>Steve</font>
<br>
<br><tt><font size=2>rules-users-bounces@lists.jboss.org wrote on 01/26/2010
01:07:29 PM:<br>
<br>
> [image removed] </font></tt>
<br><tt><font size=2>> <br>
> [rules-users] KnowledgeAgent doesn't load dsl files and dslr file
<br>
> from a change-set correctly</font></tt>
<br><tt><font size=2>> <br>
> Pritham </font></tt>
<br><tt><font size=2>> <br>
> to:</font></tt>
<br><tt><font size=2>> <br>
> rules-users</font></tt>
<br><tt><font size=2>> <br>
> 01/26/2010 01:10 PM</font></tt>
<br><tt><font size=2>> <br>
> Sent by:</font></tt>
<br><tt><font size=2>> <br>
> rules-users-bounces@lists.jboss.org</font></tt>
<br><tt><font size=2>> <br>
> Please respond to Rules Users List</font></tt>
<br><tt><font size=2>> <br>
> <br>
> I have a folder in classpath:<br>
> <br>
> dsl/global.dsl<br>
> rules/section-A.dslr<br>
> rules/section-A/page-1.dslr<br>
> <br>
> I create a knowledge base like this:<br>
> <br>
> public KnowledgeBase createKnowledgeBase() throws DroolsParserException,<br>
> IOException {<br>
> <br>
> KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory<br>
> .newKnowledgeBuilder();<br>
> <br>
> knowledgeBuilder.add(ResourceFactory<br>
> .newClassPathResource("dsl/global.dsl"),<br>
> ResourceType.DSL);<br>
> knowledgeBuilder.add(ResourceFactory<br>
> .newClassPathResource("rules/section-A.dslr"),<br>
> ResourceType.DSLR);<br>
> knowledgeBuilder.add(ResourceFactory<br>
> .newClassPathResource("rules/section-A/page-1.dslr"),<br>
> ResourceType.DSLR);
<br>
> <br>
> if (knowledgeBuilder.hasErrors()) {<br>
> throw new RuntimeException(knowledgeBuilder.getErrors().toString());<br>
> }<br>
> <br>
> KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();<br>
> <br>
> knowledgeBase.addKnowledgePackages(knowledgeBuilder.getKnowledgePackages());<br>
> <br>
> return knowledgeBase;<br>
> }<br>
> <br>
> // code<br>
> knowledgeBase = createKnowledgeBase();<br>
> session = knowledgeBase.newStatefulKnowledgeSession();<br>
> // insert facts<br>
> session.fireAllRules();<br>
> session.dispose(); <br>
> <br>
> The above code works and I can get a unit test to work that processes
rules<br>
> accordingly. I can see my dslr converting to a drl using the "drl
viewer"<br>
> correctly (provided I temporarily place the dsl file in the same location<br>
> since expander doesn't accept a relative path).<br>
> <br>
> The problem, however is when I use a change-set.xml and a KnowledgeAgent,<br>
> things don't work <br>
> <br>
> code for loading via knowledgeAgent<br>
> <br>
> public static KnowledgeBase loadKnowledgeBase() throws<br>
> DroolsParserException, IOException {<br>
> agent = KnowledgeAgentFactory.newKnowledgeAgent("msll
agent");<br>
> <br>
> agent.applyChangeSet(ResourceFactory.newClassPathResource("change-set.xml"));<br>
> <br>
> return agent.getKnowledgeBase();<br>
> } <br>
> <br>
> <br>
> <change-set xmlns='http://drools.org/drools-5.0/change-set'<br>
> xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'<br>
> xs:schemaLocation='http://drools.org/drools-5.0/change-set.xsd'<br>
> ><br>
> <add><br>
> <resource source='classpath:dsl/' type='DSL'
/> <br>
> <resource source='classpath:rules/'
type='DSLR' /> <br>
> <resource source='classpath:rules/section-A/'
type='DSLR' /><br>
> </add><br>
> </change-set><br>
> <br>
> <br>
> I get the following generic drools errors:<br>
> ERR 103] Line 4:0 rule 'rule_key' failed predicate:<br>
> {(validateIdentifierKey(DroolsSoftKeywords.RULE))}? in rule[7,0]:
[ERR 101]<br>
> Line 7:0 no viable alternative at input 'import' in rule Con in rule<br>
> attribute<br>
> ...<br>
> ...<br>
> <br>
> The rules are same, folder location is the same. I believe that drools
has a<br>
> problem resolving path (expander global.dsl) from the dslr file when
using a<br>
> KnowlegeAgent since in the earlier strategy, one could build a dsl
into the<br>
> knowledgeBuilder directly from the classpath.<br>
> <br>
> Pl suggest.<br>
> -- <br>
> View this message in context: </font></tt><a href="http://n3.nabble.com/KnowledgeAgent-"><tt><font size=2>http://n3.nabble.com/KnowledgeAgent-</font></tt></a><tt><font size=2><br>
> doesn-t-load-dsl-files-and-dslr-file-from-a-change-set-correctly-<br>
> tp139702p139702.html<br>
> Sent from the Drools - User mailing list archive at Nabble.com.<br>
> _______________________________________________<br>
> rules-users mailing list<br>
> rules-users@lists.jboss.org<br>
> </font></tt><a href="https://lists.jboss.org/mailman/listinfo/rules-users"><tt><font size=2>https://lists.jboss.org/mailman/listinfo/rules-users</font></tt></a><tt><font size=2><br>
</font></tt>