<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>
- 将在drl和working 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>
- Drl和working 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 – 可插入方言。我们有两个正式支持的语言:Java和MVEL,但是用户现在可以加入他们自己的语言,通过实现相关的构建器。<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>
- 在(X)OR分开的部分中支持约束<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>
- 新的导航编辑器
分享到:
相关推荐
Drools4.0是规则引擎Drools的重大升级,带来了显著的改进和新功能,旨在提高其在业务逻辑处理中的效能和灵活性。这个版本针对语言表达式、引擎性能和工具实用性进行了全方位优化,为开发者提供了更为强大的规则管理...
### Drools4.0新特性概览 Drools4.0是继Drools3.0.x系列之后的一次重大更新,不仅在语言表达、引擎性能,还有工具实用性上进行了全面的提升,引入了一系列令人瞩目的新特性。以下是Drools4.0更新的关键点: #### 1...
《Drools4.0官方使用手册中文》与《Drools5规则引擎开发教程.pdf》是两个关于Drools规则引擎的重要参考资料。Drools是一个开源的业务规则管理系统(BRMS),它允许开发者通过规则语言来实现复杂的业务逻辑,以此提高...
A.I.(Artificial Intelligence)是一个关注于“使计算机像人类一样思考“的广泛的研究领域,包括Neural Networks(神经...Drools是一个使用基于规则的方法实现的专家系统的规则引擎,更准确的说属于产生式规则系统。
【Drools4.0申请信用卡web例子】是一个基于规则引擎Drools 4.0的Web应用程序示例,它展示了如何将业务规则集成到Web应用程序中,以便于处理信用卡申请审批这样的复杂业务流程。Drools是一个强大的、开源的Java规则...
【Drools 4.0 知识点详解】 Drools 4.0 是一个重要的更新,相较于之前的 Drools 3.0.x 版本,它在多个方面进行了重大改进,包括语言表达式、引擎性能、工具实用性及业务规则管理系统(BRMS)。以下将详细阐述这些...
antlr-runtime.jar drools-compiler.jar drools-core.jar drools-decisiontables.jar drools-jsr94.jar droolsService.jar jsr94.jar jxl.jar mvel.jar xpp3.jar
1.2. 从 Drools3.0.x 向 Drools4.0.x 更新的提示 1.2.1. API 变更 升级到新版本时,开发者需要注意API的变更,可能需要调整代码以适应新的接口。Drools 4.0 对一些旧的API进行了废弃,引入了新的API来替代,以保持...
### Drools规则引擎4.0中文使用手册知识点详解 #### 一、Drools 4.0概述 **Drools 4.0**作为从Drools 3.0.x系列以来的重大更新版本,引入了一系列重要的改进和新特性。这些更新不仅包括语言表达式的增强、核心引擎...
《Drools 4.0 开发框架详解》 Drools 是一个强大的规则引擎,它基于Java语言,提供了一套完整的业务规则管理和执行的解决方案。在“Drools.jar”这个压缩包中,包含了Drools 4.0版本的所有核心组件,这将为开发者...
### 规则引擎Drools使用手册:4.0版更新要点详解 #### 一、Drools 4.0新特性概览 Drools 4.0是一次重要的更新,相较于之前的Drools 3.0.x系列,在语言表达、引擎性能以及工具实用性等方面都有显著提升。以下为此次...