Search in sources :

Example 1 with Plugin

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());
}
Also used : TransferPlugin(org.syncany.plugins.transfer.TransferPlugin) Plugin(org.syncany.plugins.Plugin) Test(org.junit.Test)

Example 2 with Plugin

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);
}
Also used : Version(com.github.zafarkhaja.semver.Version) ArrayList(java.util.ArrayList) IOException(java.io.IOException) Plugin(org.syncany.plugins.Plugin)

Example 3 with Plugin

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;
}
Also used : Version(com.github.zafarkhaja.semver.Version) TreeMap(java.util.TreeMap) File(java.io.File) Plugin(org.syncany.plugins.Plugin)

Example 4 with Plugin

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));
}
Also used : ArrayList(java.util.ArrayList) Plugin(org.syncany.plugins.Plugin) Test(org.junit.Test)

Example 5 with Plugin

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;
}
Also used : ArrayList(java.util.ArrayList) Plugin(org.syncany.plugins.Plugin)

Aggregations

Plugin (org.syncany.plugins.Plugin)9 ArrayList (java.util.ArrayList)4 Test (org.junit.Test)4 IOException (java.io.IOException)3 Version (com.github.zafarkhaja.semver.Version)2 File (java.io.File)2 BufferedWriter (java.io.BufferedWriter)1 FileWriter (java.io.FileWriter)1 PrintWriter (java.io.PrintWriter)1 TreeMap (java.util.TreeMap)1 ExtendedPluginInfo (org.syncany.operations.plugin.ExtendedPluginInfo)1 PluginOperationOptions (org.syncany.operations.plugin.PluginOperationOptions)1 PluginOperationResult (org.syncany.operations.plugin.PluginOperationResult)1 LocalTransferSettings (org.syncany.plugins.local.LocalTransferSettings)1 TransferPlugin (org.syncany.plugins.transfer.TransferPlugin)1 TestClient (org.syncany.tests.util.TestClient)1