It would be helpful to provide a tool to perform some sanity checks on external data sources.
A few initial ideas:
1) Verify the data source handles various valid calling patters (e.g. Init()
>Prepare()>GetNext() >Close(), Init()>Close(), Init() >Prepare()>Close()).
2) Verify returned structures are valid and internally consistent.
3) Check if the data source is leaking, e.g. can we load the jar, call the data source, unload the jar-- i.e. did any objects remain in memory such that the classloader couldn't be unloaded?