package net.i2p.router.web; import java.util.Collections; import java.util.List; import net.i2p.router.RouterContext; import net.i2p.util.Log; /** * Stop all plugins that are installed and running * * @since 0.7.13 * @author zzz */ public class PluginStopper extends PluginStarter { public PluginStopper(RouterContext ctx) { super(ctx); } @Override public void run() { stopPlugins(_context); } /** * Stop all running plugins * * this shouldn't throw anything */ private static void stopPlugins(RouterContext ctx) { Log log = ctx.logManager().getLog(PluginStopper.class); List<String> pl = getPlugins(); Collections.reverse(pl); // reverse the order for (String app : pl) { if (isPluginRunning(app, ctx)) { try { stopPlugin(ctx, app); } catch (Throwable e) { if (log.shouldLog(Log.WARN)) log.warn("Failed to stop plugin: " + app, e); } } } } }