1 package com.atlassian.plugin.loaders;
2
3 import com.atlassian.plugin.PluginArtifactFactory;
4 import com.atlassian.plugin.event.PluginEventManager;
5 import com.atlassian.plugin.factories.PluginFactory;
6
7 import java.io.File;
8 import java.util.List;
9
10 /**
11 * A plugin loader to load plugins from a directory on disk. A {@link DirectoryScanner} is used to locate plugin
12 * artifacts and determine if they need to be redeployed or not.
13 */
14 public class DirectoryPluginLoader extends ScanningPluginLoader {
15
16 /**
17 * Constructs a loader for a particular directory and set of deployers
18 *
19 * @param path The directory containing the plugins
20 * @param pluginFactories The deployers that will handle turning an artifact into a plugin
21 * @param pluginEventManager The event manager, used for listening for shutdown events
22 * @since 2.0.0
23 */
24 public DirectoryPluginLoader(final File path, final List<PluginFactory> pluginFactories,
25 final PluginEventManager pluginEventManager) {
26 super(new DirectoryScanner(path), pluginFactories, pluginEventManager);
27 }
28
29 /**
30 * Constructs a loader for a particular directory and set of deployers
31 *
32 * @param path The directory containing the plugins
33 * @param pluginFactories The deployers that will handle turning an artifact into a plugin
34 * @param pluginArtifactFactory The plugin artifact factory
35 * @param pluginEventManager The event manager, used for listening for shutdown events
36 * @since 2.1.0
37 */
38 public DirectoryPluginLoader(final File path, final List<PluginFactory> pluginFactories,
39 final PluginArtifactFactory pluginArtifactFactory,
40 final PluginEventManager pluginEventManager) {
41 super(new DirectoryScanner(path), pluginFactories, pluginArtifactFactory, pluginEventManager);
42 }
43 }