[jboss-svn-commits] JBL Code SVN: r23204 - in labs/jbossrules/branches/drools-api-refactor-20080929: drools-compiler/src/test/java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 30 00:33:25 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-09-30 00:33:25 -0400 (Tue, 30 Sep 2008)
New Revision: 23204

Modified:
   labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java
   labs/jbossrules/branches/drools-api-refactor-20080929/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java
   labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
Log:
JBRULES-1734 Drools API
-Updated some more of TruthMaintenanceTest to support new api

Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java	2008-09-30 04:01:16 UTC (rev 23203)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java	2008-09-30 04:33:25 UTC (rev 23204)
@@ -29,6 +29,8 @@
     
     Future<?> asyncFireAllRules();    
     
+    FactHandle getFactHandle(Object object);
+    
     Collection<?> getObjects();
 
     Collection<?> getObjects(ObjectFilter filter);

Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java	2008-09-30 04:01:16 UTC (rev 23203)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java	2008-09-30 04:33:25 UTC (rev 23204)
@@ -58,7 +58,7 @@
     
     public void testLogicalInsertionsDynamicRule() throws Exception {
         KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
-        kbuilder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertionsDynamicRule.drl" ) ) );
+        kbuilder.addPackageFromDrl( getClass().getResource( "test_LogicalInsertionsDynamicRule.drl" ) );
         
         Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
         KnowledgeBase kbase = getKnowledgeBase();
@@ -87,9 +87,8 @@
         assertTrue( list.contains( new Person( c3.getType() ) ) );
 
         // this rule will make a logical assertion for c1 too
-        final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertionsDynamicRule2.drl" ) );
         kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
-        kbuilder.addPackageFromDrl( reader );
+        kbuilder.addPackageFromDrl(  getClass().getResource( "test_LogicalInsertionsDynamicRule2.drl" ) );
         Collection<KnowledgePackage> kpkgs2 = kbuilder.getKnowledgePackages();
         kbase.addKnowledgePackages( kpkgs2 );
         kbase    = SerializationHelper.serializeObject( kbase );
@@ -171,165 +170,163 @@
     }
 
     public void testLogicalInsertions() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertions.drl" ) ) );
-        final Package pkg = builder.getPackage();
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.addPackageFromDrl( getClass().getResource( "test_LogicalInsertions.drl" ) );
+        Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kpkgs );
+        kbase    = SerializationHelper.serializeObject( kbase );
+        final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
 
         final List list = new ArrayList();
-        workingMemory.setGlobal( "list",
+        session.setGlobal( "list",
                                  list );
 
         final Cheese brie = new Cheese( "brie",
                                         12 );
-        final FactHandle brieHandle = workingMemory.insert( brie );
+        final FactHandle brieHandle = session.insert( brie );
 
         final Cheese provolone = new Cheese( "provolone",
                                              12 );
-        final FactHandle provoloneHandle = workingMemory.insert( provolone );
+        final FactHandle provoloneHandle = session.insert( provolone );
 
-        workingMemory.fireAllRules();
+        session.fireAllRules();
 
         assertEquals( 3,
                       list.size() );
 
         assertEquals( 3,
-                      IteratorToList.convert( workingMemory.iterateObjects() ).size() );
+                      session.getObjects().size() );
 
-        workingMemory.retract( brieHandle );
+        session.retract( brieHandle );
 
         assertEquals( 2,
-                      IteratorToList.convert( workingMemory.iterateObjects() ).size() );
+                      session.getObjects().size() );
 
-        workingMemory.retract( provoloneHandle );
+        session.retract( provoloneHandle );
 
         assertEquals( 0,
-                      IteratorToList.convert( workingMemory.iterateObjects() ).size() );
+                      session.getObjects().size() );
     }
 
     public void testLogicalInsertionsBacking() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertionsBacking.drl" ) ) );
-        final Package pkg = builder.getPackage();
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.addPackageFromDrl( getClass().getResource( "test_LogicalInsertionsBacking.drl" ) );
+        Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kpkgs );
+        kbase    = SerializationHelper.serializeObject( kbase );
+        final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();        
 
         final Cheese cheese1 = new Cheese( "c",
                                            1 );
         final Cheese cheese2 = new Cheese( cheese1.getType(),
                                            1 );
-        List list;
+        
 
-        final FactHandle h1 = workingMemory.insert( cheese1 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects( new ClassObjectFilter( cheese1.getType().getClass() ) ) );
+        final FactHandle h1 = session.insert( cheese1 );
+        session.fireAllRules();   
+        Collection<?> list = session.getObjects( new ClassObjectFilter( cheese1.getType().getClass() ) );
         assertEquals( 1,
                       list.size() );
         // probably dangerous, as contains works with equals, not identity
         assertEquals( cheese1.getType(),
-                      list.get( 0 ) );
+                      list.iterator().next() );
         // FactHandle ht = workingMemory.getFactHandle(c1.getType());
 
