<div> </div>
<div>Hi ,</div>
<div> </div>
<div>We have been using drools 4.0 in our application. All the rules are loaded using RuleBase and PackageBuilder.</div>
<div>The application is pretty old, and has got lot of work into it.</div>
<div> </div>
<div>Now we want to use Drools 5.0 CEP (Fusion) along with the old rules (based on drools 4.0).</div>
<div> </div>
<div>But the problem , is, how can we hook-up the old "RuleBase" based sessions with the "KnowledgeBase" sessions of Drools 5.0??</div>
<div> </div>
<div>The use case is:</div>
<div> </div>
<div>1.Fact enters the system ( asserted using Rulebase), is enriched by rules (Based on Drools 4.0)</div>
<div>2.The same fact will be treated as EVENT (for CEP), for further correlation of Events (facts) using KnowledgeBase as proposed i Drools 5.0.</div>
<div> </div>
<div>I am facing difficulty in hooking up the two sessions. Is there an way??</div>
<div> </div>
<div>Following is the test i did. ( <a href="http://drools.pastebin.com/m7d6c613b">http://drools.pastebin.com/m7d6c613b</a>)</div>
<div> </div>
<div>Can anybody help??</div>
<div> </div>
<div>IN MY JAVA CODE</div>
<div>
<div class="syntax">
<div class="text" style="FONT-FAMILY: monospace">
<ol>
<li class="li1 ln-xtra">
<div class="de1">//load up the rulebase</div></li>
<li class="li1">
<div class="de1"> RuleBase ruleBase = readRule(); // Read and load rules frm a packagebuilder()</div></li>
<li class="li1">
<div class="de1"> StatefulSession rBaseSession = ruleBase.newStatefulSession();</div></li>
<li class="li1">
<div class="de1"> Message message = new Message();</div></li>
<li class="li1">
<div class="de1"> message.setMessage( "Hello World" );</div></li>
<li class="li1">
<div class="de1"> message.setStatus( Message.HELLO );</div></li>
<li class="li1">
<div class="de1"> rBaseSession.insert( message );</div></li>
<li class="li1">
<div class="de1"> </div></li>
<li class="li1">
<div class="de1"> @@//Load KnoweledgeBase </div></li>
<li class="li1">
<div class="de1"> KnowledgeBase kbase = loadRuleBase(); // I set options for EventProcessing in loadRuleBase()</div></li>
<li class="li1">
<div class="de1"> KnowledgeSessionConfiguration conf = </div></li>
<li class="li1">
<div class="de1"> KnowledgeBaseFactory.newKnowledgeSessionConfiguration();</div></li>
<li class="li1">
<div class="de1"> ((SessionConfiguration) conf).setClockType( ClockType.REALTIME_CLOCK );</div></li>
<li class="li1">
<div class="de1"> StatefulKnowledgeSession kbaseSession = kbase.newStatefulKnowledgeSession(conf,null);</div></li>
<li class="li1">
<div class="de1"> </div></li>
<li class="li1">
<div class="de1"> rBaseSession.fireAllRules(); </div></li>
<li class="li1">
<div class="de1"> </div></li></ol></div>
<p class="de1"><font face="Courier New"></font> </p>
<p class="de1"><font face="Courier New">IN MY RULE FILE</font></p>
<ol>
<li class="li1">
<div class="de1">rule "Hello World"</div></li>
<li class="li1">
<div class="de1"> when</div></li>
<li class="li1">
<div class="de1"> $m : Message( status == Message.HELLO, message : message )</div></li>
<li class="li1">
<div class="de1"> then</div></li>
<li class="li1">
<div class="de1"> System.out.println( message ); </div></li>
<li class="li1">
<div class="de1"> Message message2 = new Message();</div></li>
<li class="li1">
<div class="de1"> message2.setMessage( "Hello World" );</div></li>
<li class="li1">
<div class="de1"> message2.setStatus( Message.HELLO );</div></li>
<li class="li1">
<div class="de1"> </div></li>
<li class="li1 ln-xtra">
<div class="de1"> WorkingMemoryEntryPoint eventsignaturestream = drools.getEntryPoint("EVENT SIGNATURE STREAM") ; // I Get a NULLPOINTER EXCEPTION here</div></li>
<li class="li1">
<div class="de1"> eventsignaturestream.insert(message2);</div></li>
<li class="li1">
<div class="de1"> </div></li>
<li class="li1">
<div class="de1">end</div></li></ol></div></div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>