[jboss-svn-commits] JBL Code SVN: r5028 - labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/compiler

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 11 20:56:54 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-07-11 20:56:51 -0400 (Tue, 11 Jul 2006)
New Revision: 5028

Modified:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
Log:
JBRULES-367 Can't use JANINO compiler
-Added unit test

Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2006-07-12 00:27:10 UTC (rev 5027)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2006-07-12 00:56:51 UTC (rev 5028)
@@ -24,10 +24,15 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
 import java.io.ObjectOutputStream;
+import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.jci.compilers.EclipseJavaCompiler;
+import org.apache.commons.jci.compilers.EclipseJavaCompilerSettings;
+import org.apache.commons.jci.compilers.JaninoJavaCompiler;
+import org.apache.commons.jci.compilers.JavaCompiler;
 import org.drools.Cheese;
 import org.drools.DroolsTestCase;
 import org.drools.FactHandle;
@@ -820,6 +825,49 @@
                       builder.getErrors() );
     }
 
+    public void testCompilerConfiguration() throws  Exception {
+    	// test default is eclipse jdt core
+    	PackageBuilder builder = new PackageBuilder( );;    	
+    	Field compilerField = builder.getClass().getDeclaredField( "compiler" );
+    	compilerField.setAccessible(true);
+    	JavaCompiler compiler = ( JavaCompiler ) compilerField.get( builder );
+    	assertSame( EclipseJavaCompiler.class, compiler.getClass() );
+    	
+    	// test JANINO with property settings
+    	PackageBuilderConfiguration conf = new PackageBuilderConfiguration();    	
+    	conf.setCompiler( PackageBuilderConfiguration.JANINO );
+    	builder = new PackageBuilder( conf );;    	
+    	compiler = ( JavaCompiler ) compilerField.get( builder );
+    	assertSame( JaninoJavaCompiler.class, compiler.getClass() );
+    	
+    	// test eclipse jdt core with property settings and default source level
+    	conf = new PackageBuilderConfiguration();    	
+    	conf.setCompiler( PackageBuilderConfiguration.ECLIPSE );
+    	builder = new PackageBuilder( conf );;    	
+    	compiler = ( JavaCompiler ) compilerField.get( builder );
+    	assertSame( EclipseJavaCompiler.class, compiler.getClass() );   
+    	
+    	EclipseJavaCompiler eclipseCompiler = ( EclipseJavaCompiler ) compiler;
+    	Field settingsField  = eclipseCompiler.getClass().getDeclaredField( "settings" );
+    	settingsField.setAccessible( true );
+    	EclipseJavaCompilerSettings settings = ( EclipseJavaCompilerSettings ) settingsField.get( eclipseCompiler );
+    	assertEquals( "1.4", settings.getMap().get( "org.eclipse.jdt.core.compiler.codegen.targetPlatform" ) );
+    	assertEquals( "1.4", settings.getMap().get( "org.eclipse.jdt.core.compiler.source" ) );
+    	
+    	// test eclipse jdt core with property settings and jdk1.5 source level
+    	conf = new PackageBuilderConfiguration();    	
+    	conf.setCompiler( PackageBuilderConfiguration.ECLIPSE );
+    	conf.setJavaLanguageLevel( "1.5" );
+    	builder = new PackageBuilder( conf );;    	
+    	compiler = ( JavaCompiler ) compilerField.get( builder );
+    	assertSame( EclipseJavaCompiler.class, compiler.getClass() );   
+    	
+    	eclipseCompiler = ( EclipseJavaCompiler ) compiler;
+    	settings = ( EclipseJavaCompilerSettings ) settingsField.get( eclipseCompiler );
+    	assertEquals( "1.5", settings.getMap().get( "org.eclipse.jdt.core.compiler.codegen.targetPlatform" ) );
+    	assertEquals( "1.5", settings.getMap().get( "org.eclipse.jdt.core.compiler.source" ) );    	
+    }
+    
     private void createReturnValueRule(final PackageDescr packageDescr,
                                        final String expression) {
         final RuleDescr ruleDescr = new RuleDescr( "rule-1" );




More information about the jboss-svn-commits mailing list