-        final FactHandle h2 = workingMemory.insert( cheese2 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( cheese1.getType().getClass() ) ) );
+        final FactHandle h2 = session.insert( cheese2 );
+        session.fireAllRules();
+        list  = session.getObjects(new ClassObjectFilter( cheese1.getType().getClass() ) );
         assertEquals( 1,
                       list.size() );
         assertEquals( cheese1.getType(),
-                      list.get( 0 ) );
+                      list.iterator().next() );
         
-        assertEquals( 3, IteratorToList.convert( workingMemory.iterateObjects() ).size() );
+        assertEquals( 3, session.getObjects().size() );
 
-        workingMemory.retract( h1 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( cheese1.getType().getClass() ) ) );
+        session.retract( h1 );
+        session.fireAllRules();
+        list = session.getObjects(new ClassObjectFilter( cheese1.getType().getClass() ) );
         assertEquals( "cheese-type " + cheese1.getType() + " was retracted, but should not. Backed by cheese2 => type.",
                       1,
                       list.size() );
         assertEquals( "cheese-type " + cheese1.getType() + " was retracted, but should not. Backed by cheese2 => type.",
                       cheese1.getType(),
-                      list.get( 0 ) );
+                      list.iterator().next() );
 
-        workingMemory.retract( h2 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( cheese1.getType().getClass() ) ) );
+        session.retract( h2 );
+        session.fireAllRules();
+        list = session.getObjects(new ClassObjectFilter( cheese1.getType().getClass() ) );
         assertEquals( "cheese-type " + cheese1.getType() + " was not retracted, but should have. Neither  cheese1 => type nor cheese2 => type is true.",
                       0,
                       list.size() );
     }
 
     public void testLogicalInsertionsSelfreferencing() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertionsSelfreferencing.drl" ) ) );
-        final Package pkg = builder.getPackage();
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.addPackageFromDrl( getClass().getResource( "test_LogicalInsertionsSelfreferencing.drl" ) );
+        Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kpkgs );
+        kbase    = SerializationHelper.serializeObject( kbase );
+        final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();          
 
-        List list;
-
         final Person b = new Person( "b" );
         final Person a = new Person( "a" );
 
-        workingMemory.setGlobal( "b",
+        session.setGlobal( "b",
                                  b );
 
-        FactHandle h1 = workingMemory.insert( a );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( a.getClass() ) ) );
+        FactHandle h1 = session.insert( a );
+        session.fireAllRules();
+        Collection<?> list = session.getObjects( new ClassObjectFilter( a.getClass() ) );        
         assertEquals( 2,
                       list.size() );
         assertTrue( list.contains( a ) );
         assertTrue( list.contains( b ) );
 
-        workingMemory.retract( h1 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( a.getClass() ) ) );
+        session.retract( h1 );
+        session.fireAllRules();
+        list = session.getObjects( new ClassObjectFilter( a.getClass() ) );
         assertEquals( "b was retracted, but it should not have. Is backed by b => b being true.",
                       1,
                       list.size() );
         assertEquals( "b was retracted, but it should not have. Is backed by b => b being true.",
                       b,
-                      list.get( 0 ) );
+                      list.iterator().next() );
 
-        h1 = workingMemory.getFactHandle( b );
-        workingMemory.retract( h1 );
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( a.getClass() ) ) );
+        h1 = session.getFactHandle( b );
+        session.retract( h1 );
+        session.fireAllRules();
+        list = session.getObjects( new ClassObjectFilter( a.getClass() ) );
         assertEquals( 0,
                       list.size() );
     }
 
     public void testLogicalInsertionsLoop() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalInsertionsLoop.drl" ) ) );
-        final Package pkg = builder.getPackage();
+        final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.addPackageFromDrl( getClass().getResource(  "test_LogicalInsertionsLoop.drl" ) );
+        Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
 
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        kbase.addKnowledgePackages( kpkgs );
+        kbase    = SerializationHelper.serializeObject( kbase );
+        final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();  
 
-        List list;
+        
 
         final List l = new ArrayList();
         final Person a = new Person( "a" );
-        workingMemory.setGlobal( "a",
+        session.setGlobal( "a",
                                  a );
-        workingMemory.setGlobal( "l",
+        session.setGlobal( "l",
                                  l );
 
-        workingMemory.fireAllRules();
-        list = IteratorToList.convert( workingMemory.iterateObjects(new ClassObjectFilter( a.getClass() ) ) );
+        session.fireAllRules();
+        Collection<?> list = session.getObjects(new ClassObjectFilter( a.getClass() ) );
         assertEquals( "a still asserted.",
                       0,
                       list.size() );

Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2008-09-30 04:01:16 UTC (rev 23203)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java	2008-09-30 04:33:25 UTC (rev 23204)
@@ -64,6 +64,10 @@
                              object );
     }
 
+    public FactHandle getFactHandle(Object object) {
+        return this.session.getFactHandle( object );
+    }
+    
     public ProcessInstance getProcessInstance(long id) {
         return this.session.getProcessInstance( id );
     }




More information about the jboss-svn-commits mailing list