1   package com.atlassian.plugins.codegen;
2   
3   import java.io.File;
4   import java.io.InputStream;
5   import java.io.OutputStream;
6   import java.util.UUID;
7   
8   import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
9   
10  import org.apache.commons.io.FileUtils;
11  import org.apache.commons.io.IOUtils;
12  
13  import static org.apache.commons.io.FileUtils.deleteDirectory;
14  
15  public class ProjectHelper
16  {
17      public static final String GROUP_ID = "myGroupId";
18      public static final String ARTIFACT_ID = "myArtifactId";
19      public static final String PLUGIN_KEY = "myGroupId.myArtifactId";
20  
21      public PluginModuleLocation location;
22      public File pluginXml;
23      public File tempDir;
24      public File srcDir;
25      public File testDir;
26      public File resourcesDir;
27      
28      public ProjectHelper() throws Exception
29      {
30          final File sysTempDir = new File("target");
31          String dirName = UUID.randomUUID().toString();
32          tempDir = new File(sysTempDir, dirName);
33          srcDir = new File(tempDir, "src");
34          testDir = new File(tempDir, "test");
35          resourcesDir = new File(tempDir, "resources");
36          pluginXml = new File(resourcesDir, "atlassian-plugin.xml");
37          tempDir.mkdirs();
38          srcDir.mkdirs();
39          testDir.mkdirs();
40          resourcesDir.mkdirs();
41          location = new PluginModuleLocation.Builder(srcDir)
42              .testDirectory(testDir)
43              .resourcesDirectory(resourcesDir)
44              .groupAndArtifactId(GROUP_ID, ARTIFACT_ID)
45              .build();
46      }
47      
48      public void usePluginXml(String path) throws Exception
49      {
50          InputStream is = this.getClass().getClassLoader().getResourceAsStream(path);
51          OutputStream os = FileUtils.openOutputStream(pluginXml);
52          IOUtils.copy(is, os);
53          is.close();
54          os.close();
55      }
56      
57      public void destroy() throws Exception
58      {
59          deleteDirectory(tempDir);
60      }
61  }