* Make a synchronous call to compute the status of the given lookup list. This call will return a
  * JSON status string that contains the list of plugins/features IDs that were found. It's up to
  * the caller to determine it the list contains the requested item (plugin). If it's not in the
  * list, it's not installed.
  * @param lookup Expected an multi-dimensional Object array with rows that contain: plugin-id,
  *     min-version, update-site, feature-id.
  * @return A JSON status for the given plugin(s)
 public Object synchronousComputeInstalledPlugins(final Object lookup) {
   final IConfigurationProcessor processor = getProcessor();
   ConfigurationStatus status = processor.getStatus(new NullProgressMonitor(), lookup, true);
   String jsonStatus = JSON.toString(status);
   return jsonStatus;
  * Returns an immediate JSON notification result regarding the installed plugins.<br>
  * The status of the result can be any of the {@link ConfigurationStatus} status constants.
  * @return An immediate JSON notification result regarding the installed plugins
 public Object getInstalledPlugins() {
   IConfigurationProcessor processor = getProcessor();
   // We rely on the fact that the ConfigurationStatus implements the JSON Convertible interface
   String processorResult = JSON.toString(processor.getStatus(null, null, false));
   // Construct a response which is similar to the notification structure being fired when
   // computeInstalledGems is invoked. This makes the JS side handling easier in both case.
   return BrowserNotifier.toJSONNotification(