[jboss-svn-commits] JBL Code SVN: r13288 - in labs/jbossrules/trunk/experimental: drools-brms-examples and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 9 23:55:45 EDT 2007


Author: fmeyer
Date: 2007-07-09 23:55:45 -0400 (Mon, 09 Jul 2007)
New Revision: 13288

Added:
   labs/jbossrules/trunk/experimental/drools-brms-examples/
   labs/jbossrules/trunk/experimental/drools-brms-examples/.classpath
   labs/jbossrules/trunk/experimental/drools-brms-examples/.project
   labs/jbossrules/trunk/experimental/drools-brms-examples/cache/
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/Approve.java
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/Driver.java
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/Policy.java
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/Rejection.java
   labs/jbossrules/trunk/experimental/drools-brms-examples/files/repository_export.xml.zip
   labs/jbossrules/trunk/experimental/drools-brms-examples/lib/
   labs/jbossrules/trunk/experimental/drools-brms-examples/lib/drools-core-4.0.0.SNAPSHOT.jar
   labs/jbossrules/trunk/experimental/drools-brms-examples/lib/insuranceModel.jar
   labs/jbossrules/trunk/experimental/drools-brms-examples/lib/mvel14-1.2pre1.jar
   labs/jbossrules/trunk/experimental/drools-brms-examples/resources/
   labs/jbossrules/trunk/experimental/drools-brms-examples/resources/org.acme.insurance.pkg
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/brmsdeployedrules.properties
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/InsuranceBusiness.java
   labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/MainClass.java
Log:
JBRULES-991 - Initial drools-brms full example

