[jboss-svn-commits] JBL Code SVN: r19092 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 18 22:10:29 EDT 2008


Author: mingjin
Date: 2008-03-18 22:10:28 -0400 (Tue, 18 Mar 2008)
New Revision: 19092

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
Log:
JBRULES-1095 fix bad merge
- fixed the failed test cases.

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-19 01:57:32 UTC (rev 19091)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java	2008-03-19 02:10:28 UTC (rev 19092)
@@ -431,11 +431,11 @@
                       list.get( 2 ) );
 
     }
-    
+
     /*
      *  Here I am inserting data points which are not used by any rule (e.g Person).
      *  Later adding rule (e.g. Rule: 'match Person') for those data points.
-     *  
+     *
      *  Result: Pkg/Rule addition is failing with ClassCastException
      */
     public void testSerializeAdd2() throws Exception {
@@ -444,7 +444,7 @@
         RuleBase ruleBase = RuleBaseFactory.newRuleBase();
         PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_0.drl" ) ) );
-        Package pkg = serialisePackage( builder.getPackage() );
+        Package pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
 
         List results = new ArrayList();
@@ -468,18 +468,17 @@
                       results.get( 0 ) );
 
         // serialize session and rulebase out
-        byte[] serializedSession = serializeOut( session );
-        byte[] serializedRulebase = serializeOut( ruleBase );
+        byte[] serializedSession = SerializationHelper.serializeOut( session );
         session.dispose();
 
         // now deserialize the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = SerializationHelper.serializeObject( ruleBase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
 
         // dynamically add a new package
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic3_0.drl" ) ) );
-        pkg = serialisePackage( builder.getPackage() );
+        pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
 
         InternalFactHandle stilton2 = (InternalFactHandle) session.insert( new Cheese( "stilton",
@@ -500,16 +499,13 @@
         assertEquals( mark.getObject(),
                       results.get( 3 ) );
 
-        serializedSession = null;
-        serializedRulebase = null;
+        serializedSession = SerializationHelper.serializeOut( session );
+        SerializationHelper.serializeOut( ruleBase );
 
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-
         // dispose session
         session.dispose();
 
-    }    
+    }
 
     /**
      * In this case we are dealing with facts which are not on the systems classpath.
@@ -550,13 +546,13 @@
         assertNotNull(p_);
 
     }
-    
+
     /*
      *  Here I am inserting data points(e.g. Cheese) with  'stilton' / 'brie' as type value.
      *  Initially I had only 1 rule ('like stilton') for data points(e.g. Cheese) having type as 'stilton'.
      *
-     *  Later added new rule ('like brie')  for data points(e.g. Cheese) having type as 'brie'. 
-     *  
+     *  Later added new rule ('like brie')  for data points(e.g. Cheese) having type as 'brie'.
+     *
      *  Result: new rule is not getting fired for new data points having type as 'brie'.
      *          Only for old data points having type as 'brie' the new rule got fired.
      */
@@ -565,7 +561,7 @@
         RuleBase ruleBase = RuleBaseFactory.newRuleBase();
         PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_0.drl" ) ) );
-        Package pkg = serialisePackage( builder.getPackage() );
+        Package pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
 
         List results = new ArrayList();
@@ -579,8 +575,8 @@
                                                                                     10 ) );
         session.fireAllRules();
 
-        byte[] serializedSession = serializeOut( session );
-        byte[] serializedRulebase = serializeOut( ruleBase );
+        byte[] serializedSession = SerializationHelper.serializeOut( session );
+        byte[] serializedRulebase = SerializationHelper.serializeOut( ruleBase );
 
         session.dispose();
 
@@ -590,15 +586,15 @@
                       results.get( 0 ) );
 
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
 
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_1.drl" ) ) );
-        pkg = serialisePackage( builder.getPackage() );
+        pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
-        
+
         InternalFactHandle stilton2 = (InternalFactHandle) session.insert( new Cheese( "stilton",
                                     20 ) );
         InternalFactHandle brie2 = (InternalFactHandle) session.insert( new Cheese( "brie",
@@ -620,23 +616,23 @@
         serializedSession = null;
         serializedRulebase = null;
 
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
 
         session.dispose();
     }
 
     /*
-     *  Works Fine if both the scenarios mentioned above are skipped. 
+     *  Works Fine if both the scenarios mentioned above are skipped.
      */
     public void testSerializeAdd3() throws Exception {
         //Create a rulebase, a session, and test it
         RuleBase ruleBase = RuleBaseFactory.newRuleBase( );
         PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_0.drl" ) ) );
-        Package pkg = serialisePackage( builder.getPackage() );
+        Package pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
-        
+
         List results = new ArrayList();
         StatefulSession session = ruleBase.newStatefulSession();
         session.setGlobal( "results",
@@ -648,8 +644,8 @@
                                                                                     10 ) );
         session.fireAllRules();
 
-        byte[] serializedSession = serializeOut( session );
-        byte[] serializedRulebase = serializeOut( ruleBase );
+        byte[] serializedSession = SerializationHelper.serializeOut( session );
+        byte[] serializedRulebase = SerializationHelper.serializeOut( ruleBase );
 
         session.dispose();
 
@@ -659,22 +655,22 @@
                       results.get( 0 ) );
 
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-        
+
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic3_0.drl" ) ) );
-        pkg = serialisePackage( builder.getPackage() );
-        
+        pkg = SerializationHelper.serializeObject( builder.getPackage() );
+
         ruleBase.addPackage( pkg );
