public Optional<PluginInfo> run() throws PluginDocumentParseException { final PluginInfoDocumentParser pluginInfoDocumentParser = new PluginInfoDocumentParser(url); PluginInfo info = pluginInfoDocumentParser.parseDocument(b); if(!b.isPresent()) { info.setPluginDescriptor(null); return Optional.of(info); } if (info.getAvailableVersion().compareTo(PluginUtilities.getBundleVersion(b.get())) > 0) { // New version available! info.setPluginDescriptor(b.get()); return Optional.of(info); } return Optional.empty(); } }