论坛首页 Java企业应用论坛

drools 4.0M3发布标注

浏览 2443 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-09  
 

<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">4.0.0</st1:chsdate>.MR3ReleaseNotes<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>


API/语言变更<o:p></o:p>

assert 将变成 insert <o:p></o:p>

  • 为了避免常数关键字与“assert”发生冲突,绝大多数语言都支持insert<o:p></o:p>
  • 将在drlworking memory api中一起改变<o:p></o:p>

modify 变成 update <o:p></o:p>

  • workingMemory.modify(FactHandle?, Object)将被workingMemory.update(FactHandle?, Object)代替,在drl中将modify改为update<o:p></o:p>
  • 这个方法现在仅用于阴影对象,它用来让引擎知道一个扩展对象已经被更新,并且在内部缓存中更新它。<o:p></o:p>
  • 避免关键字冲突,在MVEL中使用了modify<o:p></o:p>

insertObject (assertObject), retractObject updateObject 变成 insert, retract and update <o:p></o:p>

  • Object部分看起来是多余的,应该删除它,特别是我们开始支持无对象的fact类型。<o:p></o:p>
  • Drlworking memory api将会使用同样的函数名称<o:p></o:p>

增加新的 WorkingMemory modifyRetract modifyAssert 方法<o:p></o:p>

  • 允许非阴影fact对象<o:p></o:p>
  • 当不使用阴影fact(虽然将和阴影fact一起工作),你不能调用‘update’或者过去称为“modify”,因为我们需要知道字段的旧值,这样我们可以从working memory中移除它。仅有的安全办法是首先删除对象,然后设置它。无论怎样,使用这样的api为新的fact处理增加了额外的工作和结果。modifyRetract modifyAssert现在可以一起用来模仿在非阴影fact对象上的修改,分两个步骤。首先调用modifyRetract改变字段的值,然后调用modifyAssert<o:p></o:p>
  • MVEL有好办法做这个:modify ( person ) { age += 1, location = "london" },这里实际发生的事情是首先调用modifyRetract然后通过Set方法改变属性值,接着调用modifyAssert<o:p></o:p>

核心与编译器<o:p></o:p>

JBRULES-231 – 增加"not contains" "not matches"约束,以支持加入语言中的相应操作。<o:p></o:p>

JBRULES-315 – 支持符号和嵌套的存取,如下:<o:p></o:p>

Person( address'business'?.phone[0].areaCode == $country.area'south'?.code ) <o:p></o:p>

JBRULES-500 – ||”逻辑连接符现在可以在字段以及任何表达式嵌套级别中使用。例:: Person( ( age ( > 20 && < 30) || (>40 && <50) && location=="<st1:city w:st="on">atlanta</st1:city>" ) || ( age > 20 && location=="Seatle" ) || location == "<st1:place w:st="on"><st1:city w:st="on">Chicago</st1:city></st1:place>" ) <o:p></o:p>

JBRULES-585 – 在一个已绑定Fact中绑定字段的语法糖<o:p></o:p>

JBRULES-662 – 使 TMS 可选<o:p></o:p>

JBRULES-866 – 允许绑定变量到被使用的字段约束 <o:p></o:p>

JBRULES-874 – 允许对绑定变量的直接属性存取。这避免了还需要绑定到变量自身的字段。当然也仍然允许对字段进行绑定。如:c: Customer() p: Person(customerId == c.id) <o:p></o:p>

JBRULES-708 – 完全的MVEL集成,MVEL现在完全集成到引擎中,并且能够被所有条件元素调用,这允许客户的代码也在规则的推论中。<o:p></o:p>

JBRULES-713 – 可插入方言。我们有两个正式支持的语言:JavaMVEL,但是用户现在可以加入他们自己的语言,通过实现相关的构建器。<o:p></o:p>

JBRULES-875 – 动态优先级引擎支持。现在通过使用一个包含字段和模式绑定的表达式支持动态优先级。意味着规则可以基于匹配它的数据进行优先级划分。<o:p></o:p>

JBRULES-895 – 更好的属性集支持引擎。现在支持链接属性的配置文件,并且自动调用默认的配置<o:p></o:p>

JBRULES-900 – 允许用参数表示查询 <o:p></o:p>

JBRULES-916 – 建立一个新的规则名称Agenda过滤器,使用正则表达式进行过滤<o:p></o:p>

JBRULES-917 – 允许查询参数指定类型 <o:p></o:p>

JBRULES-922 – API变更。将“assert”改为“insert”,“modify”改为“update”,避免与语言关键字冲突。<o:p></o:p>

JBRULES-925 – Accumulate条件元素中支持MVEL,允许使用MVEL编写用户的代码块。<o:p></o:p>

JBRULES-927 – 移植java语法到版本5。使用Java5的语法解析器<o:p></o:p>

JBRULES-930 – 阴影Fact现在是可选的,允许在类级别上关闭。<o:p></o:p>

JBRULES-880 – 更新XML组件处理4.0语言变化 <o:p></o:p>

JBRULES-935 – 更新DrlDumper以处理新的DRL导出器特性,XML解析器和XML导出器现在被更新到4.0语言特性。<o:p></o:p>

JBRULES-936 – 增加CE集合处理能力。提供更好的执行性能。<o:p></o:p>

JBRULES-941 – 增加插件化的集合功能支持。更多的细节在: http://markproctor.blogspot.com/2007/06/accumulate-functions-edson-tirelli.html<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1026" style="WIDTH: 4.5pt; HEIGHT: 4.5pt" type="#_x0000_t75" alt=""><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" o:href="http://wiki.jboss.org/wiki/images/out.png"></v:imagedata></v:shape><o:p></o:p>

JBRULES-214 – 减少了关键字冲突,关键字冲突被缩小到最小的范围内<o:p></o:p>

JBRULES-908 – 依照ANTLR顾问的推荐,DRL语法器被整理和增强,允许更好的执行性能与错误处理,也在IDE中支持. <o:p></o:p>

规则流<o:p></o:p>

  • 在(XOR分开的部分中支持约束<o:p></o:p>
  • 支持循环<o:p></o:p>
  • Working Memory中的监听支持<o:p></o:p>
  • Working Memory事件的审计支持<o:p></o:p>
  • IDE增强<o:p></o:p>
    • 对齐网格<o:p></o:p>
    • 更多高级的路由层<o:p></o:p>
    • 约束编辑器包括语法着色和代码补齐<o:p></o:p>
    • 当建立时可能包括简单的规则流和装载者<o:p></o:p>
  • 新的规则项目<o:p></o:p>

IDE 增强:<o:p></o:p>

  • 在构建器中支持*.package文件<o:p></o:p>
  • 审计视图支持规则流 <o:p></o:p>
  • core / compiler API 改变的更新 <o:p></o:p>
  • 新的导航编辑器
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics