package com.openseedbox.plugins; import java.util.ArrayList; import java.util.List; import play.Logger; import play.Play; public class PluginManager { public static List<OpenseedboxPlugin> getSearchPlugins() { List<OpenseedboxPlugin> ret = new ArrayList<OpenseedboxPlugin>(); List<Class> plugins = Play.classloader.getAssignableClasses(OpenseedboxPlugin.class); for (Class p : plugins) { try { OpenseedboxPlugin pl = (OpenseedboxPlugin) p.newInstance(); if (pl.isSearchPlugin()) { ret.add(pl); } } catch (InstantiationException ex) { Logger.error(ex, "Unable to instantiate plugin %s", p.getName()); } catch (IllegalAccessException ex) { Logger.error(ex, "Unable to instantiate plugin %s", p.getName()); } } return ret; } }