• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Drools5 Community Training HandsOn 1 Drools DRL Syntax
 

Drools5 Community Training HandsOn 1 Drools DRL Syntax

on

  • 5,049 views

for more information visit:

for more information visit:
http://salaboy.wordpress.com/2011/02/23/drools-5-community-training-announced-roadmap/

Statistics

Views

Total Views
5,049
Views on SlideShare
3,520
Embed Views
1,529

Actions

Likes
1
Downloads
117
Comments
0

8 Embeds 1,529

http://salaboy.com 655
http://planet.jboss.org 614
http://salaboy.wordpress.com 126
http://www.plugtree.com 111
http://srvpsat.gpm.int 19
http://www.slashdocs.com 2
https://twitter.com 1
http://translate.googleusercontent.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Drools5 Community Training HandsOn 1 Drools DRL Syntax Drools5 Community Training HandsOn 1 Drools DRL Syntax Presentation Transcript

    •    Drools5 Community TrainingHands On Playing with Rules Sponsored by Plugtree
    • Hands On 1: Drools Expert Playing with Rules Drools5 Community Training version: 1.0-SNAPSHOT Release Date: 09/05/2011Under The Creative Common License
    • Hands On 1: Drools Expert Playing with Rules Drools5 Community Training Course by Mauricio "Salaboy" Salatino and Esteban Aliverti is licensed under a Creative Commons Attribution 3.0 Unported License.Based on a work at salaboy.wordpress. com. Permissions beyond the scope of this license may be available at http: //salaboy.wordpress.com/.
    • Overview● Drools Expert Examples ○ Introduction examples ○ Conditional elements examples ○ Rules Attributes examples
    • Introduction Examples● Project: drools5/01-DroolsExpert-Introduction● Test: SimpleRulesExampleTest.java● Rules: src/main/resources/rules/rules.drl● Kbuilder, Kbase and Ksession (createKSession() method) ○ Take a look at the addEventListener() method● DRL syntax in the rule file: ○ Take a look at the LHS ○ Take a look at the RHS● Rules activation and execution (you can activate the logger)
    • Introduction Examples● Exercise ○ Find a way to get "Warn when we have a POP songs and Playlist" Rule activated but not fired. ○ Find a way to get "Warn when we have a POP songs and Playlist" Rule activated and fired.
    • Conditional Elements examples● Project: drools5/02-DroolsExpert-ConditionalElements● Simple Rules Example: ○ Test Class: SimpleRulesExampleTest.java ○ Rules: SimpleRules.drl ○ Conditional Elements on LHS ○ from Conditional Element● Advanced from Examples: ○ Test Class: AdvancedFromRulesExampleTest.java ○ Rules: AdvancedFromRules.drl ○ collect, accumulate, accumulate custom function, Using Hibernate session in from CE
    • Conditional Elements Examples● Exercise 1 ○ Replace "Add Playlists that contains songs with letter a in their titles to the list using the accumulate conditional elements defining init, action, reverse and result functions. i.e: from accumulate( $s: Song() from $songs, init(), action(), reverse(), result() )
    • Conditional Elements examplesSolution:rule "Playlists that contains songs with letter a in their titles."when $playlist: Playlist($songs: songs) $match: java.util.List(empty == false) from accumulate( $s: Song() from $songs, init( java.util.List result = new java.util.ArrayList();), action( if ($s.getTitle().contains("a")) result.add($s); ), result( result ) )then System.out.println("Playlist found: "+$playlist); for (int i=0; i<$match.size(); i++){ System.out.println("t--"+$match.get(i)); }end
    • Conditional Elements examples● Exercise 2 ○ Create a custom accumulate function to collect random songs from a playlist. ○ Copy the SongsWithALetterOnTheirTitlesFunction.java implementation
    • Conditional Elements Examples● eval Example: ○ Test Class: EvalRulesExampleTest.java ○ Rules: /rules/EvalRules.drl ○ use of eval in LHS● exists Example: ○ Test Class: ExistsRulesExampleTest.java ○ Rules: ExistsRules.drl ○ use of exists and not in the LHS
    • Conditional Elements Examples● Exercise ○ Replace "Warn when we have a Playlist longer than 9000 seconds" with an equivalent Rule without using eval
    • Conditional Elements ExamplesSolutionrule "Playlist longer than 9000 seconds without eval"when$playlist: Playlist($songs: songs) AND $n : Number(intValue > 9000) from accumulate( $s : Song() from $songs, sum($s.getDuration()))thenSystem.out.println("We have found a Playlist longer than 9000 seconds");end
    • Rule Attributes examples● Project: drools/03-DroolsExpert-RulesAttributes● Test Class: RuleAttributesExampleTest.java● Attributes: ○ salience ○ no-loop: ■ Test: noLoop() Rules: /rules/NoLoopRules.drl ○ lock-on-active: ■ Test: lockOnActive() Rules: /rules/LockOnActiveRules.drl ○ agenda-group: ■ Test: agendaGroup() Rules: /rules/AgendaGroupRules.drl
    •    Questions?
    • Enjoy! Questions and Feedback arealways appreciated!
    •     Contact us atwww.plugtree.com