[jboss-svn-commits] JBL Code SVN: r23918 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples: cdss and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Nov 18 06:08:34 EST 2008
Author: Rikkola
Date: 2008-11-18 06:08:34 -0500 (Tue, 18 Nov 2008)
New Revision: 23918
Modified:
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/FibonacciExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PricingRuleDTExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/cdss/CDSSExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExampleWithDSL.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketWithDT.java
Log:
Third part of drools-examples that use drools-api
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/FibonacciExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/FibonacciExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/FibonacciExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -4,6 +4,7 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
+import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.KnowledgeType;
@@ -22,14 +23,14 @@
final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
- // final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
- // logger.setFileName( "log/fibonacci" );
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/fibonacci" );
session.insert( new Fibonacci( 10 ) );
session.fireAllRules();
- // logger.writeToDisk();
+ logger.writeToDisk();
session.dispose(); // Stateful rule session must always be disposed when finished
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -8,6 +8,7 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
+import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.KnowledgeType;
@@ -46,21 +47,21 @@
session.setGlobal( "list",
new ArrayList() );
-// session.addEventListener( new DebugAgendaEventListener() );
-// session.addEventListener( new DebugWorkingMemoryEventListener() );
-
-// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
-// logger.setFileName( "log/helloworld" );
+ // session.addEventListener( new DebugAgendaEventListener() );
+ // session.addEventListener( new DebugWorkingMemoryEventListener() );
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/helloworld" );
+
final Message message = new Message();
message.setMessage( "Hello World" );
message.setStatus( Message.HELLO );
session.insert( message );
-
+
session.fireAllRules();
-
-// logger.writeToDisk();
-
+
+ logger.writeToDisk();
+
session.dispose();
}
@@ -91,13 +92,14 @@
public void setStatus(final int status) {
this.status = status;
}
-
+
public static Message doSomething(Message message) {
return message;
}
-
- public boolean isSomething(String msg, List list) {
- list.add( this );
+
+ public boolean isSomething(String msg,
+ List list) {
+ list.add( this );
return this.message.equals( msg );
}
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -3,12 +3,14 @@
import java.io.File;
import java.io.InputStreamReader;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.runtime.StatefulKnowledgeSession;
public class HonestPoliticianExample {
@@ -17,70 +19,78 @@
*/
public static void main(final String[] args) throws Exception {
- PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
- conf.setDumpDir( new File("target") );
- final PackageBuilder builder = new PackageBuilder(conf);
- builder.addPackageFromDrl( new InputStreamReader( HonestPoliticianExample.class.getResourceAsStream( "HonestPolitician.drl" ) ) );
+ KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
+ conf.setProperty( "drools.dump.dir",
+ "target" );
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ final KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ builder.addResource( new InputStreamReader( HonestPoliticianExample.class.getResourceAsStream( "HonestPolitician.drl" ) ),
+ KnowledgeType.DRL );
- final StatefulSession session = ruleBase.newStatefulSession();
+ final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+ knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+ final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+
final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
logger.setFileName( "log/honest-politician" );
- final Politician blair = new Politician("blair", true);
- final Politician bush = new Politician("bush", true);
- final Politician chirac = new Politician("chirac", true);
- final Politician schroder = new Politician("schroder", true);
-
+ final Politician blair = new Politician( "blair",
+ true );
+ final Politician bush = new Politician( "bush",
+ true );
+ final Politician chirac = new Politician( "chirac",
+ true );
+ final Politician schroder = new Politician( "schroder",
+ true );
+
session.insert( blair );
session.insert( bush );
session.insert( chirac );
session.insert( schroder );
session.fireAllRules();
-
+
logger.writeToDisk();
-
+
session.dispose();
}
-
+
public static class Politician {
- private String name;
-
- private boolean honest;
-
- public Politician() {
-
- }
-
- public Politician(String name, boolean honest) {
- super();
- this.name = name;
- this.honest = honest;
- }
-
- public boolean isHonest() {
- return honest;
- }
-
- public void setHonest(boolean honest) {
- this.honest = honest;
- }
+ private String name;
- public String getName() {
- return name;
- }
+ private boolean honest;
+
+ public Politician() {
+
+ }
+
+ public Politician(String name,
+ boolean honest) {
+ super();
+ this.name = name;
+ this.honest = honest;
+ }
+
+ public boolean isHonest() {
+ return honest;
+ }
+
+ public void setHonest(boolean honest) {
+ this.honest = honest;
+ }
+
+ public String getName() {
+ return name;
+ }
}
public static class Hope {
-
- public Hope() {
-
- }
-
+
+ public Hope() {
+
+ }
+
}
-
+
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -5,6 +5,7 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
+import org.drools.audit.WorkingMemoryFileLogger;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.KnowledgeType;
@@ -24,8 +25,8 @@
final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
-// final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
-// logger.setFileName( "log/numberguess" );
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+ logger.setFileName( "log/numberguess" );
session.insert( new GameRules( 100,
5 ) );
@@ -35,7 +36,7 @@
session.startProcess( "Number Guess" );
session.fireAllRules();
-// logger.writeToDisk();
+ logger.writeToDisk();
session.dispose();
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PricingRuleDTExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PricingRuleDTExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PricingRuleDTExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -2,76 +2,62 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.StringReader;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.StatelessSession;
-import org.drools.WorkingMemory;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.decisiontable.InputType;
-import org.drools.decisiontable.SpreadsheetCompiler;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.DecisionTableInputType;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
import org.drools.examples.decisiontable.Driver;
import org.drools.examples.decisiontable.Policy;
+import org.drools.runtime.StatelessKnowledgeSession;
/**
* This shows off a decision table.
*/
public class PricingRuleDTExample {
- public static final void main(String[] args) throws Exception {
- PricingRuleDTExample launcher = new PricingRuleDTExample();
- launcher.executeExample();
+ public static final void main(String[] args) throws Exception {
+ PricingRuleDTExample launcher = new PricingRuleDTExample();
+ launcher.executeExample();
}
-
+
public int executeExample() throws Exception {
-
- //first we compile the decision table into a whole lot of rules.
- SpreadsheetCompiler compiler = new SpreadsheetCompiler();
- String drl = compiler.compile(getSpreadsheetStream(), InputType.XLS);
- //UNCOMMENT ME TO SEE THE DRL THAT IS GENERATED
- //System.out.println(drl);
+ DecisionTableConfiguration conf = KnowledgeBuilderFactory.newDecisionTableConfiguration();
+ conf.setInputType( DecisionTableInputType.XLS );
- RuleBase ruleBase = buildRuleBase(drl);
-
+ KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ builder.addResource( new InputStreamReader( getSpreadsheetStream(),
+ "windows-1252" ),
+ KnowledgeType.DTABLE,
+ conf );
+
+ KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+ knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+
// typical decision tables are used statelessly
- StatelessSession session = ruleBase.newStatelessSession();
-
- //now create some test data
- Driver driver = new Driver();
- Policy policy = new Policy();
-
- session.execute( new Object[] { driver, policy } );
-
- System.out.println("BASE PRICE IS: " + policy.getBasePrice());
- System.out.println("DISCOUNT IS: " + policy.getDiscountPercent());
-
- return policy.getBasePrice();
-
- }
+ StatelessKnowledgeSession session = knowledgeBase.newStatelessKnowledgeSession();
+ //now create some test data
+ Driver driver = new Driver();
+ Policy policy = new Policy();
- /** Build the rule base from the generated DRL */
- private RuleBase buildRuleBase(String drl) throws DroolsParserException, IOException, Exception {
- //now we build the rule package and rulebase, as if they are normal rules
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader(drl) );
-
- //add the package to a rulebase (deploy the rule package).
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( builder.getPackage() );
- return ruleBase;
- }
-
+ session.executeObject( new Object[]{driver, policy} );
- private InputStream getSpreadsheetStream() {
- return this.getClass().getResourceAsStream("ExamplePolicyPricing.xls");
- }
+ System.out.println( "BASE PRICE IS: " + policy.getBasePrice() );
+ System.out.println( "DISCOUNT IS: " + policy.getDiscountPercent() );
+ return policy.getBasePrice();
+ }
-
+ private InputStream getSpreadsheetStream() {
+ return this.getClass().getResourceAsStream( "ExamplePolicyPricing.xls" );
+ }
+
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/cdss/CDSSExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/cdss/CDSSExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/cdss/CDSSExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -5,15 +5,16 @@
import java.util.Iterator;
import java.util.List;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.WorkingMemory;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.compiler.PackageBuilder;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
import org.drools.examples.cdss.data.Diagnose;
import org.drools.examples.cdss.data.Patient;
import org.drools.examples.cdss.service.RecommendationService;
-import org.drools.rule.Package;
+import org.drools.runtime.StatefulKnowledgeSession;
/**
* This is a sample file to launch a rule package from a rule source file.
@@ -22,79 +23,81 @@
public static final void main(String[] args) {
try {
-
- //load up the rulebase
- RuleBase ruleBase = readRule();
- WorkingMemory workingMemory = ruleBase.newStatefulSession();
- WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(workingMemory);
+ //load up the rulebase
+ KnowledgeBase knowledgeBase = readRule();
+
+ StatefulKnowledgeSession workingMemory = knowledgeBase.newStatefulKnowledgeSession();
+ WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( workingMemory );
+
// set globals
RecommendationService recommendationService = new RecommendationService();
- workingMemory.setGlobal("recommendationService", recommendationService);
-
+ workingMemory.setGlobal( "recommendationService",
+ recommendationService );
+
// create patient
Patient patient = new Patient();
- patient.setName("John Doe");
- patient.setAge(20);
- workingMemory.insert(patient);
-
+ patient.setName( "John Doe" );
+ patient.setAge( 20 );
+ workingMemory.insert( patient );
+
// Go!
- Diagnose diagnose = new Diagnose(Terminology.DIAGNOSE_X);
- workingMemory.insert(diagnose);
+ Diagnose diagnose = new Diagnose( Terminology.DIAGNOSE_X );
+ workingMemory.insert( diagnose );
workingMemory.fireAllRules();
-
+
// Print out recommendations
List recommendations = recommendationService.getRecommendations();
- for (Iterator iterator = recommendations.iterator(); iterator.hasNext(); ) {
- System.out.println(iterator.next());
+ for ( Iterator iterator = recommendations.iterator(); iterator.hasNext(); ) {
+ System.out.println( iterator.next() );
}
recommendations.clear();
-
+
// Simulate a diagnose: incomplete results
- diagnose = new Diagnose(Terminology.DIAGNOSE_X_TYPE_UNKNOWN);
- workingMemory.insert(diagnose);
+ diagnose = new Diagnose( Terminology.DIAGNOSE_X_TYPE_UNKNOWN );
+ workingMemory.insert( diagnose );
workingMemory.fireAllRules();
-
+
// Print out recommendations
recommendations = recommendationService.getRecommendations();
- for (Iterator iterator = recommendations.iterator(); iterator.hasNext(); ) {
- System.out.println(iterator.next());
+ for ( Iterator iterator = recommendations.iterator(); iterator.hasNext(); ) {
+ System.out.println( iterator.next() );
}
recommendations.clear();
-
+
// Simulate a diagnose: type2
- diagnose = new Diagnose(Terminology.DIAGNOSE_X_TYPE2);
- workingMemory.insert(diagnose);
+ diagnose = new Diagnose( Terminology.DIAGNOSE_X_TYPE2 );
+ workingMemory.insert( diagnose );
workingMemory.fireAllRules();
-
+
logger.writeToDisk();
- } catch (Throwable t) {
+ } catch ( Throwable t ) {
t.printStackTrace();
}
}
- private static RuleBase readRule() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- Reader reader = new InputStreamReader(
- CDSSExample.class.getResourceAsStream("/org/drools/examples/cdss/GenericRules.drl"));
- builder.addPackageFromDrl(reader);
- reader = new InputStreamReader(
- CDSSExample.class.getResourceAsStream("/org/drools/examples/cdss/ClinicalPathwayX.drl"));
- builder.addPackageFromDrl(reader);
- reader = new InputStreamReader(
- CDSSExample.class.getResourceAsStream("/org/drools/examples/cdss/ClinicalPathwayX.rf"));
- builder.addRuleFlow(reader);
- reader = new InputStreamReader(
- CDSSExample.class.getResourceAsStream("/org/drools/examples/cdss/TreatmentX.rf"));
- builder.addRuleFlow(reader);
- reader = new InputStreamReader(
- CDSSExample.class.getResourceAsStream("/org/drools/examples/cdss/TreatmentY.rf"));
- builder.addRuleFlow(reader);
+ private static KnowledgeBase readRule() throws Exception {
+ KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ Reader reader = new InputStreamReader( CDSSExample.class.getResourceAsStream( "/org/drools/examples/cdss/GenericRules.drl" ) );
+ builder.addResource( reader,
+ KnowledgeType.DRL );
+ reader = new InputStreamReader( CDSSExample.class.getResourceAsStream( "/org/drools/examples/cdss/ClinicalPathwayX.drl" ) );
+ builder.addResource( reader,
+ KnowledgeType.DRL );
+ reader = new InputStreamReader( CDSSExample.class.getResourceAsStream( "/org/drools/examples/cdss/ClinicalPathwayX.rf" ) );
+ builder.addResource( reader,
+ KnowledgeType.DRF );
+ reader = new InputStreamReader( CDSSExample.class.getResourceAsStream( "/org/drools/examples/cdss/TreatmentX.rf" ) );
+ builder.addResource( reader,
+ KnowledgeType.DRF );
+ reader = new InputStreamReader( CDSSExample.class.getResourceAsStream( "/org/drools/examples/cdss/TreatmentY.rf" ) );
+ builder.addResource( reader,
+ KnowledgeType.DRF );
- Package pkg = builder.getPackage();
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( pkg );
- return ruleBase;
- }
+ KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+ knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+
+ return knowledgeBase;
+ }
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -15,7 +15,6 @@
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.KnowledgeType;
-import org.drools.definition.KnowledgePackage;
public class DroolsUtil {
private static DroolsUtil INSTANCE;
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExample.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExample.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -4,6 +4,7 @@
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
+import org.drools.audit.ThreadedWorkingMemoryFileLogger;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.KnowledgeType;
@@ -26,9 +27,9 @@
final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
- // ThreadedWorkingMemoryFileLogger logger = new ThreadedWorkingMemoryFileLogger(session);
- // logger.setFileName( "log/trouble_ticket" );
- // logger.start(1000);
+ ThreadedWorkingMemoryFileLogger logger = new ThreadedWorkingMemoryFileLogger( session );
+ logger.setFileName( "log/trouble_ticket" );
+ logger.start( 1000 );
final Customer a = new Customer( "A",
"Drools",
@@ -76,8 +77,8 @@
session.dispose();
- // logger.stop();
- // logger.writeToDisk();
+ logger.stop();
+ logger.writeToDisk();
}
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExampleWithDSL.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExampleWithDSL.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketExampleWithDSL.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -3,12 +3,14 @@
import java.io.InputStreamReader;
import java.io.Reader;
-import org.drools.FactHandle;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.compiler.PackageBuilder;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.rule.FactHandle;
public class TroubleTicketExampleWithDSL {
@@ -17,15 +19,18 @@
*/
public static void main(final String[] args) throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( getSource(),
- getDSL() );
+ final KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ builder.addResource( getDSL(),
+ KnowledgeType.DSL );
+ builder.addResource( getSource(),
+ KnowledgeType.DSLR );
- final StatefulSession session = ruleBase.newStatefulSession();
+ final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+ knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+ final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+
final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
logger.setFileName( "log/state" );
@@ -70,7 +75,7 @@
} catch ( final InterruptedException e ) {
e.printStackTrace();
}
-
+
System.err.println( "[[ awake ]]" );
session.fireAllRules();
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketWithDT.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketWithDT.java 2008-11-18 08:54:36 UTC (rev 23917)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/troubleticket/TroubleTicketWithDT.java 2008-11-18 11:08:34 UTC (rev 23918)
@@ -1,47 +1,46 @@
package org.drools.examples.troubleticket;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.StringReader;
+import java.io.InputStreamReader;
-import org.drools.FactHandle;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.StatelessSession;
-import org.drools.WorkingMemory;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.decisiontable.InputType;
-import org.drools.decisiontable.SpreadsheetCompiler;
-import org.drools.examples.decisiontable.Driver;
-import org.drools.examples.decisiontable.Policy;
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.DecisionTableInputType;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.rule.FactHandle;
/**
* This shows off a decision table.
*/
public class TroubleTicketWithDT {
- public static final void main(String[] args) throws Exception {
- TroubleTicketWithDT launcher = new TroubleTicketWithDT();
- launcher.executeExample();
+ public static final void main(String[] args) throws Exception {
+ TroubleTicketWithDT launcher = new TroubleTicketWithDT();
+ launcher.executeExample();
}
-
+
public void executeExample() throws Exception {
-
- //first we compile the decision table into a whole lot of rules.
- SpreadsheetCompiler compiler = new SpreadsheetCompiler();
- String drl = compiler.compile(getSpreadsheetStream(), InputType.XLS);
- //UNCOMMENT ME TO SEE THE DRL THAT IS GENERATED
- //System.out.println(drl);
+ final DecisionTableConfiguration conf = KnowledgeBuilderFactory.newDecisionTableConfiguration();
+ conf.setInputType( DecisionTableInputType.XLS );
- RuleBase ruleBase = buildRuleBase(drl);
-
+ final KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ builder.addResource( new InputStreamReader( getSpreadsheetStream(),
+ "windows-1252" ),
+ KnowledgeType.DTABLE,
+ conf );
+
+ final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+ knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+
// typical decision tables are used statelessly
- StatefulSession session = ruleBase.newStatefulSession();
-
+ StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+
final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
logger.setFileName( "log/trouble_ticket" );
@@ -92,28 +91,11 @@
session.dispose();
logger.writeToDisk();
-
+
}
-
- /** Build the rule base from the generated DRL */
- private RuleBase buildRuleBase(String drl) throws DroolsParserException, IOException, Exception {
- //now we build the rule package and rulebase, as if they are normal rules
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader(drl) );
-
- //add the package to a rulebase (deploy the rule package).
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( builder.getPackage() );
- return ruleBase;
- }
-
-
private InputStream getSpreadsheetStream() {
- return this.getClass().getResourceAsStream("TroubleTicket.xls");
- }
+ return this.getClass().getResourceAsStream( "TroubleTicket.xls" );
+ }
-
-
-
}
More information about the jboss-svn-commits
mailing list