@Test public void testDefaultCompiler() throws Exception { JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar")); List<JarInputStream> l = new ArrayList<JarInputStream>(); l.add(jis); Properties properties = new Properties(); properties.setProperty( "drools.accumulate.function.groupCount", "org.drools.base.accumulators.MaxAccumulateFunction"); BRMSPackageBuilder builder = new BRMSPackageBuilder(properties, new ClassLoaderBuilder(l).buildClassLoader()); assertEquals( "org.drools.base.accumulators.MaxAccumulateFunction", builder .getPackageBuilderConfiguration() .getAccumulateFunction("groupCount") .getClass() .getName()); PackageDescr pc = new PackageDescr("foo.bar"); builder.addPackage(pc); String header = "import com.billasurf.Person\n import com.billasurf.Board"; builder.addPackageFromDrl(new StringReader(header)); assertFalse(builder.hasErrors()); JavaDialectConfiguration javaConf = (JavaDialectConfiguration) builder.getPackageBuilderConfiguration().getDialectConfiguration("java"); assertEquals(JavaDialectConfiguration.ECLIPSE, javaConf.getCompiler()); }
@Test public void testGeneratedBeans() throws Exception { JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar")); List<JarInputStream> jarInputStreams = new ArrayList<JarInputStream>(); jarInputStreams.add(jis); BRMSPackageBuilder builder = new BRMSPackageBuilder( new Properties(), new ClassLoaderBuilder(jarInputStreams).buildClassLoader()); PackageDescr pc = new PackageDescr("foo.bar"); builder.addPackage(pc); String header = "import com.billasurf.Person\n import com.billasurf.Board\n declare GenBean \n name: String \n end"; builder.addPackageFromDrl(new StringReader(header)); assertFalse(builder.hasErrors()); JavaDialectConfiguration javaConf = (JavaDialectConfiguration) builder.getPackageBuilderConfiguration().getDialectConfiguration("java"); assertEquals(JavaDialectConfiguration.ECLIPSE, javaConf.getCompiler()); String ruleAtom = "rule foo \n when \n Person() \n GenBean(name=='mike')\n then \n System.out.println(42); end"; builder.addPackageFromDrl(new StringReader(ruleAtom)); if (builder.hasErrors()) { System.err.println(builder.getErrors().getErrors()[0].getMessage()); } assertFalse(builder.hasErrors()); ruleAtom = "rule foo2 \n when \n Person() \n then \n System.out.println(42); end"; builder.addPackageFromDrl(new StringReader(ruleAtom)); if (builder.hasErrors()) { System.err.println(builder.getErrors().getErrors()[0].getMessage()); } assertFalse(builder.hasErrors()); assertEquals("foo.bar", builder.getPackage().getName()); }
@Test public void testEclipseCompiler() throws Exception { System.setProperty("drools.dialect.java.compiler", "ECLIPSE"); JarInputStream jis = new JarInputStream(this.getClass().getResourceAsStream("/billasurf.jar")); List<JarInputStream> l = new ArrayList<JarInputStream>(); l.add(jis); BRMSPackageBuilder builder = new BRMSPackageBuilder(new Properties(), new ClassLoaderBuilder(l).buildClassLoader()); PackageDescr pc = new PackageDescr("foo.bar"); builder.addPackage(pc); String header = "import com.billasurf.Person\n import com.billasurf.Board"; builder.addPackageFromDrl(new StringReader(header)); assertFalse(builder.hasErrors()); JavaDialectConfiguration javaConf = (JavaDialectConfiguration) builder.getPackageBuilderConfiguration().getDialectConfiguration("java"); assertEquals(JavaDialectConfiguration.ECLIPSE, javaConf.getCompiler()); }