package com.sample; import java.io.InputStreamReader; import java.io.Reader; import java.io.InputStreamReader; import java.io.Reader; import java.util.HashSet; import java.util.Iterator; import java.util.List; import org.drools.RuleBase; import org.drools.RuleBaseFactory; import org.drools.WorkingMemory; import org.drools.compiler.PackageBuilder; import org.drools.rule.Package; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class DroolTest { // // public static void main(String args[]){ // User u = new User(); // u.setUserName("test"); // System.out.println("user name - "+ u.getUserName()); // // } public static final void main(String[] args) { try { Session session = InitSessionFactory.getInstance().getCurrentSession(); // load up the rulebase RuleBase ruleBase = readRule(); WorkingMemory workingMemory = ruleBase.newStatefulSession(); /* pass a hibernate session to the working memory as a global */ // session = factory.openSession(); workingMemory.setGlobal("hibernateSession", session); workingMemory.fireAllRules(); session.close(); } catch (Throwable t) { t.printStackTrace(); } } private static RuleBase readRule() throws Exception { // read in the source Reader source = new InputStreamReader(DroolTest.class .getResourceAsStream("/User.drl")); PackageBuilder builder = new PackageBuilder(); // this will parse and compile in one step builder.addPackageFromDrl(source); // get the compiled package (which is serializable) Package pkg = builder.getPackage(); // add the package to a rulebase (deploy the rule package). RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage(pkg); return ruleBase; } }