1
2 package com.atlassian.maven.plugins.amps.product.studio;
3
4 import static com.atlassian.maven.plugins.amps.product.ProductHandlerFactory.STUDIO_JIRA;
5
6 import java.io.File;
7 import java.util.HashMap;
8 import java.util.List;
9 import java.util.Map;
10
11 import org.apache.maven.plugin.MojoExecutionException;
12 import com.atlassian.maven.plugins.amps.MavenContext;
13 import com.atlassian.maven.plugins.amps.MavenGoals;
14 import com.atlassian.maven.plugins.amps.Product;
15 import com.atlassian.maven.plugins.amps.ProductArtifact;
16 import com.atlassian.maven.plugins.amps.product.JiraProductHandler;
17 import com.atlassian.maven.plugins.amps.util.ConfigFileUtils;
18 import com.atlassian.maven.plugins.amps.util.ConfigFileUtils.Replacement;
19 import com.google.common.collect.Lists;
20
21
22 public class StudioJiraProductHandler extends JiraProductHandler implements StudioComponentProductHandler
23 {
24 public StudioJiraProductHandler(final MavenContext context, final MavenGoals goals)
25 {
26 super(context, goals);
27 }
28
29
30 @Override
31 public String getId()
32 {
33 return STUDIO_JIRA;
34 }
35
36 @Override
37 public ProductArtifact getArtifact()
38 {
39 return new ProductArtifact("com.atlassian.studio", "studio-jira", "RELEASE");
40 }
41
42 @Override
43 protected void addProductHandlerOverrides(Product ctx, File homeDir, File explodedWarDir) throws MojoExecutionException
44 {
45
46
47 List<File> configFiles = Lists.newArrayList();
48 configFiles.add(new File(explodedWarDir, "WEB-INF/classes/entityengine.xml"));
49 configFiles.add(new File(explodedWarDir, "WEB-INF/web.xml"));
50
51 List<Replacement> replacements = Lists.newArrayList();
52 replacements.add(new Replacement("field-type-name=\"postgres72\"", "field-type-name=\"hsql\""));
53 replacements.add(new Replacement("schema-name=\"public\"", "schema-name=\"PUBLIC\""));
54 replacements.add(new Replacement("%JIRA-HOME%", homeDir.getAbsolutePath()));
55
56 ConfigFileUtils.replace(configFiles, replacements, false, log);
57
58 StudioProductHandler.addProductHandlerOverrides(log, ctx, homeDir, explodedWarDir);
59 }
60
61 @Override
62 public Map<String, String> getSystemProperties(Product product)
63 {
64 Map<String, String> properties = new HashMap<String, String>(super.getSystemProperties(product));
65
66
67 properties.putAll(product.getStudioProperties().getSystemProperties());
68
69 return properties;
70 }
71
72
73
74 }