[jboss-svn-commits] JBL Code SVN: r23895 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools: benchmark/waltz and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Nov 17 10:07:59 EST 2008


Author: Rikkola
Date: 2008-11-17 10:07:59 -0500 (Mon, 17 Nov 2008)
New Revision: 23895

Modified:
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java
   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/NumberGuessExample.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/ruleflow/WorkItemExample.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsSudokuGridModel.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java
Log:
Second part of drools-examples that use drools-api

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java	2008-11-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/manners/MannersBenchmark.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -7,18 +7,22 @@
 import java.io.InputStreamReader;
 import java.io.StringWriter;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Random;
 import java.util.StringTokenizer;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.rule.Package;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderConfiguration;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.definition.KnowledgePackage;
+import org.drools.runtime.StatefulKnowledgeSession;
 
+
 public class MannersBenchmark {
 	/** Number of guests at the dinner (default: 16). */
 	private int numGuests = 16;
@@ -33,18 +37,18 @@
 	private int maxHobbies = 3;
 
 	public static void main(final String[] args) throws Exception {
-	    PackageBuilderConfiguration config = new PackageBuilderConfiguration();
+	    KnowledgeBuilderConfiguration config= KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
 	    
-		PackageBuilder builder = new PackageBuilder(config);
-		builder.addPackageFromDrl(new InputStreamReader(MannersBenchmark.class
-				.getResourceAsStream("manners.drl")));
-		Package pkg = builder.getPackage();
+	    KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(config);
+	    builder.addResource( new InputStreamReader(MannersBenchmark.class
+				.getResourceAsStream("manners.drl")), KnowledgeType.DRL);
+	    Collection<KnowledgePackage> pkgs = builder.getKnowledgePackages();
 		
         // add the package to a rulebase
-		final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-		ruleBase.addPackage(pkg);
+	    final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+	    knowledgeBase.addKnowledgePackages( pkgs );
 
-		StatefulSession session = ruleBase.newStatefulSession();
+	    StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
 
 		String filename;
 		if (args.length != 0) {

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java	2008-11-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltz/WaltzBenchmark.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -1,4 +1,5 @@
 package org.drools.benchmark.waltz;
+
 /*
  * Copyright 2005 JBoss Inc
  * 
@@ -15,75 +16,79 @@
  * limitations under the License.
  */
 
-
-
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.util.Collection;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.WorkingMemory;
-import org.drools.compiler.PackageBuilder;
-import org.drools.rule.Package;
- 
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.definition.KnowledgePackage;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.rule.WorkingMemory;
+
 /**
  * This is a sample file to launch a rule package from a rule source file.
  */
 public abstract class WaltzBenchmark {
 
     public static void main(final String[] args) throws Exception {
-            PackageBuilder builder = new PackageBuilder();
-            builder.addPackageFromDrl( new InputStreamReader( WaltzBenchmark.class.getResourceAsStream( "waltz.drl" ) ) );
-            Package pkg = builder.getPackage();
-            //add the package to a rulebase
-            RuleBaseConfiguration conf = new RuleBaseConfiguration();
-            //conf.setAlphaMemory( true );
-//            conf.setShadowProxy( false );
-            final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
-            ruleBase.addPackage( pkg );
-            
-            StatefulSession session = ruleBase.newStatefulSession();
-            
-            String filename;
-            if (  args.length != 0 ) {
-                String arg = args[0];                
-                filename  = arg;                
-            } else {
-                filename  = "waltz12.dat";
-            }
-            
-            loadLines( session, filename );
-            
-            Stage stage = new Stage(Stage.DUPLICATE);
-            session.insert( stage );
-                        
-            long start = System.currentTimeMillis();
-            session.setGlobal( "time", start );
-            session.fireAllRules();
-            System.out.println( (System.currentTimeMillis() - start) / 1000 );
-            session.dispose();
+        KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        builder.addResource( new InputStreamReader( WaltzBenchmark.class.getResourceAsStream( "waltz.drl" ) ),
+                             KnowledgeType.DRL );
+        Collection<KnowledgePackage> pkgs = builder.getKnowledgePackages();
+        //add the package to a rulebase
+        KnowledgeBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
+        //conf.setAlphaMemory( true );
+        //            conf.setShadowProxy( false );
+        final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase( conf );
+        knowledgeBase.addKnowledgePackages( pkgs );
+
+        StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+
+        String filename;
+        if ( args.length != 0 ) {
+            String arg = args[0];
+            filename = arg;
+        } else {
+            filename = "waltz12.dat";
+        }
+
+        loadLines( session,
+                   filename );
+
+        Stage stage = new Stage( Stage.DUPLICATE );
+        session.insert( stage );
+
+        long start = System.currentTimeMillis();
+        session.setGlobal( "time",
+                           start );
+        session.fireAllRules();
+        System.out.println( (System.currentTimeMillis() - start) / 1000 );
+        session.dispose();
     }
 
-    
-    private static void loadLines(WorkingMemory wm, String filename) throws IOException {
-        BufferedReader reader = new BufferedReader(new InputStreamReader( WaltzBenchmark.class.getResourceAsStream( filename ) ));
+    private static void loadLines(WorkingMemory wm,
+                                  String filename) throws IOException {
+        BufferedReader reader = new BufferedReader( new InputStreamReader( WaltzBenchmark.class.getResourceAsStream( filename ) ) );
         Pattern pat = Pattern.compile( ".*make line \\^p1 ([0-9]*) \\^p2 ([0-9]*).*" );
         String line = reader.readLine();
-        while(line != null) {
+        while ( line != null ) {
             Matcher m = pat.matcher( line );
-            if(m.matches()) {
-                Line l = new Line(Integer.parseInt( m.group( 1 ) ),
-                                  Integer.parseInt( m.group( 2 ) ) );
+            if ( m.matches() ) {
+                Line l = new Line( Integer.parseInt( m.group( 1 ) ),
+                                   Integer.parseInt( m.group( 2 ) ) );
                 wm.insert( l );
             }
             line = reader.readLine();
         }
         reader.close();
     }
-    
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java	2008-11-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/waltzdb/WaltzDbBenchmark.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -1,85 +1,98 @@
 package org.drools.benchmark.waltzdb;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.compiler.PackageBuilder;
-import org.drools.rule.Package;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.definition.KnowledgePackage;
+import org.drools.runtime.StatefulKnowledgeSession;
 
+public class WaltzDbBenchmark {
+    public static void main(final String[] args) throws Exception {
+        KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        builder.addResource( new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( "waltzdb.drl" ) ),
+                             KnowledgeType.DRL );
+        Collection<KnowledgePackage> pkgs = builder.getKnowledgePackages();
 
-public class WaltzDbBenchmark {
-    public static void main(final String[] args) throws Exception {        	
-            PackageBuilder builder = new PackageBuilder();
-            builder.addPackageFromDrl( new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( "waltzdb.drl" ) ) );
-            Package pkg = builder.getPackage();
-            
-            RuleBaseConfiguration conf = new RuleBaseConfiguration();
-    		conf.setRemoveIdentities( true );
-    		final RuleBase ruleBase = RuleBaseFactory.newRuleBase(RuleBase.RETEOO, conf);
-           
-    		ruleBase.addPackage( pkg );
-           
-            StatefulSession session = ruleBase.newStatefulSession();
-            
-            java.util.List lines = WaltzDbBenchmark.loadLines("waltzdb16.dat"); //12,8,4
-            java.util.List labels = WaltzDbBenchmark.loadLabels("waltzdb16.dat"); //12,8,4
-            long now = System.currentTimeMillis();
-        	Iterator iter =lines.iterator();
-        	while(iter.hasNext()){
-        		Line line = (Line)iter.next();
-        		session.insert(line);
-        		System.out.println(line.getP1() + " " +  line.getP2());
-        	}
-        	
-        	iter =labels.iterator();
-        	while(iter.hasNext()){
-        		Label label = (Label)iter.next();
-        		session.insert(label);
-        		System.out.println(label.getId() + " " +  label.getType());
-        	}
-            
-            Stage stage = new Stage(Stage.DUPLICATE);
-            session.insert( stage );
-            session.fireAllRules();        
-        	System.out.println("Time: " + (System.currentTimeMillis() - now));
-        	session.dispose();
-        
+        KnowledgeBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
+        conf.setProperty( "drools.removeIdentities", "true" );
+
+        final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase( conf );
+//                final RuleBase ruleBase = RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+//                                                               conf );
+
+        knowledgeBase.addKnowledgePackages( pkgs );
+
+        StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+
+        java.util.List lines = WaltzDbBenchmark.loadLines( "waltzdb16.dat" ); //12,8,4
+        java.util.List labels = WaltzDbBenchmark.loadLabels( "waltzdb16.dat" ); //12,8,4
+        long now = System.currentTimeMillis();
+        Iterator iter = lines.iterator();
+        while ( iter.hasNext() ) {
+            Line line = (Line) iter.next();
+            session.insert( line );
+            System.out.println( line.getP1() + " " + line.getP2() );
+        }
+
+        iter = labels.iterator();
+        while ( iter.hasNext() ) {
+            Label label = (Label) iter.next();
+            session.insert( label );
+            System.out.println( label.getId() + " " + label.getType() );
+        }
+
+        Stage stage = new Stage( Stage.DUPLICATE );
+        session.insert( stage );
+        session.fireAllRules();
+        System.out.println( "Time: " + (System.currentTimeMillis() - now) );
+        session.dispose();
+
     }
 
     private static java.util.List loadLines(String filename) throws IOException {
-        BufferedReader reader = new BufferedReader(new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ));
+        BufferedReader reader = new BufferedReader( new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ) );
         Pattern pat = Pattern.compile( ".*make line \\^p1 ([0-9]*) \\^p2 ([0-9]*).*" );
         String line = reader.readLine();
         java.util.List result = new java.util.ArrayList();
-        while(line != null) {
+        while ( line != null ) {
             Matcher m = pat.matcher( line );
-            if(m.matches()) {
-                Line l = new Line(Integer.parseInt( m.group( 1 ) ),
-                                  Integer.parseInt( m.group( 2 ) ) );
-                result.add(l);
+            if ( m.matches() ) {
+                Line l = new Line( Integer.parseInt( m.group( 1 ) ),
+                                   Integer.parseInt( m.group( 2 ) ) );
+                result.add( l );
             }
             line = reader.readLine();
         }
         reader.close();
         return result;
     }
+
     private static java.util.List loadLabels(String filename) throws IOException {
-        BufferedReader reader = new BufferedReader(new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ));
+        BufferedReader reader = new BufferedReader( new InputStreamReader( WaltzDbBenchmark.class.getResourceAsStream( filename ) ) );
         Pattern pat = Pattern.compile( ".*make label \\^type ([0-9a-z]*) \\^name ([0-9a-zA-Z]*) \\^id ([0-9]*) \\^n1 ([B+-]*) \\^n2 ([B+-]*)( \\^n3 ([B+-]*))?.*" );
         String line = reader.readLine();
         java.util.List result = new java.util.ArrayList();
-        while(line != null) {
+        while ( line != null ) {
             Matcher m = pat.matcher( line );
-            if(m.matches()) {
-                Label l = new Label(m.group( 1 ),m.group( 2 ), m.group(3) , m.group(4), m.group(5), m.group(6) );
-                result.add(l);
+            if ( m.matches() ) {
+                Label l = new Label( m.group( 1 ),
+                                     m.group( 2 ),
+                                     m.group( 3 ),
+                                     m.group( 4 ),
+                                     m.group( 5 ),
+                                     m.group( 6 ) );
+                result.add( l );
             }
             line = reader.readLine();
         }

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-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/FibonacciExample.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -4,10 +4,6 @@
 
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.audit.WorkingMemoryFileLogger;
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.builder.KnowledgeType;

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-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HelloWorldExample.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -3,19 +3,16 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.common.DefaultAgenda;
-import org.drools.compiler.PackageBuilder;
-import org.drools.event.DebugAgendaEventListener;
-import org.drools.event.DebugWorkingMemoryEventListener;
-import org.drools.event.DefaultAgendaEventListener;
-import org.drools.event.DefaultWorkingMemoryEventListener;
-import org.drools.rule.Package;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.definition.KnowledgePackage;
+import org.drools.runtime.StatefulKnowledgeSession;
 
 /**
  * This is a sample file to launch a rule package from a rule source file.
@@ -26,32 +23,34 @@
         //read in the source
         final Reader source = new InputStreamReader( HelloWorldExample.class.getResourceAsStream( "HelloWorld.drl" ) );
 
-        final PackageBuilder builder = new PackageBuilder();
+        final KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
 
         //this will parse and compile in one step
-        builder.addPackageFromDrl( source );
-        
+        builder.addResource( source,
+                             KnowledgeType.DRL );
+
         // Check the builder for errors
         if ( builder.hasErrors() ) {
             System.out.println( builder.getErrors().toString() );
-            throw new RuntimeException( "Unable to compile \"HelloWorld.drl\".");
+            throw new RuntimeException( "Unable to compile \"HelloWorld.drl\"." );
         }
 
         //get the compiled package (which is serializable)
-        final Package pkg = builder.getPackage();
+        final Collection<KnowledgePackage> pkgs = builder.getKnowledgePackages();
 
         //add the package to a rulebase (deploy the rule package).
-        final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-        ruleBase.addPackage( pkg );
+        final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+        knowledgeBase.addKnowledgePackages( pkgs );
 
-        final StatefulSession session = ruleBase.newStatefulSession();
-        session.setGlobal( "list", new ArrayList() );
+        final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
+        session.setGlobal( "list",
+                           new ArrayList() );
+
+//        session.addEventListener( new DebugAgendaEventListener() );
+//        session.addEventListener( new DebugWorkingMemoryEventListener() );
         
-        session.addEventListener( new DebugAgendaEventListener() );
-        session.addEventListener( new DebugWorkingMemoryEventListener() );
-        
-        final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
-        logger.setFileName( "log/helloworld" );        
+//        final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( session );
+//        logger.setFileName( "log/helloworld" );        
 
         final Message message = new Message();
         message.setMessage( "Hello World" );
@@ -60,7 +59,7 @@
         
         session.fireAllRules();
         
-        logger.writeToDisk();
+//        logger.writeToDisk();
         
         session.dispose();
     }

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-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -3,31 +3,29 @@
 import java.io.InputStreamReader;
 import java.util.Random;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.WorkingMemory;
-import org.drools.audit.WorkingMemoryFileLogger;
-import org.drools.compiler.PackageBuilder;
-import org.drools.event.DefaultRuleFlowEventListener;
-import org.drools.event.RuleFlowEventListener;
-import org.drools.event.RuleFlowGroupDeactivatedEvent;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
+import org.drools.runtime.StatefulKnowledgeSession;
 
 public class NumberGuessExample {
 
     public static final void main(String[] args) throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.drl" ) ) );
+        final KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        builder.addResource( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.drl" ) ),
+                             KnowledgeType.DRL );
+        builder.addResource( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.rf" ) ),
+                             KnowledgeType.DRF );
 
-        builder.addRuleFlow( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.rf" ) ) );
+        final KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
+        knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
 
-        final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-        ruleBase.addPackage( builder.getPackage() );
+        final StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
 
-        final StatefulSession session = ruleBase.newStatefulSession();
-        
-        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 ) );
@@ -36,9 +34,9 @@
 
         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/ruleflow/WorkItemExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/ruleflow/WorkItemExample.java	2008-11-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/ruleflow/WorkItemExample.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -3,47 +3,52 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.WorkingMemory;
-import org.drools.compiler.PackageBuilder;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.KnowledgeType;
 import org.drools.process.instance.impl.demo.SystemOutWorkItemHandler;
 import org.drools.process.instance.impl.demo.UIWorkItemHandler;
-import org.drools.rule.Package;
+import org.drools.runtime.StatefulKnowledgeSession;
 
 public class WorkItemExample {
 
     public static final void main(String[] args) {
         try {
-            RuleBase ruleBase = readRule();
-            WorkingMemory workingMemory = ruleBase.newStatefulSession();
-            
+            KnowledgeBase knowledgeBase = readRule();
+            StatefulKnowledgeSession workingMemory = knowledgeBase.newStatefulKnowledgeSession();
+
             // logging all work items to sysout
             SystemOutWorkItemHandler handler = new SystemOutWorkItemHandler();
-            workingMemory.getWorkItemManager().registerWorkItemHandler("Email", handler);
-            workingMemory.getWorkItemManager().registerWorkItemHandler("Log", handler);
-            
+            workingMemory.getWorkItemManager().registerWorkItemHandler( "Email",
+                                                                        handler );
+            workingMemory.getWorkItemManager().registerWorkItemHandler( "Log",
+                                                                        handler );
+
             // using a dialog to show all work items
             UIWorkItemHandler handler2 = new UIWorkItemHandler();
             //workingMemory.getWorkItemManager().registerWorkItemHandler("Email", handler2);
             //workingMemory.getWorkItemManager().registerWorkItemHandler("Log", handler2);
             //handler2.setVisible(true);
-            
-            workingMemory.startProcess("com.sample.ruleflow");
+
+            workingMemory.startProcess( "com.sample.ruleflow" );
             workingMemory.fireAllRules();
-        } catch (Throwable t) {
+        } catch ( Throwable t ) {
             t.printStackTrace();
         }
     }
 
-	private static RuleBase readRule() throws Exception {
-		PackageBuilder builder = new PackageBuilder();
-		Reader source = new InputStreamReader( WorkItemExample.class.getResourceAsStream( "/org/drools/examples/ruleflow/workitems.rf" ) );
-		builder.addRuleFlow(source);
-		Package pkg = builder.getPackage();
-		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-		ruleBase.addPackage( pkg );
-		return ruleBase;
-	}
-	
+    private static KnowledgeBase readRule() throws Exception {
+        KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        Reader source = new InputStreamReader( WorkItemExample.class.getResourceAsStream( "/org/drools/examples/ruleflow/workitems.rf" ) );
+        builder.addResource( source,
+                             KnowledgeType.DRF );
+
+        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/DroolsSudokuGridModel.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsSudokuGridModel.java	2008-11-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsSudokuGridModel.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -10,15 +10,16 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import org.drools.RuleBase;
-import org.drools.StatefulSession;
-import org.drools.event.ObjectInsertedEvent;
-import org.drools.event.ObjectRetractedEvent;
-import org.drools.event.ObjectUpdatedEvent;
-import org.drools.event.WorkingMemoryEventListener;
+
+import org.drools.KnowledgeBase;
+import org.drools.event.rule.ObjectInsertedEvent;
+import org.drools.event.rule.ObjectRetractedEvent;
+import org.drools.event.rule.ObjectUpdatedEvent;
+import org.drools.event.rule.WorkingMemoryEventListener;
 import org.drools.examples.sudoku.swing.AbstractSudokuGridModel;
 import org.drools.examples.sudoku.swing.SudokuGridEvent;
 import org.drools.examples.sudoku.swing.SudokuGridModel;
+import org.drools.runtime.StatefulKnowledgeSession;
 
 /**
  * An implementation of the SudokuGridModel interface which is backed by the Drools engine.
@@ -33,329 +34,302 @@
  * @version $Revision: 1.1 $
  */
 @SuppressWarnings("unchecked")
-public class DroolsSudokuGridModel
-   extends AbstractSudokuGridModel
-   implements SudokuGridModel
-{
-   /**
-    * The location of the DRL file which defines the rule base for solving a Sudoku grid
-    */
-   public final static String SUDOKU_SOLVER_DRL = "../sudokuSolver.drl";
-   
-   /**
-    * The location of the DRL file which defines the rule base for validating the content of a Sudoku grid
-    */
-   public final static String SUDOKU_VALIDATOR_DRL = "../sudokuValidator.drl";
-   
-   /** A set of AbtractCellValues capturing the current state of the grid */
-   private Set<AbstractCellValue> allCellValues 
-      = new HashSet<AbstractCellValue>();
-   
-   /** A index into the AbstractCellValues based on row and column */
-   private Set<Integer>[][] cellValuesByRowAndCol 
-      = new HashSet[SudokuGridModel.NUM_ROWS][SudokuGridModel.NUM_COLS];
+public class DroolsSudokuGridModel extends AbstractSudokuGridModel
+    implements
+    SudokuGridModel {
+    /**
+     * The location of the DRL file which defines the rule base for solving a Sudoku grid
+     */
+    public final static String          SUDOKU_SOLVER_DRL     = "../sudokuSolver.drl";
 
-   /** The solver rule base */
-   private RuleBase solverRuleBase;
-   
-   /** The stateful session working memory for the solver rule base */
-   private StatefulSession solverStatefulSession;
+    /**
+     * The location of the DRL file which defines the rule base for validating the content of a Sudoku grid
+     */
+    public final static String          SUDOKU_VALIDATOR_DRL  = "../sudokuValidator.drl";
 
-   /** An inner class implementation listening to working memory events */
-   private SudokuWorkingMemoryListener workingMemoryListener = new SudokuWorkingMemoryListener();
-   
-   /**
-    * Create a new DroolsSudokuGridModel with an empty grid.
-    */
-   public DroolsSudokuGridModel()
-   {
-   
-   }
+    /** A set of AbtractCellValues capturing the current state of the grid */
+    private Set<AbstractCellValue>      allCellValues         = new HashSet<AbstractCellValue>();
 
-   /**
-    * Create a new DroolsSudokuGridModel with the specified values.
-    * 
-    * @param cellValues a two dimensional grid of Integer values for cells, a null means the value is not yet resolved
-    */
-   public DroolsSudokuGridModel(Integer[][] cellValues)
-   {  
-      this();
-      setCellValues(cellValues);
-   }
-   
-   /**
-    * Set the state of the Grid based on a two dimensional array of Integers.
-    * 
-    * @param cellValues a two dimensional grid of Integer values for cells, a null means the value is not yet resolved
-    */
-   public void setCellValues(Integer[][] cellValues)
-   {
-      long startTime = System.currentTimeMillis();
-      if (solverRuleBase == null)
-      {
-         try
-         {
-            solverRuleBase = DroolsUtil.getInstance().readRuleBase(SUDOKU_SOLVER_DRL);
-         }
-         catch(Exception ex)
-         {
-            ex.printStackTrace();
-            throw new RuntimeException("Error Reading RuleBase for Solver");
-         }         
-      }
-      
-      if (solverStatefulSession != null)
-      {
-         solverStatefulSession.removeEventListener(workingMemoryListener);
-      }
-      
-      solverStatefulSession = solverRuleBase.newStatefulSession();
-      solverStatefulSession.addEventListener(workingMemoryListener);
-      
-      for(int row=0; row<cellValues.length; row++)
-      {
-         for (int col=0; col<cellValues[row].length; col++)
-         {
-            cellValuesByRowAndCol[row][col] = new HashSet<Integer>();
-            
-            if(cellValues[row][col] == null)
-            {
-               for(int value=1; value<10; value++)
-               {
-                  PossibleCellValue cellValue = new PossibleCellValue(value, row, col);
-                  addCellValue(cellValue);
-                  allCellValues.add(cellValue);
-               }
+    /** A index into the AbstractCellValues based on row and column */
+    private Set<Integer>[][]            cellValuesByRowAndCol = new HashSet[SudokuGridModel.NUM_ROWS][SudokuGridModel.NUM_COLS];
+
+    /** The solver rule base */
+    private KnowledgeBase               solverRuleBase;
+
+    /** The stateful session working memory for the solver rule base */
+    private StatefulKnowledgeSession    solverStatefulSession;
+
+    /** An inner class implementation listening to working memory events */
+    private SudokuWorkingMemoryListener workingMemoryListener = new SudokuWorkingMemoryListener();
+
+    /**
+     * Create a new DroolsSudokuGridModel with an empty grid.
+     */
+    public DroolsSudokuGridModel() {
+
+    }
+
+    /**
+     * Create a new DroolsSudokuGridModel with the specified values.
+     * 
+     * @param cellValues a two dimensional grid of Integer values for cells, a null means the value is not yet resolved
+     */
+    public DroolsSudokuGridModel(Integer[][] cellValues) {
+        this();
+        setCellValues( cellValues );
+    }
+
+    /**
+     * Set the state of the Grid based on a two dimensional array of Integers.
+     * 
+     * @param cellValues a two dimensional grid of Integer values for cells, a null means the value is not yet resolved
+     */
+    public void setCellValues(Integer[][] cellValues) {
+        long startTime = System.currentTimeMillis();
+        if ( solverRuleBase == null ) {
+            try {
+                solverRuleBase = DroolsUtil.getInstance().readRuleBase( SUDOKU_SOLVER_DRL );
+            } catch ( Exception ex ) {
+                ex.printStackTrace();
+                throw new RuntimeException( "Error Reading RuleBase for Solver" );
             }
-            else
-            {
-               ResolvedCellValue cellValue = new ResolvedCellValue(cellValues[row][col], row, col);
-               addCellValue(cellValue);
+        }
+
+        if ( solverStatefulSession != null ) {
+            solverStatefulSession.removeEventListener( workingMemoryListener );
+        }
+
+        solverStatefulSession = solverRuleBase.newStatefulKnowledgeSession();
+        solverStatefulSession.addEventListener( workingMemoryListener );
+
+        for ( int row = 0; row < cellValues.length; row++ ) {
+            for ( int col = 0; col < cellValues[row].length; col++ ) {
+                cellValuesByRowAndCol[row][col] = new HashSet<Integer>();
+
+                if ( cellValues[row][col] == null ) {
+                    for ( int value = 1; value < 10; value++ ) {
+                        PossibleCellValue cellValue = new PossibleCellValue( value,
+                                                                             row,
+                                                                             col );
+                        addCellValue( cellValue );
+                        allCellValues.add( cellValue );
+                    }
+                } else {
+                    ResolvedCellValue cellValue = new ResolvedCellValue( cellValues[row][col],
+                                                                         row,
+                                                                         col );
+                    addCellValue( cellValue );
+                }
             }
-         }
-      }
-      
-      insertAllCellValues(solverStatefulSession);
-      System.out.println("Setting up working memory and inserting all cell value POJOs took "+(System.currentTimeMillis()-startTime)+"ms.");
-   }
-   
-   /**
-    * Determines whether a given cell is editable from another class.
-    * 
-    * @param row the row in the grid for the cell
-    * @param col the column in the grid for the cell
-    * @return is the specified cell editable
-    */
-   public boolean isCellEditable(int row, int col)
-   {
-      return false;
-   }
+        }
 
-   /**
-    * Determines whether a given cell has been solved.
-    * 
-    * @param row the row in the grid for the cell
-    * @param col the column in the grid for the cell
-    * @return is the specified cell solved
-    */
-   public boolean isCellResolved(int row, int col)
-   {
-      return getPossibleCellValues(row, col).size() == 1;
-   }
-   
-   /**
-    * Evaluates the current state of the Grid against the 
-    * validation rules determined in the SUDOKU_VALIDATOR_DRL
-    * and indicates if the grid is currently solved or not.
-    * 
-    * @return true if the current state represents a completely filled out
-    *              and valid Sudoku solution, false otherwise
-    */
-   public boolean isGridSolved()
-   {
-      boolean solved = true;
-      
-      // TODO: move this logic into SUDOKU_VALIDATOR_DRL and out of Java code
-      for(int row=0; row<NUM_ROWS; row++)
-      {
-         for (int col=0; col<NUM_COLS; col++)
-         {
-            if(!isCellResolved(row, col))
-            {
-               System.out.print("("+row+","+col+") has not been resolved but has been narrowed down to ");
-               for (Integer possibleInt : getPossibleCellValues(row, col))
-               {
-                  System.out.print(possibleInt+" ");
-               }
-               System.out.println();
-               solved=false;
+        insertAllCellValues( solverStatefulSession );
+        System.out.println( "Setting up working memory and inserting all cell value POJOs took " + (System.currentTimeMillis() - startTime) + "ms." );
+    }
+
+    /**
+     * Determines whether a given cell is editable from another class.
+     * 
+     * @param row the row in the grid for the cell
+     * @param col the column in the grid for the cell
+     * @return is the specified cell editable
+     */
+    public boolean isCellEditable(int row,
+                                  int col) {
+        return false;
+    }
+
+    /**
+     * Determines whether a given cell has been solved.
+     * 
+     * @param row the row in the grid for the cell
+     * @param col the column in the grid for the cell
+     * @return is the specified cell solved
+     */
+    public boolean isCellResolved(int row,
+                                  int col) {
+        return getPossibleCellValues( row,
+                                      col ).size() == 1;
+    }
+
+    /**
+     * Evaluates the current state of the Grid against the 
+     * validation rules determined in the SUDOKU_VALIDATOR_DRL
+     * and indicates if the grid is currently solved or not.
+     * 
+     * @return true if the current state represents a completely filled out
+     *              and valid Sudoku solution, false otherwise
+     */
+    public boolean isGridSolved() {
+        boolean solved = true;
+
+        // TODO: move this logic into SUDOKU_VALIDATOR_DRL and out of Java code
+        for ( int row = 0; row < NUM_ROWS; row++ ) {
+            for ( int col = 0; col < NUM_COLS; col++ ) {
+                if ( !isCellResolved( row,
+                                      col ) ) {
+                    System.out.print( "(" + row + "," + col + ") has not been resolved but has been narrowed down to " );
+                    for ( Integer possibleInt : getPossibleCellValues( row,
+                                                                       col ) ) {
+                        System.out.print( possibleInt + " " );
+                    }
+                    System.out.println();
+                    solved = false;
+                }
             }
-         }
-      }
-      
-      if (solved)
-      {
-         try
-         {
-            RuleBase validatorRuleBase = DroolsUtil.getInstance().readRuleBase(SUDOKU_VALIDATOR_DRL);
-            
-            StatefulSession validatorStatefulSession = validatorRuleBase.newStatefulSession();
-            List issues = new ArrayList();
-            validatorStatefulSession.setGlobal("issues", issues);
-            insertAllCellValues(validatorStatefulSession);
-            validatorStatefulSession.fireAllRules();
-            
-            if (issues.isEmpty())
-            {
-               System.out.println("Sucessfully Validated Solution");
+        }
+
+        if ( solved ) {
+            try {
+                KnowledgeBase validatorRuleBase = DroolsUtil.getInstance().readRuleBase( SUDOKU_VALIDATOR_DRL );
+
+                StatefulKnowledgeSession validatorStatefulSession = validatorRuleBase.newStatefulKnowledgeSession();
+                List issues = new ArrayList();
+                validatorStatefulSession.setGlobal( "issues",
+                                                    issues );
+                insertAllCellValues( validatorStatefulSession );
+                validatorStatefulSession.fireAllRules();
+
+                if ( issues.isEmpty() ) {
+                    System.out.println( "Sucessfully Validated Solution" );
+                } else {
+                    solved = false;
+                    for ( Object issue : issues ) {
+                        System.out.println( issue );
+                    }
+                }
+            } catch ( Exception ex ) {
+                ex.printStackTrace();
+                throw new RuntimeException();
             }
-            else
-            {
-               solved = false;
-               for (Object issue : issues)
-               {
-                  System.out.println(issue);
-               }
+        }
+
+        return solved;
+    }
+
+    /**
+     * Returns the possible values of the cell at a specific 
+     * row and column in the Grid.
+     * 
+     * @param row the row in the Grid
+     * @param col the column in the Grid
+     * @return the Set of possible Integer values this cell can have, if 
+     *         the Set is of size one then this is the value this cell 
+     *         must have, otherwise it is a list of the possibilities
+     */
+    public Set<Integer> getPossibleCellValues(int row,
+                                              int col) {
+        return cellValuesByRowAndCol[row][col];
+    }
+
+    /**
+     * Attempt to solve the Sudoku puzzle from its current state by 
+     * firing all of the rules in SUDOKU_SOLVER_DRL against the 
+     * current state of the Grid then validate if we have solved the 
+     * Grid after this.
+     * 
+     * @return true if the state after firing all rules 
+     *              represents a completely filled out
+     *              and valid Sudoku solution, false otherwise 
+     */
+    public boolean solve() {
+        solverStatefulSession.fireAllRules();
+
+        return isGridSolved();
+    }
+
+    /**
+     * Fire the next rule on the agenda and return
+     * 
+     * @return true if the state after firing the single rule 
+     *              represents a completely filled out
+     *              and valid Sudoku solution, false otherwise 
+     */
+    public boolean step() {
+        // TODO: I am not sure where the fireAllRules(int) method has gone
+        // should be solverStatefulSession.fireAllRules(1)
+        solverStatefulSession.fireAllRules();
+
+        return isGridSolved();
+    }
+
+    /**
+     * Inserts all of the current state of the Grid as represented
+     * by the set of AbstractCellValues this class is maintaining
+     * into the specified StatefulSession working memory.
+     * 
+     * @param statefulSession the target StatefulSession
+     */
+    private void insertAllCellValues(StatefulKnowledgeSession statefulSession) {
+        for ( AbstractCellValue cellValue : allCellValues ) {
+            statefulSession.insert( cellValue );
+        }
+    }
+
+    /**
+     * Adds the specified AbstractCellValue into the set of 
+     * AbstractCellValues that this class is maintaining.
+     * 
+     * @param cellValue the AbstractCellValue to add
+     */
+    private void addCellValue(AbstractCellValue cellValue) {
+        allCellValues.add( cellValue );
+        cellValuesByRowAndCol[cellValue.getRow()][cellValue.getCol()].add( cellValue.getValue() );
+    }
+
+    /**
+     * Removes the specified AbstractCellValue from the set of 
+     * AbstractCellValues that this class is maintaining.
+     * 
+     * @param cellValue the AbstractCellValue to remove
+     */
+    private void removeCellValue(AbstractCellValue cellValue) {
+        allCellValues.remove( cellValue );
+        cellValuesByRowAndCol[cellValue.getRow()][cellValue.getCol()].remove( cellValue.getValue() );
+    }
+
+    class SudokuWorkingMemoryListener
+        implements
+        WorkingMemoryEventListener {
+
+        public void objectInserted(ObjectInsertedEvent ev) {
+            if ( ev.getObject() instanceof AbstractCellValue ) {
+                addCellValue( ((AbstractCellValue) ev.getObject()) );
             }
-         }
-         catch (Exception ex)
-         {
-            ex.printStackTrace();
-            throw new RuntimeException();
-         }
-      }
-      
-      return solved;
-   }
-   
-   /**
-    * Returns the possible values of the cell at a specific 
-    * row and column in the Grid.
-    * 
-    * @param row the row in the Grid
-    * @param col the column in the Grid
-    * @return the Set of possible Integer values this cell can have, if 
-    *         the Set is of size one then this is the value this cell 
-    *         must have, otherwise it is a list of the possibilities
-    */
-   public Set<Integer> getPossibleCellValues(int row, int col)
-   {
-      return cellValuesByRowAndCol[row][col];
-   }
-   
-   /**
-    * Attempt to solve the Sudoku puzzle from its current state by 
-    * firing all of the rules in SUDOKU_SOLVER_DRL against the 
-    * current state of the Grid then validate if we have solved the 
-    * Grid after this.
-    * 
-    * @return true if the state after firing all rules 
-    *              represents a completely filled out
-    *              and valid Sudoku solution, false otherwise 
-    */
-   public boolean solve()
-   {
-      solverStatefulSession.fireAllRules();
-      
-      return isGridSolved();
-   }
-   
-   /**
-    * Fire the next rule on the agenda and return
-    * 
-    * @return true if the state after firing the single rule 
-    *              represents a completely filled out
-    *              and valid Sudoku solution, false otherwise 
-    */
-   public boolean step()
-   {
-      // TODO: I am not sure where the fireAllRules(int) method has gone
-      // should be solverStatefulSession.fireAllRules(1)
-      solverStatefulSession.fireAllRules();
-      
-      return isGridSolved();
-   }   
-   
-   /**
-    * Inserts all of the current state of the Grid as represented
-    * by the set of AbstractCellValues this class is maintaining
-    * into the specified StatefulSession working memory.
-    * 
-    * @param statefulSession the target StatefulSession
-    */
-   private void insertAllCellValues(StatefulSession statefulSession)
-   {
-      for (AbstractCellValue cellValue : allCellValues)
-      {
-         statefulSession.insert(cellValue);
-      }
-   }
 
-   /**
-    * Adds the specified AbstractCellValue into the set of 
-    * AbstractCellValues that this class is maintaining.
-    * 
-    * @param cellValue the AbstractCellValue to add
-    */
-   private void addCellValue(AbstractCellValue cellValue)
-   {
-      allCellValues.add(cellValue);
-      cellValuesByRowAndCol[cellValue.getRow()][cellValue.getCol()].add(cellValue.getValue());
-   }
+            if ( ev.getObject() instanceof ResolvedCellValue ) {
+                ResolvedCellValue cellValue = (ResolvedCellValue) ev.getObject();
+                fireCellResolvedEvent( new SudokuGridEvent( this,
+                                                            cellValue.getRow(),
+                                                            cellValue.getCol(),
+                                                            cellValue.getValue() ) );
+            }
 
-   /**
-    * Removes the specified AbstractCellValue from the set of 
-    * AbstractCellValues that this class is maintaining.
-    * 
-    * @param cellValue the AbstractCellValue to remove
-    */
-   private void removeCellValue(AbstractCellValue cellValue)
-   {
-      allCellValues.remove(cellValue);
-      cellValuesByRowAndCol[cellValue.getRow()][cellValue.getCol()].remove(cellValue.getValue());
-   }
- 
+            if ( ev.getObject() instanceof String ) {
+                System.out.println( ev.getObject() );
+            }
+        }
 
-   class SudokuWorkingMemoryListener
-      implements WorkingMemoryEventListener
-   {
-      public void objectInserted(ObjectInsertedEvent ev)
-      {
-         if (ev.getObject() instanceof AbstractCellValue)
-         {
-            addCellValue(((AbstractCellValue) ev.getObject()));
-         }
-         
-         if (ev.getObject() instanceof ResolvedCellValue)
-         {
-            ResolvedCellValue cellValue = (ResolvedCellValue) ev.getObject();
-            fireCellResolvedEvent(new SudokuGridEvent(this, cellValue.getRow(), cellValue.getCol(), cellValue.getValue()));
-         }
-         
-         if (ev.getObject() instanceof String)
-         {
-            System.out.println(ev.getObject());
-         }
-      }
-   
-      public void objectRetracted(ObjectRetractedEvent ev)
-      {
-         if (ev.getOldObject() instanceof AbstractCellValue)
-         {
-            AbstractCellValue cellValue = (AbstractCellValue) ev.getOldObject();
-            
-            removeCellValue(cellValue);
-            fireCellUpdatedEvent(new SudokuGridEvent(this, cellValue.getRow(), cellValue.getCol(), cellValue.getValue()));
-         }     
-      }
-   
-      public void objectUpdated(ObjectUpdatedEvent ev)
-      {
-         if (ev.getObject() instanceof ResolvedCellValue)
-         {
-            ResolvedCellValue cellValue = (ResolvedCellValue) ev.getObject();
-            fireCellUpdatedEvent(new SudokuGridEvent(this, cellValue.getRow(), cellValue.getCol(), cellValue.getValue()));
-         }     
-      }
-   }
+        public void objectRetracted(ObjectRetractedEvent ev) {
+            if ( ev.getOldObject() instanceof AbstractCellValue ) {
+                AbstractCellValue cellValue = (AbstractCellValue) ev.getOldObject();
+
+                removeCellValue( cellValue );
+                fireCellUpdatedEvent( new SudokuGridEvent( this,
+                                                           cellValue.getRow(),
+                                                           cellValue.getCol(),
+                                                           cellValue.getValue() ) );
+            }
+        }
+
+        public void objectUpdated(ObjectUpdatedEvent ev) {
+            if ( ev.getObject() instanceof ResolvedCellValue ) {
+                ResolvedCellValue cellValue = (ResolvedCellValue) ev.getObject();
+                fireCellUpdatedEvent( new SudokuGridEvent( this,
+                                                           cellValue.getRow(),
+                                                           cellValue.getCol(),
+                                                           cellValue.getValue() ) );
+            }
+        }
+    }
 }

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-17 14:39:30 UTC (rev 23894)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/sudoku/rules/DroolsUtil.java	2008-11-17 15:07:59 UTC (rev 23895)
@@ -9,61 +9,57 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseFactory;
-import org.drools.compiler.PackageBuilder;
-import org.drools.rule.Package;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseConfiguration;
+import org.drools.KnowledgeBaseFactory;
+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;
-   
-   private DroolsUtil()
-   {
-      
-   }
-   
-   public static DroolsUtil getInstance()
-   {
-      if (INSTANCE == null)
-      {
-         INSTANCE = new DroolsUtil();
-      }
-      
-      return INSTANCE;
-   }
-   
-   public RuleBase readRuleBase(String drlFileName) 
-      throws Exception 
-   {
-      //read in the source
-      Reader source = new InputStreamReader( DroolsSudokuGridModel.class.getResourceAsStream(drlFileName) );
-   
-      //optionally read in the DSL (if you are using it).
-      //Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
-   
-      //Use package builder to build up a rule package.
-      //An alternative lower level class called "DrlParser" can also be used...
-   
-      PackageBuilder builder = new PackageBuilder();
-   
-      //this will parse and compile in one step
-      //NOTE: There are 2 methods here, the one argument one is for normal DRL.
-      builder.addPackageFromDrl( source );
-   
-      //Use the following instead of above if you are using a DSL:
-      //builder.addPackageFromDrl( source, dsl );
-   
-      //get the compiled package (which is serializable)
-      Package pkg = builder.getPackage();
-   
-      //add the package to a rulebase (deploy the rule package).
-      RuleBaseConfiguration conf = new RuleBaseConfiguration();
-      conf.setRemoveIdentities( true );
-      RuleBase ruleBase = RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
-                                                       conf );
-      ruleBase.addPackage( pkg );
-      return ruleBase;
-   }   
+public class DroolsUtil {
+    private static DroolsUtil INSTANCE;
+
+    private DroolsUtil() {
+
+    }
+
+    public static DroolsUtil getInstance() {
+        if ( INSTANCE == null ) {
+            INSTANCE = new DroolsUtil();
+        }
+
+        return INSTANCE;
+    }
+
+    public KnowledgeBase readRuleBase(String drlFileName) throws Exception {
+        //read in the source
+        Reader source = new InputStreamReader( DroolsSudokuGridModel.class.getResourceAsStream( drlFileName ) );
+
+        //optionally read in the DSL (if you are using it).
+        //Reader dsl = new InputStreamReader( DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
+
+        //Use package builder to build up a rule package.
+        //An alternative lower level class called "DrlParser" can also be used...
+
+        KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+
+        //this will parse and compile in one step
+        builder.addResource( source,
+                             KnowledgeType.DRL );
+
+        //Use the following instead of above if you are using a DSL:
+        //builder.addPackageFromDrl( source, dsl );
+
+        //add the package to a rulebase (deploy the rule package).
+        KnowledgeBaseConfiguration configuration = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
+        configuration.setProperty( "drools.removeIdentities",
+                                   "true" );
+
+        KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase( configuration );
+        //        RuleBase ruleBase = RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+        //                                                         conf );
+        knowledgeBase.addKnowledgePackages( builder.getKnowledgePackages() );
+        return knowledgeBase;
+    }
 }




More information about the jboss-svn-commits mailing list