[rules-users] (no subject)

AZZAZ mohamed azzazm at gmail.com
Thu Sep 15 15:52:38 EDT 2011


I added all necessary jar in the classpath.
Here is an excerpt from my code:
Just for information I am beginner in BRMS

/**
 *
 */
package fr.dto;
import java.io.*;
import javax.swing.Box.Filler;

import org.apache.commons.io.FileUtils;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.brms.server.util.BRDRLPersistence;
import org.drools.brms.server.util.BRXMLPersistence;
import org.drools.compiler.PackageBuilder;
import org.drools.event.DebugWorkingMemoryEventListener;
import org.drools.rule.Package;

/**
 * @author mazzaz
 *
 */
public class RulesEngine {

private RuleBase rules;
    private Reader source;
private boolean debug = false;

public RulesEngine(String rulesFile) throws RulesEngineException {
super();
try {
try
{
File file = null;
String brl =null;
file = new File(rulesFile);
BRXMLPersistence read = (BRXMLPersistence) BRXMLPersistence.getInstance();
            BRDRLPersistence write = (BRDRLPersistence)
BRDRLPersistence.getInstance();
System.out.println("read && write instance ok \n");
brl = FileUtils.readFileToString(file,"UTF-8");
System.out.println("le fichier contient"+ brl);
String outputDRL = write.marshal(read.unmarshal(brl));// code blocked here
 String drlFilePath = "src/main/rules/Test_brl_to_drl.drl";
 File drlFile = new File(drlFilePath);
 FileUtils.writeStringToFile(drlFile,outputDRL,"");
                         source = new InputStreamReader(RulesEngine.class
 .getResourceAsStream(drlFilePath));
}catch (IOException ie){
System.out.println("ie.getCause(): "+ie.getCause()
+"\n"+"ie.getMessage(): "+ie.getMessage());
}

PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(source);
Package pkg = builder.getPackage();
rules = RuleBaseFactory.newRuleBase();
rules.addPackage(pkg);

} catch (Exception e) {
throw new RulesEngineException(
"Impossible de Compiler le fichier de regles : "
+ rulesFile, e);
}
}
 public void executeRules(WorkingEnvironmentCallback callback) {
/*
 * L’instanciation de la class workingMemory permet de determiner si
 * toute si toute les conditions d’une regle sont remplies alors les
 * consequences de cette regles sont executées
 */
WorkingMemory workingMemory = rules.newStatefulSession();
if (debug) {
workingMemory
.addEventListener(new DebugWorkingMemoryEventListener());
}
callback.initEnvironment(workingMemory);// initEnvironment methode de
// l'interface
/*
 * L’execution des conséquences d’une regle se produit lorsqu’on invoque
 * l’objet fireAllRules WorkingMemory
 */
workingMemory.fireAllRules();
}

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110915/c295207c/attachment.html 


More information about the rules-users mailing list