[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