I have coded a
Searcher plugin for the SciJava search framework that looks for loaded classes in the current JVM. I am looking for feedback from developers and power users on whether this is useful, as well as how best to handle a related privacy issue.
Here is what the class search currently looks like:
If you want to try it out, clone the scijava/scijava-search repository, check out the
class-search branch, and build it using
mvn. Then copy the
jars/ of an ImageJ2/Fiji installation, deleting the existing
jars/scijava-search-0.5.0.jar artifact. You should then have a new “Classes” section in the search results.
My questions are:
- Is this useful?
- Can you think of any other actions besides Javadoc and Source you’d like to see?
- Any other information you’d like to see reported in the details pane?
And finally: the privacy question. To make the Javadoc button work, I introduced a
JavadocService that talks to https://javadoc.scijava.org/ to compile the list of known packages across the SciJava ecosystem. This is very nice because any class with a package available from that portal will have a Javadoc button that launches the portal at the correct location. However, for performance reasons, the service currently talks to the remote URLs during initialization using several threads, so that the javadoc is ready to go within a few seconds. Without this optimization, we’d have to do something like: blindly show the Javadoc button before we really know if javadoc is available, compiling the javadoc packages upon first click of a javadoc button, which is likely to create a several-seconds-or-longer delay before the first javadoc request can be completed. So the question is: how should this best be handled?