package org.jboss.teiid.drools; import java.lang.reflect.Field; import java.util.ArrayList; import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; public class HelloWorld { public static Object performRuleOnData(final String className, final String[] fileds, final Object[] arguments){ Object obj; try { obj = Class.forName(className).newInstance(); Class<? extends Object> clas = obj.getClass(); for(int i = 0 ; i < fileds.length ; i ++) { Field field = clas.getDeclaredField(fileds[i]); field.setAccessible(true); field.set(obj, arguments[i]); } } catch (Exception e) { throw new RuntimeException(e); } KieServices ks = KieServices.Factory.get(); KieContainer kc = ks.getKieClasspathContainer(); KieSession ksession = kc.newKieSession("HelloWorldKS"); ksession.setGlobal( "list", new ArrayList<Object>() ); ksession.insert( obj ); ksession.fireAllRules(); ksession.dispose(); return "success"; } }