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 buildRoot = new File("target");
31 String dirName = UUID.randomUUID().toString();
32 tempDir = new File(buildRoot, 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 }