-        
+
         InternalFactHandle stilton2 = (InternalFactHandle) session.insert( new Cheese( "stilton", 20 ) );
         InternalFactHandle brie2 = (InternalFactHandle) session.insert( new Cheese( "brie", 20 ) );
         InternalFactHandle bob1 = (InternalFactHandle) session.insert( new Person( "bob", 20 ) );
         InternalFactHandle bob2 = (InternalFactHandle) session.insert( new Person( "bob", 30 ) );
         session.fireAllRules();
- 
+
         assertEquals( 4,
                       results.size() );
         assertEquals( stilton2.getObject(),
@@ -686,31 +682,31 @@
 
         serializedSession = null;
         serializedRulebase = null;
-        
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-        
+
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
+
         session.dispose();
-        
+
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-        
+
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_2.drl" ) ) );
-        pkg = serialisePackage( builder.getPackage() );
+        pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
-        
+
         InternalFactHandle stilton3 = (InternalFactHandle) session.insert( new Cheese( "stilton", 40 ) );
         InternalFactHandle brie3 = (InternalFactHandle) session.insert( new Cheese( "brie", 40 ) );
         InternalFactHandle bob3 = (InternalFactHandle) session.insert( new Person( "bob", 40 ) );
         InternalFactHandle bob4 = (InternalFactHandle) session.insert( new Person( "bob", 40 ) );
         InternalFactHandle addr1 = (InternalFactHandle) session.insert( new Address( "bangalore" ) );
         InternalFactHandle addr2 = (InternalFactHandle) session.insert( new Address( "India" ) );
-        
+
         session.fireAllRules();
- 
+
         assertEquals( 9,
                       results.size() );
         assertEquals( stilton3.getObject(),
@@ -726,26 +722,26 @@
 
         serializedSession = null;
         serializedRulebase = null;
-        
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-        
+
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
+
         session.dispose();
-        
+
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-        
+
         InternalFactHandle stilton4 = (InternalFactHandle) session.insert( new Cheese( "stilton", 50 ) );
         InternalFactHandle brie4 = (InternalFactHandle) session.insert( new Cheese( "brie", 50 ) );
         InternalFactHandle bob5 = (InternalFactHandle) session.insert( new Person( "bob", 50 ) );
         InternalFactHandle bob6 = (InternalFactHandle) session.insert( new Person( "bob", 50 ) );
         InternalFactHandle addr3 = (InternalFactHandle) session.insert( new Address( "Tripura" ) );
         InternalFactHandle addr4 = (InternalFactHandle) session.insert( new Address( "Agartala" ) );
-        
+
         session.fireAllRules();
- 
+
         assertEquals( 14,
                       results.size() );
         assertEquals( stilton4.getObject(),
@@ -761,22 +757,22 @@
 
         serializedSession = null;
         serializedRulebase = null;
-        
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-        
+
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
+
         session.dispose();
-       
+
     }
-    
+
     /*
      * I have tried both the scenarios
      * 1. Remove a rule from a pkg.
      * 2. Remove a pkg
-     * 
+     *
      * But both cases after inserting associated data points (i.e data points which are used to fire/activate the removed rule)
      * session.fireAllRules() is throwing NoClassDefFoundError
-     * 
+     *
      */
     public void testSerializeAddRemove_NoClassDefFoundError() throws Exception {
 
@@ -784,9 +780,9 @@
         RuleBase ruleBase = RuleBaseFactory.newRuleBase( );
         PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1_0.drl" ) ) );
-        Package pkg = serialisePackage( builder.getPackage() );
+        Package pkg = SerializationHelper.serializeObject( builder.getPackage() );
         ruleBase.addPackage( pkg );
-        
+
         List results = new ArrayList();
         StatefulSession session = ruleBase.newStatefulSession();
         session.setGlobal( "results",
@@ -798,8 +794,8 @@
                                                                                     10 ) );
         session.fireAllRules();
 
-        byte[] serializedSession = serializeOut( session );
-        byte[] serializedRulebase = serializeOut( ruleBase );
+        byte[] serializedSession = SerializationHelper.serializeOut( session );
+        byte[] serializedRulebase = SerializationHelper.serializeOut( ruleBase );
 
         session.dispose();
 
@@ -809,22 +805,22 @@
                       results.get( 0 ) );
 
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-        
+
         builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic3_0.drl" ) ) );
-        pkg = serialisePackage( builder.getPackage() );
-        
+        pkg = SerializationHelper.serializeObject( builder.getPackage() );
+
         ruleBase.addPackage( pkg );
-        
+
         InternalFactHandle stilton2 = (InternalFactHandle) session.insert( new Cheese( "stilton", 20 ) );
         InternalFactHandle brie2 = (InternalFactHandle) session.insert( new Cheese( "brie", 20 ) );
         InternalFactHandle bob1 = (InternalFactHandle) session.insert( new Person( "bob", 20 ) );
         InternalFactHandle bob2 = (InternalFactHandle) session.insert( new Person( "bob", 30 ) );
         session.fireAllRules();
- 
+
         assertEquals( 4,
                       results.size() );
         assertEquals( stilton2.getObject(),
@@ -836,26 +832,26 @@
 
         serializedSession = null;
         serializedRulebase = null;
-        
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-        
+
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
+
         session.dispose();
-        
+
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-       
+
         // CASE 1: remove rule
         ruleBase.removeRule("org.drools.test", "like stilton");
-        
+
         InternalFactHandle stilton3 = (InternalFactHandle) session.insert( new Cheese( "stilton", 20 ) );
         InternalFactHandle brie3 = (InternalFactHandle) session.insert( new Cheese( "brie", 20 ) );
         InternalFactHandle bob3 = (InternalFactHandle) session.insert( new Person( "bob", 20 ) );
         InternalFactHandle bob4 = (InternalFactHandle) session.insert( new Person( "bob", 30 ) );
         session.fireAllRules();
- 
+
         assertEquals( 6,
                       results.size() );
         assertEquals( bob4.getObject(),
@@ -865,38 +861,38 @@
 
 
         // now recreate the rulebase, deserialize the session and test it
-        ruleBase = (RuleBase) serializeIn( serializedRulebase );
+        ruleBase = (RuleBase) SerializationHelper.serializeIn( serializedRulebase );
         session = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
         results = (List) session.getGlobal( "results" );
-       
+
         // CASE 2: remove pkg
         ruleBase.removePackage("org.drools.test");
-        
+
         InternalFactHandle stilton4 = (InternalFactHandle) session.insert( new Cheese( "stilton", 20 ) );
         InternalFactHandle brie4 = (InternalFactHandle) session.insert( new Cheese( "brie", 20 ) );
         InternalFactHandle bob5 = (InternalFactHandle) session.insert( new Person( "bob", 20 ) );
         InternalFactHandle bob6 = (InternalFactHandle) session.insert( new Person( "bob", 30 ) );
         session.fireAllRules();
- 
+
         assertEquals( 6,
                       results.size() );
         assertEquals( bob6.getObject(),
                       results.get( 4 ) );
         assertEquals( bob5.getObject(),
                       results.get( 5 ) );
-        
+
         serializedSession = null;
         serializedRulebase = null;
-        
-        serializedSession = serializeOut( session );
-        serializedRulebase = serializeOut( ruleBase );
-        
+
+        serializedSession = SerializationHelper.serializeOut( session );
+        serializedRulebase = SerializationHelper.serializeOut( ruleBase );
+
         session.dispose();
-       
-    }    
 
+    }
 
 
+
     protected RuleBase getRuleBase() throws Exception {
 
         return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
@@ -908,41 +904,12 @@
         return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
                                             config );
     }
-    
+
     protected RuleBase getRuleBase(Package pkg) throws Exception {
         RuleBase    ruleBase    = getRuleBase();
 
         ruleBase.addPackage(pkg);
         return SerializationHelper.serializeObject(ruleBase);
-     }    
+     }
 
-    protected Package serialisePackage(Package pkg) {
-        try {
-            byte[] bytes = serializeOut( pkg );
-            return (Package) serializeIn( bytes );
-        } catch ( Exception e ) {
-            throw new RuntimeException( "trouble serialising package.",
-                                        e );
-        }
-    }
-
-    protected Object serializeIn(final byte[] bytes) throws IOException,
-                                                    ClassNotFoundException {
-        final ObjectInput in = new ObjectInputStream( new ByteArrayInputStream( bytes ) );
-        final Object obj = in.readObject();
-        in.close();
-        return obj;
-    }
-
-    protected byte[] serializeOut(final Object obj) throws IOException {
-        // Serialize to a byte array
-        final ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        final ObjectOutput out = new ObjectOutputStream( bos );
-        out.writeObject( obj );
-        out.close();
-
-        // Get the bytes of the serialized object
-        final byte[] bytes = bos.toByteArray();
-        return bytes;
-    }
 }




More information about the jboss-svn-commits mailing list