[jboss-svn-commits] JBL Code SVN: r17513 - in labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources: decisionTable and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 2 20:14:58 EST 2008
Author: jeffdelong
Date: 2008-01-02 20:14:58 -0500 (Wed, 02 Jan 2008)
New Revision: 17513
Added:
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/decisionTable/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/decisionTable/PolicyPricing.xls
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscount.drl
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountOnMultipleOrders.drl
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountWithCollections.drl
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/acme.dsl
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/approval.dslr
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/brmsdeployedrules.properties
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/cache/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/cache/http%3A%2F%2Flocalhost%3A8080%2Fdrools-jbrms%2Forg.drools.brms.JBRMS%2Fpackage%2Forg.jboss.soa.esb.services.rules%2FLATEST
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/insurancepolicy.jar
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/package/
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/package/org.jboss.soa.esb.services.rules.pkg
labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/pricing.drl
Log:
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/decisionTable/PolicyPricing.xls
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/decisionTable/PolicyPricing.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscount.drl
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscount.drl (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscount.drl 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,34 @@
+#created on: Oct 23, 2007
+package org.jboss.soa.esb.services.rules
+
+#list any import classes here.
+import org.jboss.soa.esb.services.rules.Order;
+
+#declare any global variables here
+global org.jboss.soa.esb.message.Message message;
+
+
+rule "Pricing Rule - low quantity"
+
+ when
+ order : Order( quantity < 10)
+ then
+ System.out.println("low volume");
+ #we can modify the object
+ order.setDiscount(0);
+ #demonstrate that we can add a new object to the message
+ message.getBody().add("DiscountObject"+ order.getOrderId(),"0%");
+
+end
+
+rule "Prioing Rule - high quantity"
+
+ when
+ order : Order( quantity >= 10)
+ then
+ System.out.println("high volume");
+ #we can modify the object
+ order.setDiscount(10);
+ #demonstrate that we can add a new object to the message
+ message.getBody().add("DiscountObject"+order.getOrderId(),"10%");
+end
\ No newline at end of file
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountOnMultipleOrders.drl
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountOnMultipleOrders.drl (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountOnMultipleOrders.drl 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,37 @@
+#created on: Oct 22, 2007
+package org.jboss.soa.esb.services.rules
+
+#list any import classes here.
+import org.jboss.soa.esb.services.rules.Order;
+import org.jboss.soa.esb.services.rules.Customer;
+
+import java.util.Arrays;
+
+#declare any global variables here
+global org.jboss.soa.esb.message.Message message;
+
+
+
+rule "Apply 10% discount to the customer if totalPrice of all orders is over 1000"
+ when
+ $c : Customer()
+ $i : Number(intValue >= 1000) from accumulate ( Order( customer == $c, $totalPrice : totalPrice),
+ sum( $totalPrice ) );
+ then
+ $c.setDiscount( 10 );
+ System.out.println( "customer " + $c.getName() + " now has a shopping total of " + $i );
+ message.getBody().add("Customer", $c);
+ #System.out.println( "Message has a Customer " + message.getBody().get("Customer").toString() );
+end
+
+
+rule "apply customer discount to the latest order"
+ when
+ $c : Customer()
+ $o : Order(customer == $c)
+ then
+ $o.setDiscount($c.getDiscount());
+ System.out.println("set discount of " + $o.getDiscount() +
+ " on order " + $o.getOrderId() +
+ " for customer " + $c.getName());
+end
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountWithCollections.drl
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountWithCollections.drl (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/drl/OrderDiscountWithCollections.drl 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,62 @@
+#created on: Oct 22, 2007
+package org.jboss.soa.esb.services.rules
+
+#list any import classes here.
+import org.jboss.soa.esb.services.rules.Order;
+
+import java.util.Arrays;
+
+#declare any global variables here
+global org.jboss.soa.esb.message.Message message;
+
+
+rule "Pricing Rule - create array for results"
+ # we use an array because it make the JUnit test easier to implement
+ # since we can control which order is in which position of the array
+ # for comparison purposes.
+ salience 20
+ when
+ orderCount : Integer() from accumulate( Order(),
+ init( int x = 0; ),
+ action( x++; ),
+ result( new Integer(x) ) );
+ then
+ System.out.println("the number of inserted orders is: " + orderCount);
+ insert (new Order[orderCount]);
+end
+
+rule "Pricing Rule - low quantity"
+
+ when
+ updatedOrders : Order[]()
+ order : Order( quantity < 10)
+ then
+ System.out.println("low volume");
+ # we can modify the object
+ order.setDiscount(0);
+ # we can add a new object to the message
+ message.getBody().add("DiscountObject"+ order.getOrderId(),"0%");
+ updatedOrders[order.getOrderId() - 1] = order;
+end
+
+rule "Prioing Rule - high quantity"
+
+ when
+ updatedOrders : Order[]()
+ order : Order( quantity >= 10)
+ then
+ System.out.println("high volume");
+ # we can modify the object
+ order.setDiscount(10);
+ # we can add a new object to the message
+ message.getBody().add("DiscountObject"+order.getOrderId(),"10%");
+ updatedOrders[order.getOrderId() - 1] = order;
+end
+
+rule "Pricing Rule - add array to message"
+ salience -20
+ when
+ updatedOrders : Order[]()
+ then
+ message.getBody().add("UpdatedOrders", updatedOrders);
+end
\ No newline at end of file
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/acme.dsl
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/acme.dsl (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/acme.dsl 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,14 @@
+[condition][$driver]There is a Driver=$driver : Driver()
+[condition][$driver]- age less than {age} years old=age < {age}
+[condition][$driver]- age greater than {age} years old=age > {age}
+[condition][$driver]- has had more than {number} prior claims=priorClaims > {number}
+[condition][$driver]- has a location risk profile of '{risk}'=locationRiskProfile == "{risk}"
+[condition][$driver]- age is at least {age}=age >= {age}
+[condition][$driver]- age is between {lower} and {upper} years old=age >= {lower}, age <= {upper}
+[condition][$driver]- has had exactly {number} prior claims=priorClaims == {number}
+[condition][]Policy has a driver=Policy(driver == $driver)
+[condition][]Policy type is '{type}'=Policy(type == "{type}")
+[consequence][]Reject Policy with explanation : '{reason}'=message.getBody().add("Rejection", new Rejection("{reason}"));
+[condition][]Policy has not been rejected=not Rejection()
+[consequence][]Approve Policy with the reason : '{reason}'=message.getBody().add("Approve", new Approve("{reason}"));
+[consequence][]logRule=System.out.println("the rule that executed is: " + drools.getRule());
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/approval.dslr
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/approval.dslr (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/dsl/approval.dslr 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,110 @@
+#created on: Oct 23, 2007
+package org.jboss.soa.esb.services.rules
+
+expander acme.dsl
+
+#list any import classes here.
+import org.jboss.soa.esb.services.rules.Driver;
+import org.jboss.soa.esb.services.rules.Policy;
+import org.jboss.soa.esb.services.rules.Rejection;
+import org.jboss.soa.esb.services.rules.Approve;
+
+#declare any global variables here
+global org.jboss.soa.esb.message.Message message;
+
+
+#
+# These rules are mostly "negative" in the sense that
+# a driver has to not be rejected. There is
+# one rule that allows immediate approval however.
+#
+
+rule "Driver has had too many accidents"
+ when
+ There is a Driver
+ - has had more than 3 prior claims
+ then
+ Reject Policy with explanation : 'Too many accidents'
+ logRule
+
+end
+
+rule "Driver is underage"
+ when
+ There is a Driver
+ - age less than 18 years old
+ then
+ Reject Policy with explanation : 'Driver is underage. Try another insurer'
+ logRule
+end
+
+rule "Driver is in marginal age"
+ when
+ There is a Driver
+ - age is between 18 and 24 years old
+ - has had more than 1 prior claims
+ Policy type is 'COMPREHENSIVE'
+ then
+ Reject Policy with explanation : 'No accidents allowed if in marginal age group'
+ logRule
+end
+
+rule "Driver in unsafe area for marginal age"
+ when
+ Policy type is 'COMPREHENSIVE'
+ There is a Driver
+ - age less than 25 years old
+ - has a location risk profile of 'HIGH'
+ then
+ Reject Policy with explanation : 'Marginal age driver in high risk area'
+ logRule
+end
+
+rule "Driver in unsafe area with priors"
+ when
+ There is a Driver
+ - has a location risk profile of 'MED'
+ - age less than 25 years old
+ - has had more than 1 prior claims
+ Policy type is 'COMPREHENSIVE'
+
+ then
+ Reject Policy with explanation : 'Driver in that area is too risky - given past accidents and age.'
+ logRule
+end
+
+rule "Driver unsafe for third party"
+ when
+ Policy type is 'THIRD_PARTY'
+ There is a Driver
+ - has had more than 2 prior claims
+ then
+ Reject Policy with explanation : 'Too many priors for third party'
+ logRule
+
+end
+
+rule "Driver in bad area for theft"
+ when
+ Policy type is 'FIRE_THEFT'
+ There is a Driver
+ - has a location risk profile of 'HIGH'
+ then
+ Reject Policy with explanation : 'Unsafe area for theft'
+ logRule
+end
+
+rule "Quick approval - safe driver, any policy type"
+ when
+
+ There is a Driver
+ - age is at least 30
+ - has had exactly 0 prior claims
+ Policy has a driver
+ Policy has not been rejected
+
+ then
+ Approve Policy with the reason : 'Driver is safe and mature.'
+ logRule
+end
+
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/brmsdeployedrules.properties
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/brmsdeployedrules.properties (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/brmsdeployedrules.properties 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,11 @@
+newInstance=true
+
+file=/shared/workspace/rs/product/services/jbrules/src/test/resources/ruleAgent/package/org.jboss.soa.esb.services.rules.pkg
+#dir=/shared/workspace/ruleservice/product/services/jbrules/src/test/resources/ruleAgent/package
+
+
+#url=http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org.jboss.soa.esb.services.rules/LATEST
+#localCacheDir=/shared/workspace/rs/product/services/jbrules/src/test/resources/ruleAgent/cache
+poll=30
+
+name=insuranceconfig
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/cache/http%3A%2F%2Flocalhost%3A8080%2Fdrools-jbrms%2Forg.drools.brms.JBRMS%2Fpackage%2Forg.jboss.soa.esb.services.rules%2FLATEST
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/cache/http%3A%2F%2Flocalhost%3A8080%2Fdrools-jbrms%2Forg.drools.brms.JBRMS%2Fpackage%2Forg.jboss.soa.esb.services.rules%2FLATEST
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/insurancepolicy.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/insurancepolicy.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/package/org.jboss.soa.esb.services.rules.pkg
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/package/org.jboss.soa.esb.services.rules.pkg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/pricing.drl
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/pricing.drl (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/resources/ruleAgent/pricing.drl 2008-01-03 01:14:58 UTC (rev 17513)
@@ -0,0 +1,63 @@
+#created on: Aug 23, 2006
+package org.jboss.soa.esb.services.rules
+
+#list any import classes here.
+import org.jboss.soa.esb.services.rules.Driver;
+import org.jboss.soa.esb.services.rules.Policy;
+
+
+#declare any global variables here
+global org.jboss.soa.esb.message.Message message;
+
+
+rule "Safe Youth"
+
+ when
+ #conditions
+ Driver(age >= 18, age <= 24, locationRiskProfile == "LOW", priorClaims == 0)
+ policy: Policy(type == "COMPREHENSIVE")
+ then
+ #actions
+ policy.setBasePrice(450);
+ System.out.println("Safe Youth - pay 450");
+
+end
+
+rule "Risky Youth"
+
+ when
+ #conditions
+ Driver(age >= 18, age <= 24, locationRiskProfile == "LOW", priorClaims >= 1)
+ policy : Policy(type == "COMPREHENSIVE")
+ then
+ #actions
+ policy.setBasePrice(700);
+ System.out.println("Risky Youth - pay 700");
+
+end
+
+rule "Safe Adult"
+
+ when
+ #conditions
+ Driver(age > 24, locationRiskProfile == "LOW", priorClaims == 0)
+ policy: Policy(type == "COMPREHENSIVE")
+ then
+ #actions
+ policy.setBasePrice(120);
+ System.out.println("Safe adult - pay 120");
+
+end
+
+rule "Risky Adult"
+
+ when
+ #conditions
+ Driver(age > 24, locationRiskProfile == "LOW", priorClaims >= 1)
+ policy: Policy(type == "COMPREHENSIVE")
+ then
+ #actions
+ policy.setBasePrice(300);
+ System.out.println("Risky adult - pay 300");
+
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list