Browse Source

factory method pattern for PluginDescriptorFinder and ExtensionFinder

pull/3/head
Decebal Suiu 12 years ago
parent
commit
2d971079be
  1. 21
      pf4j/src/main/java/ro/fortsoft/pf4j/DefaultPluginManager.java

21
pf4j/src/main/java/ro/fortsoft/pf4j/DefaultPluginManager.java

@ -85,7 +85,7 @@ public class DefaultPluginManager implements PluginManager {
/** /**
* A compound class loader of resolved plugins. * A compound class loader of resolved plugins.
*/ */
private CompoundClassLoader compoundClassLoader; protected CompoundClassLoader compoundClassLoader;
/** /**
* Th plugins directory is supplied by System.getProperty("pf4j.pluginsDir", "plugins"). * Th plugins directory is supplied by System.getProperty("pf4j.pluginsDir", "plugins").
@ -110,20 +110,21 @@ public class DefaultPluginManager implements PluginManager {
resolvedPlugins = new ArrayList<PluginWrapper>(); resolvedPlugins = new ArrayList<PluginWrapper>();
disabledPlugins = new ArrayList<PluginWrapper>(); disabledPlugins = new ArrayList<PluginWrapper>();
startedPlugins = new ArrayList<PluginWrapper>(); startedPlugins = new ArrayList<PluginWrapper>();
pluginDescriptorFinder = new DefaultPluginDescriptorFinder();
compoundClassLoader = new CompoundClassLoader(); compoundClassLoader = new CompoundClassLoader();
extensionFinder = new DefaultExtensionFinder(compoundClassLoader);
pluginDescriptorFinder = createPluginDescriptorFinder();
extensionFinder = createExtensionFinder();
System.setProperty("pf4j.pluginsDir", pluginsDirectory.getAbsolutePath()); System.setProperty("pf4j.pluginsDir", pluginsDirectory.getAbsolutePath());
} }
public PluginDescriptorFinder getPluginDescriptorFinder() { protected PluginDescriptorFinder createPluginDescriptorFinder() {
return pluginDescriptorFinder; return new DefaultPluginDescriptorFinder();
} }
public void setPluginDescriptorFinder(PluginDescriptorFinder pluginDescriptorFinder) { protected ExtensionFinder createExtensionFinder() {
this.pluginDescriptorFinder = pluginDescriptorFinder; return new DefaultExtensionFinder(compoundClassLoader);
} }
@Override @Override
public List<PluginWrapper> getPlugins() { public List<PluginWrapper> getPlugins() {
@ -349,5 +350,5 @@ public class DefaultPluginManager implements PluginManager {
log.info("Plugin '" + pluginWrapper.getDescriptor().getPluginId() + "' resolved"); log.info("Plugin '" + pluginWrapper.getDescriptor().getPluginId() + "' resolved");
} }
} }
} }

Loading…
Cancel
Save