<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">In the RHS of a rule one can use either an &#8220;update&#8221; or &#8220;modify&#8221; block to notify Drools that a fact has changed. &nbsp;In the Java API for 5.5.0 Final, I can call StatefulKnowledgeSession.update(factHandle, object) to update a fact handle with
 an object.&nbsp; However, there&#8217;s no complementary StatefulKnowledgeSession.modify method.&nbsp; Is there a way to get modify&#8217;s property-reactive functionality through the API?&nbsp; That is, can Java code update fact objects and then inform Drools that only certain properties
 have been changed?&nbsp; This capability would allow just the rules that reference those properties to be reevaluated, unlike update, which causes all the rules that reference the Java class to be reevaluated.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">There is a CommandFactory.newModify method, but the <a href="http://docs.jboss.org/drools/release/5.5.0.Final/knowledge-api-javadoc/org/drools/command/CommandFactory.html#newModify(org.drools.runtime.rule.FactHandle,%20java.util.List)">
JavaDoc</a> has no explanatory text.&nbsp; I explored the source to understand how this is used, and it appears that it is meant to be passed a list of Setter objects that contain literal bean property names and string values which are then dynamically interpreted
 by MVEL.&nbsp; It might be possible to use this in a pinch, but it seems a rather roundabout way to update an object that the code can access directly.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Tom<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>