[jboss-svn-commits] JBL Code SVN: r14693 - in labs/jbossrules/trunk/experimental/drools-insurance: src/test/java/org/acme/insurance/test and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 28 02:58:58 EDT 2007


Author: fmeyer
Date: 2007-08-28 02:58:57 -0400 (Tue, 28 Aug 2007)
New Revision: 14693

Added:
   labs/jbossrules/trunk/experimental/drools-insurance/repository_export.zip
Modified:
   labs/jbossrules/trunk/experimental/drools-insurance/src/test/java/org/acme/insurance/test/InsuranceTestHelper.java
Log:
adding repository as itself


Added: labs/jbossrules/trunk/experimental/drools-insurance/repository_export.zip
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/experimental/drools-insurance/repository_export.zip
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/experimental/drools-insurance/src/test/java/org/acme/insurance/test/InsuranceTestHelper.java
===================================================================
--- labs/jbossrules/trunk/experimental/drools-insurance/src/test/java/org/acme/insurance/test/InsuranceTestHelper.java	2007-08-28 06:01:06 UTC (rev 14692)
+++ labs/jbossrules/trunk/experimental/drools-insurance/src/test/java/org/acme/insurance/test/InsuranceTestHelper.java	2007-08-28 06:58:57 UTC (rev 14693)
@@ -1,8 +1,17 @@
 package org.acme.insurance.test;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
 import java.io.Reader;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
@@ -11,54 +20,83 @@
 import org.drools.compiler.PackageBuilder;
 
 public class InsuranceTestHelper {
-	private RuleBase rulebase;
-	private StatefulSession session;
+    private RuleBase        rulebase;
+    private StatefulSession session;
 
-	public StatefulSession getSession() {
-		try { 
-			rulebase = loadRuleBaseFromRuleAgent();
-            //rulebase = loadRuleBaseFromDRL();
+    public StatefulSession getSession() {
+        try {
+            //rulebase = loadRuleBaseFromRuleAgent();
+            rulebase = loadRuleBaseFromDRL();
+
             session = rulebase.newStatefulSession();
-			
+
             session.startProcess( "insuranceProcess" );
-			
-			return session;
-			
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
-	public RuleBase loadRuleBaseFromRuleAgent() {
-		RuleAgent agent = RuleAgent
-				.newRuleAgent("/brmsdeployedrules.properties");
-		RuleBase rulebase = agent.getRuleBase();
-		return rulebase;
-	}
-	
+            session.fireAllRules();
 
-	private RuleBase loadRuleBaseFromDRL() throws Exception {
+            return session;
 
-		PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl(getTechnicalRules("/approval/insurancefactor.drl"));
-        builder.addPackageFromDrl(getTechnicalRules("/approval/approval.drl"));
-        builder.addPackageFromDrl(getTechnicalRules("/approval/calculateInsurance.drl"));
-        builder.addPackageFromDrl(getTechnicalRules("/approval/marginalage.dslr"), getTechnicalRules("/approval/acme.dsl") );
+        } catch ( Exception e ) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public RuleBase loadRuleBaseFromRuleAgent() {
+        RuleAgent agent = RuleAgent.newRuleAgent( "/brmsdeployedrules.properties" );
+        RuleBase rulebase = agent.getRuleBase();
+        return rulebase;
+    }
+
+    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;
+    }
+
+    private RuleBase loadRuleBaseFromDRL() throws Exception {
+
+        PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( getTechnicalRules( "/approval/insurancefactor.drl" ) );
+        builder.addPackageFromDrl( getTechnicalRules( "/approval/approval.drl" ) );
+        builder.addPackageFromDrl( getTechnicalRules( "/approval/calculateInsurance.drl" ) );
+        builder.addPackageFromDrl( getTechnicalRules( "/approval/marginalage.dslr" ),
+                                   getTechnicalRules( "/approval/acme.dsl" ) );
         builder.addRuleFlow( getTechnicalRules( "/approval/insurance-process.rfm" ) );
+
+        RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+        ruleBase.addPackage( builder.getPackage() );
         
-		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-		ruleBase.addPackage(builder.getPackage());
-		return ruleBase;
-	}
+        Map map = new HashMap();
+        map.put( "x",
+                 ruleBase );
+        final byte[] ast = serializeOut( map );
+        map = (Map) serializeIn( ast );
+        ruleBase = (RuleBase) map.get( "x" );
 
-	private Reader getTechnicalRules(String name) {
 
-		InputStream stream = this.getClass().getResourceAsStream(
-				name);
-		
-		return new InputStreamReader(stream);
+        return ruleBase;
+    }
 
-	}
+    private Reader getTechnicalRules(String name) {
 
+        InputStream stream = this.getClass().getResourceAsStream( name );
+
+        return new InputStreamReader( stream );
+
+    }
+
 }




More information about the jboss-svn-commits mailing list