use of org.syncany.plugins.Plugin in project syncany by syncany.
the class AbstractTransferManagerTest method testLocalPluginInfo.
@Test
public void testLocalPluginInfo() {
String pluginId = getPluginId();
Plugin plugin = Plugins.get(pluginId);
assertNotNull("PluginInfo should not be null.", plugin);
assertEquals("Plugin ID should different.", pluginId, plugin.getId());
assertNotNull("Plugin version should not be null.", plugin.getVersion());
assertNotNull("Plugin name should not be null.", plugin.getName());
}
use of org.syncany.plugins.Plugin in project syncany by syncany.
the class PluginOperation method checkPluginCompatibility.
private void checkPluginCompatibility(PluginInfo pluginInfo) throws Exception {
Version applicationVersion = Version.valueOf(Client.getApplicationVersion());
Version pluginAppMinVersion = Version.valueOf(pluginInfo.getPluginAppMinVersion());
logger.log(Level.INFO, "Checking plugin compatibility:");
logger.log(Level.INFO, "- Application version: " + Client.getApplicationVersion() + "(" + applicationVersion + ")");
logger.log(Level.INFO, "- Plugin min. application version: " + pluginInfo.getPluginAppMinVersion() + "(" + pluginAppMinVersion + ")");
if (applicationVersion.lessThan(pluginAppMinVersion)) {
throw new Exception("Plugin is incompatible to this application version. Plugin min. application version is " + pluginInfo.getPluginAppMinVersion() + ", current application version is " + Client.getApplicationVersion());
}
// Verify if any conflicting plugins are installed
logger.log(Level.INFO, "Checking for conflicting plugins.");
List<String> conflictingIds = pluginInfo.getConflictingPluginIds();
List<String> conflictingInstalledIds = new ArrayList<String>();
if (conflictingIds != null) {
for (String pluginId : conflictingIds) {
Plugin plugin = Plugins.get(pluginId);
if (plugin != null) {
logger.log(Level.INFO, "- Conflicting plugin " + pluginId + " found.");
conflictingInstalledIds.add(pluginId);
}
logger.log(Level.FINE, "- Conflicting plugin " + pluginId + " not installed");
}
}
result.setConflictingPlugins(conflictingInstalledIds);
}
use of org.syncany.plugins.Plugin in project syncany by syncany.
the class PluginOperation method executeList.
private PluginOperationResult executeList() throws Exception {
final Version applicationVersion = Version.valueOf(Client.getApplicationVersion());
Map<String, ExtendedPluginInfo> pluginInfos = new TreeMap<String, ExtendedPluginInfo>();
// First, list local plugins
if (options.getListMode() == PluginListMode.ALL || options.getListMode() == PluginListMode.LOCAL) {
for (PluginInfo localPluginInfo : getLocalList()) {
if (options.getPluginId() != null && !localPluginInfo.getPluginId().equals(options.getPluginId())) {
continue;
}
// Determine standard plugin information
ExtendedPluginInfo extendedPluginInfo = new ExtendedPluginInfo();
extendedPluginInfo.setLocalPluginInfo(localPluginInfo);
extendedPluginInfo.setInstalled(true);
// Test if plugin can be uninstalled
Plugin plugin = Plugins.get(localPluginInfo.getPluginId());
File pluginJarFile = getJarFile(plugin);
boolean canUninstall = canUninstall(pluginJarFile);
extendedPluginInfo.setCanUninstall(canUninstall);
// Add to list
pluginInfos.put(localPluginInfo.getPluginId(), extendedPluginInfo);
}
}
// Then, list remote plugins
if (options.getListMode() == PluginListMode.ALL || options.getListMode() == PluginListMode.REMOTE) {
for (PluginInfo remotePluginInfo : getRemotePluginInfoList()) {
if (options.getPluginId() != null && !remotePluginInfo.getPluginId().equals(options.getPluginId())) {
continue;
}
ExtendedPluginInfo extendedPluginInfo = pluginInfos.get(remotePluginInfo.getPluginId());
boolean localPluginInstalled = extendedPluginInfo != null;
if (!localPluginInstalled) {
// Locally not installed
extendedPluginInfo = new ExtendedPluginInfo();
extendedPluginInfo.setInstalled(false);
extendedPluginInfo.setRemoteAvailable(true);
} else {
// Locally also installed
extendedPluginInfo.setRemoteAvailable(true);
Version localVersion = Version.valueOf(extendedPluginInfo.getLocalPluginInfo().getPluginVersion());
Version remoteVersion = Version.valueOf(remotePluginInfo.getPluginVersion());
Version remoteMinAppVersion = Version.valueOf(remotePluginInfo.getPluginAppMinVersion());
boolean localVersionOutdated = localVersion.lessThan(remoteVersion);
boolean applicationVersionCompatible = applicationVersion.greaterThanOrEqualTo(remoteMinAppVersion);
boolean pluginIsOutdated = localVersionOutdated && applicationVersionCompatible;
extendedPluginInfo.setOutdated(pluginIsOutdated);
}
extendedPluginInfo.setRemotePluginInfo(remotePluginInfo);
pluginInfos.put(remotePluginInfo.getPluginId(), extendedPluginInfo);
}
}
result.setPluginList(new ArrayList<ExtendedPluginInfo>(pluginInfos.values()));
result.setResultCode(PluginResultCode.OK);
return result;
}
use of org.syncany.plugins.Plugin in project syncany by syncany.
the class CliPluginsTest method testPluginsList.
@Test
public void testPluginsList() {
Collection<Plugin> pluginList = Plugins.list();
List<String> expectedPluginIds = Arrays.asList(new String[] { "local", "unreliable_local", "dummy" });
List<String> actualPluginIds = new ArrayList<String>();
for (Plugin plugin : pluginList) {
actualPluginIds.add(plugin.getId());
}
assertTrue(expectedPluginIds.containsAll(actualPluginIds));
assertTrue(actualPluginIds.containsAll(expectedPluginIds));
}
use of org.syncany.plugins.Plugin in project syncany by syncany.
the class PluginOperation method getLocalList.
private List<PluginInfo> getLocalList() {
List<PluginInfo> localPluginInfos = new ArrayList<PluginInfo>();
for (Plugin plugin : Plugins.list()) {
PluginInfo pluginInfo = new PluginInfo();
pluginInfo.setPluginId(plugin.getId());
pluginInfo.setPluginName(plugin.getName());
pluginInfo.setPluginVersion(plugin.getVersion());
localPluginInfos.add(pluginInfo);
}
return localPluginInfos;
}
Aggregations