[jboss-svn-commits] JBL Code SVN: r35858 - in labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client: src and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 3 20:28:35 EDT 2010


Author: KrisVerlaenen
Date: 2010-11-03 20:28:35 -0400 (Wed, 03 Nov 2010)
New Revision: 35858

Added:
   labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/changeset.xml
Removed:
   labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/lib/
   labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/mortgageapproval.properties
Modified:
   labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/.classpath
   labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/com/notidiots/MortgageApplicationTest.java
Log:
- updating mortage example to latest Drools release (as it no longer works with guvnor authorization)

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/.classpath	2010-11-03 23:47:15 UTC (rev 35857)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/.classpath	2010-11-04 00:28:35 UTC (rev 35858)
@@ -2,8 +2,6 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/drools-core-5.0.1.SNAPSHOT.jar"/>
-	<classpathentry kind="lib" path="lib/mvel2-2.0.10.jar"/>
-	<classpathentry kind="lib" path="lib/drools-api-5.0.1.SNAPSHOT.jar"/>
+	<classpathentry kind="con" path="DROOLS/Drools"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Added: labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/changeset.xml
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/changeset.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/changeset.xml	2010-11-04 00:28:35 UTC (rev 35858)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<change-set xmlns='http://drools.org/drools-5.0/change-set'
+	xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
+	xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd'>
+	<add>
+		<resource
+			source='http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST'
+			type='PKG' basicAuthentication='enabled' username='admin' password='admin' />
+
+	</add>
+</change-set> 

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/com/notidiots/MortgageApplicationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/com/notidiots/MortgageApplicationTest.java	2010-11-03 23:47:15 UTC (rev 35857)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/com/notidiots/MortgageApplicationTest.java	2010-11-04 00:28:35 UTC (rev 35858)
@@ -16,40 +16,79 @@
 
 package com.notidiots;
 
-import org.drools.RuleBase;
-import org.drools.agent.RuleAgent;
+import org.drools.KnowledgeBase;
+import org.drools.agent.KnowledgeAgent;
+import org.drools.agent.KnowledgeAgentFactory;
 import org.drools.definition.type.FactType;
+import org.drools.io.ResourceFactory;
 
 public class MortgageApplicationTest {
 
-    
-	/**
-	 * @param args
-	 * @throws IllegalAccessException
-	 * @throws InstantiationException
-	 */
-	public static void main(String[] args) throws InstantiationException, IllegalAccessException {
-	    
-		RuleAgent agent = RuleAgent.newRuleAgent("/mortgageapproval.properties");
-		RuleBase rb = agent.getRuleBase();
+    /**
+     * Entry point demonstrating use of KnowledgeAgent and changesets retrieving
+     * a rule package from a running instance of Guvnor.
+     * 
+     * @param args
+     * @throws Exception
+     */
+    public static void main(String[] args) throws Exception {
 
-		FactType appType = rb.getFactType("mortgages.LoanApplication");
-		FactType incomeType = rb.getFactType("mortgages.IncomeSource");
+        try {
+            // load up the knowledge base
+            KnowledgeBase kbase = readKnowledgeBase();
 
-		Object application = appType.newInstance();
-		Object income = incomeType.newInstance();
+            //Dynamic fact creation as the model was declared in the DRL
+            FactType appType = kbase
+                    .getFactType( "mortgages",
+                                  "LoanApplication" );
+            Object application = appType.newInstance();
+            appType.set( application,
+                         "amount",
+                         25000 );
+            appType.set( application,
+                         "deposit",
+                         1500 );
+            appType.set( application,
+                         "lengthYears",
+                         20 );
 
-		appType.set(application, "amount", 25000);
-		appType.set(application, "deposit", 1500);
-		appType.set(application, "lengthYears", 20);
+            FactType incomeType = kbase
+                    .getFactType( "mortgages",
+                                  "IncomeSource" );
+            Object income = incomeType.newInstance();
+            incomeType.set( income,
+                            "type",
+                            "Job" );
+            incomeType.set( income,
+                            "amount",
+                            65000 );
 
-		incomeType.set(income, "type", "Job");
-		incomeType.set(income, "amount", 65000);
+            //Invoke the magic
+            kbase.newStatelessKnowledgeSession().execute(
+                                                          new Object[]{application, income} );
 
+            //Voila!
+            System.out.println( application );
 
-		rb.newStatelessSession().execute(new Object[] {application, income});
+        } catch ( Throwable t ) {
+            t.printStackTrace();
+        }
+    }
 
-		System.out.println(application);
-	}
+    /**
+     * Load KnowledgeBase using KnowledgeAgent configured with accompanying changeset.xml
+     * 
+     * @return A KnowledgeBase
+     * @throws Exception
+     */
+    private static KnowledgeBase readKnowledgeBase() throws Exception {
+        KnowledgeAgent kagent = KnowledgeAgentFactory
+                .newKnowledgeAgent( "MortgageAgent" );
+        kagent.applyChangeSet( ResourceFactory
+                .newClassPathResource( "changeset.xml" ) );
+        KnowledgeBase kbase = kagent.getKnowledgeBase();
+        kagent.dispose();
+        return kbase;
+    }
 
 }

Deleted: labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/mortgageapproval.properties
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/mortgageapproval.properties	2010-11-03 23:47:15 UTC (rev 35857)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-brms/mortgage-example/mortgage-client/src/mortgageapproval.properties	2010-11-04 00:28:35 UTC (rev 35858)
@@ -1,33 +0,0 @@
-##
-## RuleAgent configuration file example
-##
-
-#setting this means the rulebase will be created fresh whenever there are
-#changes
-newInstance=true
-
-#this points to a binary compiled rule package, you can have spaces
-#seperating multiple files
-#file=/foo/bar/boo.pkg /foo/bar/boo2.pkg
-
-#this specifies that packages may appear in a directory
-#it will pick up whatever files are dumped in there (.pkg files like above)
-#dir=/my/dir
-
-#this specifies a list of urls for packages - these urls
-#are those that are exposed by the BRMS
-url=http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/mortgages/TEST
-
-#the following can be used with the urls to keep a local cache
-#so if the runtime server is restarted, the BRMS does not need
-#to be available
-#localCacheDir=
-
-#this specifies the frequency at which the sources will be checked for
-#changes (in seconds). If you don't set this, it will mean that you have
-#to manually poll
-poll=30
-
-
-#this specifies the name of this config, necessary in case logging is used.
-name=MyConfig
\ No newline at end of file



More information about the jboss-svn-commits mailing list