If there is a package header on a DRL file it defines a package the same way it does for a Java source file. Also, visibility of classes works the same way: if a class is in the same package as the DRL, you don't have to import it; otherwise you have to.<br>
<br>-W<br><br><br><div class="gmail_quote">2011/3/26 saurabh maheshwari <span dir="ltr"><<a href="mailto:maheshwari.saurabh03@gmail.com">maheshwari.saurabh03@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi sir ,<br><br>I am facing one issue regarding dyamic class cretion and inserting it's object into drools memory.<br><br> i have created a dyanmic class test and loads it like that <br><br> MyClassLoader clr =new MyClassLoader(Obj.getClass().getClassLoader());<br>
Obj.clazz= clr.loadClass("test");<br><br>//Drools Configuration<br><br> KnowledgeBuilderConfiguration kbc = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,clazz.getClassLoader());<br>
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbc);<br> String path = System.getProperty("user.dir");<br> StringBuilder drlFile = new StringBuilder(path);<br>
drlFile.append(System.getProperty("file.separator")).append("myRule.drl");<br> kbuilder.add(ResourceFactory.newFileResource(drlFile.toString()), ResourceType.DRL);<br> if (kbuilder.hasErrors())<br>
{<br> System.out.println(kbuilder.getErrors());<br> return;<br> }<br><br> KnowledgeBaseConfiguration kbaseConfig =KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null, clazz.getClassLoader());<br>
kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);<br> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br> ksession = kbase.newStatefulKnowledgeSession();<br><br>
<br>Now my drl file is like that <br><br><br>package dyanmicclass;<br><br>dialect "java"<br>rule mytest1<br> when <br> $tx : test($pp : name )<br> then<br> globalArrayList.add($tx);<br> System.out.println($tx );<br>
end<br><br><br>this is giving me a error <br>KnowledgeBuilder created.<br>Unable to generate rule invoker. : [Rule name='mytest1']<br> dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:886) : test cannot be resolved to a type<br>
dyanmicclass/Rule_mytest1_0DefaultConsequenceInvoker.java (22:898) : test cannot be resolved to a type<br>Rule Compilation error : [Rule name='mytest1']<br> dyanmicclass/Rule_mytest1_0.java (6:214) : txn cannot be resolved to a type<br>
<br><br>but while i am doing like that <br><br>dialect "java"<br>rule mytest1<br> when <br> $tx : test($pp : name )<br> then<br> System.out.println($pp );<br>end<br><br>it gives no error .<br><br>
I am not able to find the cause of the problem .<br>am i wrong in any configuaration.<br><br>Thanks <br><font color="#888888">Saurabh<br><br><br><br><br><br><br>
</font><br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>