Guys, I have my own task and collection implemented and I use it like that: <taskdef name="myTask" classname="com...MyTask" classpathref="std.classpath" loaderref="myTask"/> <typedef name="download_files" classname="com.....AntFileInfoSet" classpathref="std.classpath" loaderref="myTask"/> <typedef name="file" classname="com.....AntFileInfo" classpathref="std.classpath" loaderref="myTask"/> ... <myTask .......> <download_files id="fl.flieInfos"> <file name="xxx" .../> <file name="xxx" .../> </download_files> </myTask> ...
My task and collection jar file is located at std.classpath. The problem is the AntFileInfoSet class is loaded by different classloader then AnFileInfoSet class defined by section <download_files/>. In that case I always get ClassCastException doing casting in AntFileInfoSet: public List getAntFileInfos() { if (refid != null) { return ((AntFileInfoSet) getProject().getReference(refid)).getAntFileInfos(); !!!!!! } else { return antFileInfos; } } In case I copy my jar file to ANT_HOME\lib directory and then run ant, everything is ok as only one classloader is used. As you can see I use loaderref="myTask" property but it doesn't help. Can you help me? Thx, Tomek