package org.drools.rule.builder.dialect;
import java.io.InputStreamReader;
import java.io.Reader;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
public class JavaAndMVELCombinedTest extends TestCase {
private final static String FN1 = "mveljavarules.drl";
private final static String FN2 = "mvelonly.drl";
private final static String FN3 = "javaonly.drl";
public void testMixed() {
timing( FN1, "mveljava: ");
}
public void testMVEL() {
timing( FN2, " mvel: ");
}
public void testJAVA() {
timing( FN3, " java: ");
}
// public void testJavaMVELCombination() throws Exception {
// long time1 = timing( new Runnable() {
// public void run() {
// readDRL( FN1 );
// }
// } );
// long time2 = timing( new Runnable() {
// public void run() {
// readDRL( FN2 );
// }
// } );
// long time3 = timing( new Runnable() {
// public void run() {
// readDRL( FN3 );
// }
// } );
//
// System.out.println("mveljava: "+time1/1000.);
// System.out.println(" mvel: "+time2/1000.);
// System.out.println(" java: "+time3/1000.);
//
// }
private void timing( String name, String msg ) {
long start = System.currentTimeMillis();
readDRL( name );
long time = System.currentTimeMillis()-start;
System.out.println(msg+time/1000.);
}
private void readDRL(String fn) {
try {
Reader source = new InputStreamReader( JavaAndMVELCombinedTest.class.getResourceAsStream( fn ) );
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( source );
Assert.assertEquals( 0,
builder.getErrors().getErrors().length );
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
Assert.assertEquals( 2,
pkg.getRules().length );
} catch ( Throwable t ) {
throw new RuntimeException(t);
}
}
}