1 package com.atlassian.plugin.loaders.classloading;
2
3 import com.atlassian.plugin.test.PluginTestUtils;
4 import com.atlassian.plugin.util.ClassLoaderUtils;
5 import org.apache.commons.io.FileUtils;
6
7 import java.io.File;
8 import java.io.IOException;
9 import java.net.URISyntaxException;
10 import java.net.URL;
11
12 public class DirectoryPluginLoaderUtils {
13 private static final String TEST_PLUGIN_DIRECTORY = "ap-plugins";
14 public static final String PADDINGTON_JAR = "paddington-test-plugin.jar";
15 public static final String POOH_JAR = "pooh-test-plugin.jar";
16
17
18
19
20 public static File copyTestPluginsToTempDirectory() throws IOException {
21 File directory = PluginTestUtils.createTempDirectory(DirectoryPluginLoaderUtils.class);
22 FileUtils.copyDirectory(getTestPluginsDirectory(), directory);
23
24
25 FileUtils.deleteDirectory(new File(directory, "CVS"));
26 FileUtils.deleteDirectory(new File(directory, ".svn"));
27
28 return directory;
29 }
30
31
32
33
34 public static File getTestPluginsDirectory() {
35 URL url = ClassLoaderUtils.getResource(TEST_PLUGIN_DIRECTORY, DirectoryPluginLoaderUtils.class);
36 try {
37 return new File(url.toURI());
38 } catch (URISyntaxException e) {
39
40
41 return new File(url.getFile());
42 }
43 }
44
45 public static ScannerDirectories createFillAndCleanTempPluginDirectory() throws IOException {
46 File pluginsDirectory = getTestPluginsDirectory();
47 File pluginsTestDir = copyTestPluginsToTempDirectory();
48 return new ScannerDirectories(pluginsDirectory, pluginsTestDir);
49 }
50
51 public static class ScannerDirectories {
52 public final File pluginsDirectory;
53 public final File pluginsTestDir;
54
55 public ScannerDirectories(File pluginsDirectory, File pluginsTestDir) {
56 this.pluginsDirectory = pluginsDirectory;
57 this.pluginsTestDir = pluginsTestDir;
58 }
59 }
60 }