[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