ResourceFactory.getResourceChangeNotifierService().addResourceChangeMonitor(
myJmsMonitor);
Improved support for persistence (JPA) and transactions (JTA).
Drools 5.0 adds support for reasoning over sliding windows of events. For instance:
New Conditional Elements: from, collect, accumulate and forall
New Field Constraint operators: not matches, not contains, in, not in, memberOf, not memberOf
Full support for Conditional Elements nesting, for First Order Logic completeness.
Support for multi-restrictions and constraint connectives && and ||
Support for pluggable dialects and full support for MVEL scripting language
Fact attributes auto-vivification for return value restrictions and inline-eval constraints
Support for nested accessors, property navigation and simplified collection, arrays and maps syntax
There are a few API changes that are visible to regular users and need to be fixed.
Table 2.1. Working Memory Actions equivalent API methods
| Drools 3.0.x | Drools 4.0.x |
| WorkingMemory.assertObject() | WorkingMemory.insert() |
| WorkingMemory.assertLogicalObject() | WorkingMemory.insertLogical() |
| WorkingMemory.modifyObject() | WorkingMemory.update() |
The DRL Rule Language also has some backward incompatible changes as detailed bellow.
Table 2.2. Working Memory Actions equivalent DRL commands
| Drools 3.0.x | Drools 4.0.x |
| assert() | insert() |
| assertLogical() | insertLogical() |
| modify() | update() |
java -cp $CLASSPATH org.drools.tools.update.UpdateTool -f <filemask> [-d <basedir>] [-s <sufix>]
The program parameters are very easy to understand as following.
Open the Help->Software updates...->Available Software->Add Site... from the help menu. Location is:
http://download.eclipse.org/tools/gef/updates/releases/
http://www.jboss.org/drools/downloads.html
To check that the installation was successful, try opening the Drools perspective: Click the 'Open Perspective' button in the top right corner of your Eclipse window, select 'Other...' and pick the Drools perspective. If you cannot find the Drools perspective as one of the possible perspectives, the installation probably was unsuccessful. Check whether you executed each of the required steps correctly: Do you have the right version of Eclipse (3.4.x)? Do you have Eclipse GEF installed (check whether the org.eclipse.gef_3.4.*.jar exists in the plugins directory in your eclipse root folder)? Did you extract the Drools Eclipse plugin correctly (check whether the org.drools.eclipse_*.jar exists in the plugins directory in your eclipse root folder)? If you cannot find the problem, try contacting us (e.g. on irc or on the user mailing list), more info can be found no our homepage here:
Ensure the executables for ant, maven and java are in your path. The examples given illustrative and are for a win32 system:
Drools is available from two Subversion repositories.
fmeyer:~/jboss $ svn checkout http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/ trunkAnd wait to complete the files download.
A trunk/drools-repository A trunk/drools-repository/.classpath A trunk/drools-repository/.project A trunk/drools-repository/doc A trunk/drools-repository/doc/repository_layout.jpeg A trunk/drools-repository/doc/high_level_design.jpeg A trunk/drools-repository/doc/javadoc A trunk/drools-repository/doc/javadoc/serialized-form.html A trunk/drools-repository/doc/javadoc/index-all.html A trunk/drools-repository/doc/javadoc/stylesheet.css A trunk/drools-repository/doc/javadoc/allclasses-frame.html A trunk/drools-repository/doc/javadoc/package-list A trunk/drools-repository/doc/javadoc/overview-tree.html A trunk/drools-repository/doc/javadoc/org A trunk/drools-repository/doc/javadoc/org/drools A trunk/drools-repository/doc/javadoc/org/drools/repository A trunk/drools-repository/doc/javadoc/org/drools/repository/class-use A trunk/drools-repository/doc/javadoc/org/drools/repository/class-use/RuleSet.html A trunk/drools-repository/doc/javadoc/org/drools/repository/class-use/RulesRepositoryException.html A trunk/drools-repository/doc/javadoc/org/drools/repository/class-use/RulesRepository.html A trunk/drools-repository/doc/javadoc/org/drools/repository/RuleSet.html .... snip .... A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltz/waltz.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/manners A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/manners/manners.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltzdb A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/waltzdb/waltzdb.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/TroubleTicketWithDSL.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/TroubleTicket.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/calculate.rfm A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/generation.rf A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/calculate.rf A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/registerNeighbor.rfm A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/killAll.rfm A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/registerNeighbor.rf A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/conway-agendagroup.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/killAll.rf A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/conway-ruleflow.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/conway/generation.rfm A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/ticketing.dsl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/StateExampleUsingSalience.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/golf.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/LogicalAssertionsNotPingPong.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/StateExampleDynamicRule.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/sudoku A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/sudoku/sudoku.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HelloWorld.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/ExamplePolicyPricing.xls A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/Fibonacci.drl A trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/StateExampleUsingAgendGroup.drl A trunk/drools-examples/drools-examples-drl/pom.xml A trunk/drools-examples/drools-examples-drl/build.xml U trunk Checked out revision 13656.
mvn -Declipse -Ddocumentation clean install -DlocalEclipseDrop=/folder/jboss-drools/local-Eclipse-drop-mirror
You can produce distribution builds, which puts everything into zips, as follows:
mvn -Declipse -Ddocumentation clean install -DlocalEclipseDrop=/folder/jboss-drools/local-Eclipse-drop-mirror mvn -Ddocumentation -Declipse -Dmaven.test.skip package javadoc:javadoc assembly:assembly -DlocalEclipseDrop=/folder/jboss-drools/local-Eclipse-drop-mirror
Type mvn clean to clear old artifacts, and then test and built the source, and report on any errors.
The resulting jars are put in the /target directory from the top level of the project.
Drools uses Docbook for this manual. Maven is used to build documents and this build produces three different formats, all sharing the same images directory.
[trikkola@trikkola trunk]$ mvn -Ddocumentation clean package assembly:assembly [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Drools [INFO] Drools :: API [INFO] Drools :: Core [INFO] Drools :: Compiler [INFO] Drools :: Templates [INFO] Drools :: Decision Tables [INFO] Drools :: JSR-94 API Module [INFO] Drools :: Pipeline :: Transformer :: Smooks [INFO] Drools :: Pipeline :: Transformer :: JAXB [INFO] Drools :: Pipeline :: Transformer :: XStream [INFO] Drools :: Pipeline :: Transformer :: JXLS [INFO] Drools :: Pipeline :: Messenger :: JMS [INFO] Drools :: Pipeline [INFO] Drools :: Process :: WorkItems [INFO] Drools :: Process :: Task [INFO] Drools :: Process :: BAM [INFO] Drools :: Process [INFO] Drools :: Persistence :: JPA [INFO] Drools :: Server [INFO] Drools :: Verifier [INFO] Drools :: Ant Task [INFO] Drools :: Repository [INFO] Drools :: Guvnor [INFO] Drools :: Microcontainer [INFO] Drools :: Clips [INFO] Drools :: Solver parent [INFO] Drools :: Solver core [INFO] Drools :: Solver examples [INFO] Searching repository for plugin with prefix: 'assembly'. WAGON_VERSION: 1.0-beta-2 [INFO] ------------------------------------------------------------------------ [INFO] Building Drools [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean] [INFO] [site:attach-descriptor] [INFO] Preparing source:jar [WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation. [INFO] No goals needed for project - skipping [INFO] [source:jar {execution: default}] [INFO] Preparing source:test-jar [WARNING] Removing: jar from forked lifecycle, to prevent recursive invocation. [WARNING] Removing: test-jar from forked lifecycle, to prevent recursive invocation. [INFO] No goals needed for project - skipping [INFO] [source:test-jar {execution: default}] [INFO] ------------------------------------------------------------------------ [INFO] Building Drools :: API [INFO] task-segment: [clean, package] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean] [INFO] Deleting directory /home/trikkola/jboss-drools/trunk/drools-api/target ...snip ... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] ------------------------------------------------------------------------ [INFO] Drools ................................................ SUCCESS [59.889s] [INFO] Drools :: API ......................................... SUCCESS [4.832s] [INFO] Drools :: Core ........................................ SUCCESS [11.027s] [INFO] Drools :: Compiler .................................... SUCCESS [10.400s] [INFO] Drools :: Templates ................................... SUCCESS [1.018s] [INFO] Drools :: Decision Tables ............................. SUCCESS [1.179s] [INFO] Drools :: JSR-94 API Module ........................... SUCCESS [1.001s] [INFO] Drools :: Pipeline :: Transformer :: Smooks ........... SUCCESS [0.651s] [INFO] Drools :: Pipeline :: Transformer :: JAXB ............. SUCCESS [0.711s] [INFO] Drools :: Pipeline :: Transformer :: XStream .......... SUCCESS [0.465s] [INFO] Drools :: Pipeline :: Transformer :: JXLS ............. SUCCESS [0.481s] [INFO] Drools :: Pipeline :: Messenger :: JMS ................ SUCCESS [0.879s] [INFO] Drools :: Pipeline .................................... SUCCESS [0.006s] [INFO] Drools :: Process :: WorkItems ........................ SUCCESS [1.526s] [INFO] Drools :: Process :: Task ............................. SUCCESS [3.104s] [INFO] Drools :: Process :: BAM .............................. SUCCESS [0.580s] [INFO] Drools :: Process ..................................... SUCCESS [0.005s] [INFO] Drools :: Persistence :: JPA .......................... SUCCESS [0.958s] [INFO] Drools :: Server ...................................... SUCCESS [2.216s] [INFO] Drools :: Verifier .................................... SUCCESS [1.836s] [INFO] Drools :: Ant Task .................................... SUCCESS [0.722s] [INFO] Drools :: Repository .................................. SUCCESS [3.925s] [INFO] Drools :: Guvnor ...................................... SUCCESS [19.850s] [INFO] Drools :: Microcontainer .............................. SUCCESS [0.676s] [INFO] Drools :: Clips ....................................... SUCCESS [1.464s] [INFO] Drools :: Solver parent ............................... SUCCESS [0.527s] [INFO] Drools :: Solver core ................................. SUCCESS [2.209s] [INFO] Drools :: Solver examples ............................. SUCCESS [4.689s] [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 minutes 24 seconds [INFO] Finished at: Tue Apr 07 15:11:14 EEST 2009 [INFO] Final Memory: 48M/178M [INFO] ------------------------------------------------------------------------>