As much a note to self as anything, but also a cautionary tale…
Open source libraries (I mean software libraries rather than big buildings with books – so apologies for the non-technical readers!) – are very useful. Sometimes they can vanish – projects go under, people stop being interested, and soon a code base is “unsupported” and maybe, one day, might vanish from the Web. Take, for example, the Trilead Java SSH Library, the demise of which I think must be fairly recent.
A quick Google search suggests the following:
Which helpfully says:
“Trilead SSH for Java The freely available open-source library won’t be anymore developed nore supported by Trilead.” (sic.)
Unsupported, in this case, also means unavailable and there are no links to any code from here.
Other sites link to:
which gives a 404.
None of which is very helpful when your code is telling you:
Exception in thread “main” java.lang.NoClassDefFoundError: com/trilead/ssh2/InteractiveCallback
(Should any non-technical types still be reading, that means “I have no idea what you are talking about when you refer to a thing called com.trilead.ssh2.InteractiveCallback so I’m not going to work, no way, not a chance, so there. Ner.“).
Now, had I been more awake, I probably would have noticed a sneaky little file by the name “trilead.jar” in the SVNKit directory. I would have also duely added it to the the classpath. But I wasn’t and I didn’t and then got into a panic searching for it.
But, and here is the moral of the tale, I did find this:
“Also, in the meantime we will put Trilead SSH library source code into our repository (it is also distributed under BSD license) so it will remain available for the community and we still will be able to make minor bugfixes in it when necessary.” [SVNKit User Mailing List, 18th May 2009]
Hooray for Open Source!
The open source project SVNKit, which made use of the open source library, was able – due to the open licensing – absorb the SSH library and make it available along with the SVNKit code. Even though the Trilead SSH Library is officially defunct, it lives on in the hands of its users. Marvellous eh?
All which is to say: 1) check the classpath and include all the jars and 2) open licensing means that something at least has a chance of being preserved by someone other than the creator who got fed up with all the emails asking how it worked… 🙂