[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