Hi Rainer,
Thanks for your help but I still have that problem.
The second solution with <property name="ant.reuse.loader"
value="true"/> seems not to work. I still have different classloader.
However, I don't understand the first suggestion. In case I will remove
classpathref attribute I will get ClassNotFoundException as
"std.classpath" defines location of my jar file and all required
libraries. Of course I can copy my jar and all libs into ANT_HOME\lib
directory but it is not a way I'd like to solve my problem.
Any other ideas how to force just one classloader?
Tomek
 
-----Original Message-----
From: Rainer Noack [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 25, 2005 12:07 PM
To: 'Ant Users List'
Subject: RE: Problem with dual classloader.

Hi Tomasz,
could you try the following:
remove classpathref attribute from the typedefs (maybe in this case, the
classloader-ref will be replaced)
or 
remove ALL loaderref attributes and set
<property name="ant.reuse.loader" value="true"/>
prior to your taskdefs and typedefs.
cheers
Rainer

> -----Original Message-----
> From: Siwiec, Tomasz [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, May 25, 2005 10:10 AM
> To: user@ant.apache.org
> Subject: Problem with dual classloader.
> 
> 
> 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
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to