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