[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