Search in sources :

Example 1 with VersionManager

use of org.pf4j.VersionManager in project pf4j-update by pf4j.

the class UpdateTest method update.

private static void update() throws Exception {
    // start the web server that serves the repository's artifacts
    try {
        new WebServer().start();
    } catch (Exception e) {
        e.printStackTrace();
        return;
    }
    // create plugin manager
    PluginManager pluginManager = new DefaultPluginManager();
    VersionManager versionManager = pluginManager.getVersionManager();
    String systemVersion = pluginManager.getSystemVersion();
    pluginManager.loadPlugins();
    // create update manager
    UpdateManager updateManager = new UpdateManager(pluginManager);
    // >> keep system up-to-date <<
    boolean systemUpToDate = true;
    // check for updates
    if (updateManager.hasUpdates()) {
        List<PluginInfo> updates = updateManager.getUpdates();
        log.debug("Found {} updates", updates.size());
        for (PluginInfo plugin : updates) {
            log.debug("Found update for plugin '{}'", plugin.id);
            PluginInfo.PluginRelease lastRelease = plugin.getLastRelease(systemVersion, versionManager);
            String lastVersion = lastRelease.version;
            String installedVersion = pluginManager.getPlugin(plugin.id).getDescriptor().getVersion();
            log.debug("Update plugin '{}' from version {} to version {}", plugin.id, installedVersion, lastVersion);
            boolean updated = updateManager.updatePlugin(plugin.id, lastVersion);
            if (updated) {
                log.debug("Updated plugin '{}'", plugin.id);
            } else {
                log.error("Cannot update plugin '{}'", plugin.id);
                systemUpToDate = false;
            }
        }
    } else {
        log.debug("No updates found");
    }
    // check for available (new) plugins
    if (updateManager.hasAvailablePlugins()) {
        List<PluginInfo> availablePlugins = updateManager.getAvailablePlugins();
        log.debug("Found {} available plugins", availablePlugins.size());
        for (PluginInfo plugin : availablePlugins) {
            log.debug("Found available plugin '{}'", plugin.id);
            PluginInfo.PluginRelease lastRelease = plugin.getLastRelease(systemVersion, versionManager);
            String lastVersion = lastRelease.version;
            log.debug("Install plugin '{}' with version {}", plugin.id, lastVersion);
            boolean installed = updateManager.installPlugin(plugin.id, lastVersion);
            if (installed) {
                log.debug("Installed plugin '{}'", plugin.id);
            } else {
                log.error("Cannot install plugin '{}'", plugin.id);
                systemUpToDate = false;
            }
        }
    } else {
        log.debug("No available plugins found");
    }
    if (systemUpToDate) {
        log.debug("System up-to-date");
    }
}
Also used : PluginManager(org.pf4j.PluginManager) DefaultPluginManager(org.pf4j.DefaultPluginManager) VersionManager(org.pf4j.VersionManager) DefaultPluginManager(org.pf4j.DefaultPluginManager)

Aggregations

DefaultPluginManager (org.pf4j.DefaultPluginManager)1 PluginManager (org.pf4j.PluginManager)1 VersionManager (org.pf4j.VersionManager)1