it includes: 
	bean files
	exported repository for brms
	compiled package from brms
	test classes
	

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/.classpath
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/.classpath	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/.classpath	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/insuranceModel.jar"/>
+	<classpathentry kind="lib" path="lib/drools-core-4.0.0.SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="lib/mvel14-1.2pre1.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/.project
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/.project	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/.project	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>drools-example-brms</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/files/Approve.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/files/Approve.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/files/Approve.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,24 @@
+package org.acme.insurance;
+
+/**
+ * This is a simple fact class to mark something as approved.
+ * @author Michael Neale
+ *
+ */
+public class Approve {
+	
+	private String reason;
+
+	public Approve(String reason) {
+		this.reason = reason;
+	}
+
+	public String getReason() {
+		return reason;
+	}
+
+	public void setReason(String reason) {
+		this.reason = reason;
+	}
+
+}

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/files/Driver.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/files/Driver.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/files/Driver.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,41 @@
+package org.acme.insurance;
+
+/**
+ * This represents obviously a driver who is applying for an insurance Policy.
+ * @author Michael Neale
+ *
+ */
+public class Driver {
+
+	private String name = "Mr Joe Blogs";
+	private Integer age = new Integer(30);
+	private Integer priorClaims = new Integer(0);	
+	private String  locationRiskProfile = "LOW";
+	
+	public Integer getAge() {
+		return age;
+	}
+	public void setAge(Integer age) {
+		this.age = age;
+	}
+	public String getLocationRiskProfile() {
+		return locationRiskProfile;
+	}
+	public void setLocationRiskProfile(String locationRiskProfile) {
+		this.locationRiskProfile = locationRiskProfile;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Integer getPriorClaims() {
+		return priorClaims;
+	}
+	public void setPriorClaims(Integer priorClaims) {
+		this.priorClaims = priorClaims;
+	}
+	
+	
+}

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/files/Policy.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/files/Policy.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/files/Policy.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,49 @@
+package org.acme.insurance;
+
+/**
+ * This represents a policy that a driver is applying for. 
+ * 
+ * Obviously in the real world, there are actuaries to mess things up, but lets just pretend there is
+ * some simple base price and discount that we can calculate with relatively simple rules !
+ * 
+ * @author Michael Neale
+ */
+public class Policy {
+
+	private String type = "COMPREHENSIVE";
+	private boolean approved = false;
+	private int discountPercent = 0;
+	private int basePrice;
+	
+	public boolean isApproved() {
+		return approved;
+	}
+	public void setApproved(boolean approved) {
+		this.approved = approved;
+	}
+	public int getDiscountPercent() {
+		return discountPercent;
+	}
+	public void setDiscountPercent(int discountPercent) {
+		this.discountPercent = discountPercent;
+	}
+	
+	public String getType() {
+		return type;
+	}
+	
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+	public void applyDiscount(int discount) {
+		discountPercent += discount;
+	}
+	public int getBasePrice() {
+		return basePrice;
+	}
+	public void setBasePrice(int basePrice) {
+		this.basePrice = basePrice;
+	}
+	
+}

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/files/Rejection.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/files/Rejection.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/files/Rejection.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,23 @@
+package org.acme.insurance;
+
+/**
+ * 
+ * @author Michael Neale
+ */
+public class Rejection {
+
+	private String reason;
+
+	public Rejection(String reason) {
+		this.reason = reason;
+	}
+
+	public String getReason() {
+		return reason;
+	}
+
+	public void setReason(String reason) {
+		this.reason = reason;
+	}
+	
+}

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/files/repository_export.xml.zip
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-brms-examples/files/repository_export.xml.zip
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/drools-core-4.0.0.SNAPSHOT.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/drools-core-4.0.0.SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/insuranceModel.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/insuranceModel.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/mvel14-1.2pre1.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-brms-examples/lib/mvel14-1.2pre1.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/resources/org.acme.insurance.pkg
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-brms-examples/resources/org.acme.insurance.pkg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/src/brmsdeployedrules.properties
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/src/brmsdeployedrules.properties	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/src/brmsdeployedrules.properties	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,5 @@
+newInstance=true
+dir=/Users/fernandomeyer/projects/jbossrules/experimental/drools-brms-examples/resources
+localCacheDir=/Users/fernandomeyer/projects/jbossrules/experimental/drools-brms-examples/cache
+poll=30
+name=insuranceconfig

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/InsuranceBusiness.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/InsuranceBusiness.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/InsuranceBusiness.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,85 @@
+package org.acme.insurance;
+
+import java.io.IOException;
+
+import org.drools.RuleBase;
+import org.drools.StatefulSession;
+import org.drools.agent.RuleAgent;
+import org.drools.concurrent.Future;
+
+public class InsuranceBusiness {
+	
+	public void executeExample() throws Exception {
+		RuleBase ruleBase = loadRuleBase();
+
+		testUnsafeDriver(ruleBase);
+		testSafeMature(ruleBase);
+		testUnsafeAreaAndPriors(ruleBase);
+	}
+
+	/**
+	 * This shows how rules are loaded up from a deployed package.
+	 */
+	private RuleBase loadRuleBase() throws IOException, Exception {
+
+		RuleAgent agent = RuleAgent.newRuleAgent("/brmsdeployedrules.properties");
+		RuleBase rb = agent.getRuleBase(); 
+
+		return rb;
+	}
+
+	private void testUnsafeDriver(RuleBase ruleBase) {
+		StatefulSession session = ruleBase.newStatefulSession();
+		
+		Driver driver = new Driver();
+		driver.setPriorClaims(new Integer(4));
+		Policy policy = new Policy();
+		policy.setType("COMPREHENSIVE");
+		policy.setApproved(false);
+		
+		
+        Future futureAssertDrv = session.asyncInsert( driver );
+        Future futureAssertPol = session.asyncInsert( policy );
+        Future futureFireAllRules = session.asyncFireAllRules();
+
+        System.out.println("Policy approved: " + policy.isApproved());
+	}		
+
+	private void testSafeMature(RuleBase ruleBase) {
+		StatefulSession session = ruleBase.newStatefulSession();
+		
+		Driver driver = new Driver();
+		driver.setPriorClaims(new Integer(0));
+		driver.setAge(new Integer(45));
+		
+		Policy policy = new Policy();
+		policy.setType("COMPREHENSIVE");
+		policy.setApproved(false);
+		
+        Future futureAssertDrv = session.asyncInsert( driver );
+        Future futureAssertPol = session.asyncInsert( policy );
+        Future futureFireAllRules = session.asyncFireAllRules();
+		
+		System.out.println("Policy approved: " + policy.isApproved());
+	}		
+	
+	private void testUnsafeAreaAndPriors(RuleBase ruleBase) {
+		StatefulSession session = ruleBase.newStatefulSession();
+		
+		Driver driver = new Driver();
+		driver.setPriorClaims(new Integer(2));
+		driver.setAge(new Integer(55));
+		driver.setLocationRiskProfile("LOW");
+		
+		Policy policy = new Policy();
+		policy.setType("COMPREHENSIVE");
+		policy.setApproved(false);
+		
+        Future futureAssertDrv = session.asyncInsert( driver );
+        Future futureAssertPol = session.asyncInsert( policy );
+        Future futureFireAllRules = session.asyncFireAllRules();
+		
+		System.out.println("Policy approved: " + policy.isApproved());
+	}
+	
+}

Added: labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/MainClass.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/MainClass.java	                        (rev 0)
+++ labs/jbossrules/trunk/experimental/drools-brms-examples/src/org/acme/insurance/MainClass.java	2007-07-10 03:55:45 UTC (rev 13288)
@@ -0,0 +1,14 @@
+package org.acme.insurance;
+
+
+public class MainClass {
+	public static void main(String[] args) {
+
+		InsuranceBusiness launcher = new InsuranceBusiness();
+		try {
+			launcher.executeExample();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}




More information about the jboss-svn-commits mailing list