| "java.lang.ClassCastException: org.apache.tools.ant.types.Path " error after | "java.lang.ClassCastException: org.apache.tools.ant.types.Path " error after 2006-09-22 - By David Corley (AT/LMI)
Sure guys sorry. I've just tried running the code with Ant 1.7 beta2 and the error remains.
The core build.xml contains the following (relevant) code: ==================================<target name="pre-junit" description="Runs the optional junt-setup ant script" if="junit.setup.required"> <ant inheritAll="true" inheritRefs="true" antfile="${ebldtool.dir}/PROJ/${proj.name}/junit-setup.xml" target="pre"/> </target>
.... .... ....
<target name="clover-junit" depends="clover-compile,pre-junit" if="use.clover"> <echo message="Copying all non-(.java/.class) files from source to bin directory should they be needed by JUnit..."/> <macrodef name="subproj.unittest"> <attribute name="subproj.junit.name" /> <attribute name="subproj.junit.classpath" /> <attribute name="subproj.junit.jvmargs" /> <attribute name="subproj.junit.include" /> <attribute name="subproj.junit.exclude" /> <sequential> <echo message="Starting JUnit Testing on @{subproj.junit.name}..." /> <path id="clover.junit.classpath"> <path refid="@{subproj.junit.classpath}" /> <path location="${clover.dir}/lib/clover.jar"/> </path> <junit fork="on" forkmode="${proj.junit.forkmode}" haltonfailure="false" printsummary="withOutAndErr" showoutput="false"> <classpath refid="clover.junit.classpath" /> <jvmarg line="@{subproj.junit.jvmargs}" /> <formatter type="xml" usefile="true" /> <batchtest fork="yes" todir="${output.dir}/@{subproj.junit.name}/reports/junit"> <fileset dir="${output.dir}/@{subproj.junit.name}/bin/test"> <!--Classes that will be included to run the tests--> <include name="@{subproj.junit.include}" /> <!--Classes that will be exlcuded from the tests--> <exclude name="@{subproj.junit.exclude}" /> </fileset> </batchtest> </junit> </sequential> </macrodef> <copy file="${dummy.dir}/TESTS-TestSuites.xml" tofile="${output.dir}/DUMMY/reports/junit/TESTS-TestSuites.xml" /> <echo message="Running JUnit Tests..."/> <subproj.unittest subproj.junit.name="${proj.compile.1st.name}" subproj.junit.classpath="proj.junit.1st.classpath" subproj.junit.jvmargs="${proj.junit.1st.jvmargs}" subproj.junit.include="${proj.junit.1st.include}" subproj.junit.exclude="${proj.junit.1st.exclude}" /> <subproj.unittest subproj.junit.name="${proj.compile.2nd.name}" subproj.junit.classpath="proj.junit.2nd.classpath" subproj.junit.jvmargs="${proj.junit.2nd.jvmargs}" subproj.junit.include="${proj.junit.2nd.include}" subproj.junit.exclude="${proj.junit.2nd.exclude}" /> <subproj.unittest subproj.junit.name="${proj.compile.3rd.name}" subproj.junit.classpath="proj.junit.3rd.classpath" subproj.junit.jvmargs="${proj.junit.3rd.jvmargs}" subproj.junit.include="${proj.junit.3rd.include}" subproj.junit.exclude="${proj.junit.3rd.exclude}" />
<macrodef name="subproj.test.report"> <attribute name="subproj.junit.report.name" /> <sequential> <echo message="Generating JUnit reports for @{subproj.junit.report.name}..." /> <junitreport todir="${output.dir}/@{subproj.junit.report.name}/reports/junit"> <fileset dir="${output.dir}/@{subproj.junit.report.name}/reports/junit"> <include name="*.xml" /> </fileset> <report format="frames" todir="${output.dir}/@{subproj.junit.report.name}/reports/junit/html" /> </junitreport> </sequential> </macrodef> <echo message="Generating JUnit reports for each sub-project..."/> <subproj.test.report subproj.junit.report.name="${proj.compile.1st.name}" /> <subproj.test.report subproj.junit.report.name="${proj.compile.2nd.name}" /> <subproj.test.report subproj.junit.report.name="${proj.compile.3rd.name}" /> <!--The following section consolidates all of the subcomponent JUnit test results together to generate an "overall" report.--> <echo message="Combining individual sub-project JUnit reports into an overall report..."/> <junitreport todir="${output.dir}/OverallJunit"> <fileset dir="${output.dir}/${proj.compile.1st.name}/reports/junit"> <include name="*.xml" /> </fileset> <fileset dir="${output.dir}/${proj.compile.2nd.name}/reports/junit"> <include name="*.xml" /> </fileset> <fileset dir="${output.dir}/${proj.compile.3rd.name}/reports/junit"> <include name="*.xml" /> </fileset> <report format="frames" todir="${output.dir}/OverallJunit" /> </junitreport> <antcall target="post-junit"/> </target>
.... .... ....
<target name="post-junit" description="Runs the optional junt-setup ant script" if="junit.setup.required"> <ant inheritAll="true" inheritRefs="true" antfile="${ebldtool.dir}/PROJ/${proj.name}/junit-setup.xml" target="post"/> </target> =============================================================================== =================================The junit-setup.xml contains the following: =============================================================================== =================================<?xml version="1.0" encoding="UTF-8"?> <project name="junit-setup"> <!--This entire file can be almost completely controlled by each user as long as the "pre" and "post" targets are present.--> <!--Every property and classpath that ebldtool already uses can also be used in this file--> <!--Its main purpose is to provide users with a means of kicking off live servers/mc's with which to run their unit tests against.--> <!--While the unit tests themselves are run by ebldtool, everything that happens right up to,and directly after them, can be specified here.--> <!--This file is only examined and its targets run if the user has the junit.setup.required property set to "true" in their build.properties file.--> <target name="pre" depends="" description="this is the target that ebldtool looks to for instructions to carry out before running unit tests"> <echo message="pre-junit" </target> <target name="post" depends="" description="this is the target that ebldtool looks to for instructions to carry out before running unit tests"> </target> </project> =============================================================================== ================================= I know that the properties being passed to junit are ok, because when I bypass the call to the external junit-setup file, junit proceeds as normal. So it's literally running the <ant> task in the <pre-junit> and <post-junit> targets in the core build.xml snippets above that causes the problem.
/Dave
-----Original Message----- From: Dominique Devienne [mailto:ddevienne@(protected)] Sent: 22 September 2006 14:15 To: Ant Users List Subject: Re: "java.lang.ClassCastException: org.apache.tools.ant.types.Path" error after using <ant> task within ant
On 9/22/06, David Corley (AT/LMI) <david.corley@(protected)> wrote: > I have a situation where I have a common core build.xml for many > users, with an optional junit-setup.xml build file called by ant if > the user sets a particular property, junit.setup.required. > > The junit-setup file is a standard file of the ant build.xml format, > and contains two empty, predefined targets called "post", and "pre"
Please share the relevant excerpts of yours builds. Thanks, --DD
--------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
--------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
|
|
 |