Add support to specify alternative compiler

git-svn-id: https://svn.apache.org/repos/asf/ant/easyant/plugins/trunk@1529300 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compile-java/src/main/resources/compile-java.ant b/compile-java/src/main/resources/compile-java.ant
index e08c347..c9c57ea 100644
--- a/compile-java/src/main/resources/compile-java.ant
+++ b/compile-java/src/main/resources/compile-java.ant
@@ -29,18 +29,23 @@
         description="Specify a VM version for Generated class files (e.g., 1.1 or 1.2)." />
     <ea:parameter property="compile.java.source.version" default="${ant.java.version}"
         description="Specify a value of the -source command-line switch; will be ignored by all implementations prior to javac1.4 (or modern when Ant is not running in a 1.3 VM) and jikes" />
+	<ea:parameter property="compile.java.compiler" description="The compiler implementation to use" default="modern"/>
     <available file="${src.main.java}" property="has.src.main.java" />
 	
 	<property name="main.sources" value="${src.main.java}"/>
 	<property name="main.sources.includes" value="${compile.java.includes.pattern}"/>
 	<property name="main.sources.excludes" value="${compile.java.excludes.pattern}"/>
+	
+	<path id="java.compiler.classpath" description="A PATH like structure holding the classpath to use when loading the compiler implementation if a custom class has been specified. Doesn't have any effect when using one of the built-in compilers."/>
 		    
     <target name="compile-java:compile" depends="abstract-compile:compile-ready" if="has.src.main.java"
         extensionOf="abstract-compile:compile">
         <mkdir dir="${target.main.classes}" />
         <javac srcdir="${src.main.java}" destdir="${target.main.classes}" debug="${javac.debug.mode}" source="${compile.java.source.version}"
             target="${compile.java.target.version}" classpathref="compile.main.classpath" includes="${compile.java.includes.pattern}"
-            excludes="${compile.java.excludes.pattern}" includeantruntime="no">
+            excludes="${compile.java.excludes.pattern}" includeantruntime="no"
+        	compiler="${compile.java.compiler}">
+        	<compilerclasspath refid="java.compiler.classpath"/>
         </javac>
     </target>
 </project>
\ No newline at end of file
diff --git a/compile-java/src/test/antunit/compile-java-test.xml b/compile-java/src/test/antunit/compile-java-test.xml
index 6d5f27b..8d4f080 100644
--- a/compile-java/src/test/antunit/compile-java-test.xml
+++ b/compile-java/src/test/antunit/compile-java-test.xml
@@ -42,11 +42,14 @@
         <au:assertPropertyEquals name="compile.java.excludes.pattern" value="" />
         <au:assertPropertyEquals name="compile.java.target.version" value="${ant.java.version}" />
         <au:assertPropertyEquals name="compile.java.source.version" value="${ant.java.version}" />
-        <au:assertPropertyEquals name="has.src.main.java" value="true" />
+        <au:assertPropertyEquals name="compile.java.compiler" value="modern"/>
+
+    	<au:assertPropertyEquals name="has.src.main.java" value="true" />
 
         <au:assertPropertyEquals name="main.sources" value="${basedir}/src/main/java"/>
         <au:assertPropertyEquals name="main.sources.includes" value="**/*.java"/>
         <au:assertPropertyEquals name="main.sources.excludes" value=""/>
+    	<au:assertReferenceSet refid="java.compiler.classpath"/>
     </target>
 
     <target name="test-compile-java:compile" depends="compile-java:compile">