Aaron Kelley wrote:
So how exactly are dependencies found then?  Are dependencies only found
when you instantiate something with the keyword "new"?  My code is
filled with objects that are instantiated from factories or services.
If I simply return these objects from a service to my base code will my
base code not see this class as a dependency?  I use these objects all
throughout the base code, so I would imagine that they would be seen as
such.
Of course they will be seen as dependencies and found at runtime by the virtual machine. But inspecting the bytecode you'll find only strings.

You could try to write your custom dependency collector which would be aware of these strings. (I'm not sure but I think I heard about such a tool) But keep in mind that this cannot cover all possible cases. In fact you can pass any string to a Java program at runtime and try to load a corresponding class - a bytecode inspector could never know about that.

-----Original Message-----
From: Frank-Michael Moser [mailto:[EMAIL PROTECTED]] Sent: Tuesday, December 17, 2002 11:05 AM
To: Ant Users List
Subject: Re: ClassFileSet method of loading classes

Aaron Kelley wrote:

MyClass myclass = MyFactory.create(MyClass.class);

I would think that MyClass should be seen as a dependency (given that
this line exists in my rootfileset).  So am I using it wrong, or is it
something else?

When you examine at the bytecode of your (root-)class you will see that writing

MyClass.class

is totally equivalent to

Class.forName("package-of-myclass.MyClass");

In fact, in bytecode it is coded much more near to the latter form, such

that looking the bytecode can't result in finding any dependencies to MyClass.

Some time ago, when I started to use an obfuscator, I ran into this obstacle, too.

Frank-Michael


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


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

--
------------------------------------------------------------
DECODON GmbH                        phone: +49(0)3834 515231
W.-Rathenau-Str. 49a                  fax: +49(0)3834 515239
17489 Greifswald                    email: [EMAIL PROTECTED]
Germany                               web:   www.decodon.com
------------------------------------------------------------


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

Reply via email to