View Javadoc

1   package com.atlassian.plugin.loaders.classloading;
2   
3   import com.atlassian.plugin.test.PluginTestUtils;
4   import com.atlassian.plugin.util.ClassLoaderUtils;
5   
6   import java.io.File;
7   import java.io.IOException;
8   import java.net.URL;
9   
10  import org.apache.commons.io.FileUtils;
11  
12  public class DirectoryPluginLoaderUtils
13  {
14      private static final String TEST_PLUGIN_DIRECTORY = "ap-plugins";
15  
16      /**
17       * Copies the test plugins to a new temporary directory and returns that directory.
18       */
19      public static File copyTestPluginsToTempDirectory() throws IOException
20      {
21          File directory = PluginTestUtils.createTempDirectory(DirectoryPluginLoaderUtils.class);
22          FileUtils.copyDirectory(getTestPluginsDirectory(), directory);
23  
24          // Clean up version control files in case we copied them by mistake.
25          FileUtils.deleteDirectory(new File(directory, "CVS"));
26          FileUtils.deleteDirectory(new File(directory, ".svn"));
27  
28          return directory;
29      }
30  
31      /**
32       * Returns the directory on the classpath where the test plugins live.
33       */
34      public static File getTestPluginsDirectory()
35      {
36          URL url = ClassLoaderUtils.getResource(TEST_PLUGIN_DIRECTORY, DirectoryPluginLoaderUtils.class);
37          return new File(url.getFile());
38      }
39  }