@Override
public void rescanAutoExposedLocalPlugins() {
IPersistenceDriver persistenceDriver = PluginsManager.getSingleton().getConfiguration().getPersistenceDriver();
if (persistenceDriver != null) {
Collection<Class<?>[]> actuallyExposedLocalPlugins = new ArrayList<Class<?>[]>();
for (Class<?>[] plugin : getExposedLocalPlugins())
actuallyExposedLocalPlugins.add(plugin);
for (String pluginInterfaceName : persistenceDriver.getPluginInterfacesNames())
if (!pluginInterfaceName.equals(IPluginsProvider.class.getName())
&& !pluginInterfaceName.equals(IEquivalentPluginInterfaceAdapter.class.getName()))
for (String pluginImplementationAddress : persistenceDriver.getPluginImplementationsAddresses(pluginInterfaceName))
if (pluginImplementationAddress.startsWith("local:"))
try {
Class<?> pluginInterface = this.getClass().getClassLoader().loadClass(pluginInterfaceName);
Class<?> pluginImplementation = this.getClass().getClassLoader().loadClass(pluginImplementationAddress.substring("local:".length()));