David Van Couvering wrote:
Yes, this was my experience also. You can't have multiple configurations in a VM instance, because everything is dependent on system properties (both Derby itself as well as the test harness infrastructure). I don't *think* using classloaders will help because system properties, as I understand it, are VM-wide and span classloaders. But I haven't explicitly tested that.

David

Yes, system properties are VM-wide, but they can be changed at any time. The problem is if the properties are read and used only once, when the driver is loaded, since it is impossible to instruct a class loader to "unload" anything.

It is possible to load the driver multiple times with different class loaders. However, this requires that the driver is not in the classpath for the VM, otherwise your class loaders will delegate to the system classloader, which finds the driver and caches it. Thus, each class loader will return the same class, which has been initialized only once.

If it is impossible to exclude the driver from the VM's classpath (due to the test harness), it is still possible to load the driver multiple times (with different system property settings) using a bit of a hack: Make your own ClassLoader which doesn't delegate to its parent classloader for certain class names (the driver's classes).

--
�yvind Bakksj�
Sun Microsystems, Web Services, Database Technology Group
Haakon VII gt. 7b, N-7485 Trondheim, Norway
Tel: x43419 / +47 73842119, Fax: +47 73842101

Reply via email to