]> source.dussan.org Git - pf4j.git/commitdiff
factory method pattern for PluginDescriptorFinder and ExtensionFinder
authorDecebal Suiu <decebal.suiu@gmail.com>
Wed, 20 Feb 2013 09:22:24 +0000 (11:22 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Wed, 20 Feb 2013 09:22:24 +0000 (11:22 +0200)
pf4j/src/main/java/ro/fortsoft/pf4j/DefaultPluginManager.java

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