<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 31/07/2011 17:25, Heijink, Hank wrote:
<blockquote
cite="mid:67E60ADC-6E96-44DA-BA40-C7710F633EE5@audible.com"
type="cite">
<div>Aha! I missed the line about the dispose. That makes a lot of
sense. What I don't understand is why the example 3.37 in the
docs would work. If I understand what you're saying, it
shouldn't. <br>
</div>
</blockquote>
It should work, as long as the query is executed as part of the same
execute batch. We have unit tests f or that too somewhere.<br>
<br>
mark<br>
<blockquote
cite="mid:67E60ADC-6E96-44DA-BA40-C7710F633EE5@audible.com"
type="cite">
<div><br>
</div>
<div>Thanks!</div>
<div>Hank<br>
<br>
Sent from my iPhone</div>
<div><br>
On Jul 30, 2011, at 8:27 AM, "Wolfgang Laun" <<a
moz-do-not-send="true" href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>>
wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>StatelessKnowledgeSession.execute(...) executes the
command(s) and <i>finally calls dispose()</i> on the session.
Use a stateful session or a global (filled with a low-salience
rule) or - simply use the getObjects command.<br>
-W<br>
<br>
<div class="gmail_quote">On 29 July 2011 22:47, Heijink, Hank
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:heijink@audible.com">heijink@audible.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px
solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex;
padding-left: 1ex;">
Hi all,<br>
<br>
I'm new to Drools, so please excuse me if I'm asking about
the obvious--it's certainly not obvious to me. The problem
is this: I use a stateless knowledge session where a list
of facts is inserted. The rules that fire create new
facts, and after all the rules have fired, I'd like to
obtain a list of all the facts (the old and the new). The
best way seemed to use a query. I'm using Drools 5.1 on
Linux.<br>
This is part of my .drl file (without the imports):<br>
<br>
rule "create badge"<br>
when<br>
Event ( eventType == EventType.SOME_EVENT_TYPE )<br>
not BadgeState ( identifier == "badge" )<br>
then<br>
insert( new BadgeState("badge") );<br>
end<br>
<br>
query "all badges"<br>
aBadge : BadgeState()<br>
end<br>
<br>
This is the Java code:<br>
<br>
StatelessKnowledgeSession ksession =
StatsKnowledgeBase.getKnowledgeBase().newStatelessKnowledgeSession();<br>
<br>
// Create a list of share events<br>
ArrayList<Event> events = new
ArrayList<Event>();<br>
Date now = new Date();<br>
MobileDevice aDevice = new
MobileDevice("uniqueId", "deviceType");<br>
for (int i = 0; i < 5; i++) {<br>
Event anEvent = new
Event.Builder(now, aDevice, "aCustomer",
EventType.SOME_EVENT_TYPE).build();<br>
events.add(anEvent);<br>
}<br>
<br>
// Create the query for the badges<br>
List<Command> commands = new
ArrayList<Command>();<br>
commands.add(CommandFactory.newInsertElements(events));<br>
commands.add(CommandFactory.newQuery("all
badges", "all badges"));<br>
<br>
// Feed the events into Drools<br>
KnowledgeRuntimeLogger logger =
KnowledgeRuntimeLoggerFactory.newConsoleLogger(ksession);<br>
ExecutionResults results =
ksession.execute(
CommandFactory.newBatchExecution(commands) );<br>
NativeQueryResults queryResults =
(NativeQueryResults)results.getValue("all badges");<br>
<br>
// At this point, queryResults is empty.<br>
<br>
logger.close();<br>
<br>
// Get a list of badges<br>
List<BadgeState> badges = new
ArrayList<BadgeState>();<br>
for (Iterator<QueryResultsRow> i =
queryResults.iterator(); i.hasNext(); ) {<br>
QueryResultsRow result = i.next();<br>
BadgeState obj =
(BadgeState)result.get("aBadge");<br>
badges.add(obj);<br>
}<br>
<br>
The logger shows me that the BadgeState object is created,
but the query returns an empty list. I've searched the
documentation, which suggests that I'm doing it right (<a
moz-do-not-send="true"
href="http://drools.herod.net/drools-expert/html/ch03.html#d0e1956">http://drools.herod.net/drools-expert/html/ch03.html#d0e1956</a>,
example 3.37), the archives of this mailinglist, and the
web, so far without success.<br>
<br>
Clearly, I'm missing something, and I have the nagging
feeling that it's something simple...<br>
<br>
Any help is much appreciated!<br>
<br>
Best,<br>
Hank<br>
<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a moz-do-not-send="true"
href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>rules-users mailing list</span><br>
<span><a moz-do-not-send="true"
href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a></span><br>
<span><a moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a></span><br>
</div>
</blockquote>
<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>