1
2 package com.atlassian.maven.plugins.amps.product.studio;
3
4 import static com.atlassian.maven.plugins.amps.product.ProductHandlerFactory.STUDIO_BAMBOO;
5 import static java.lang.String.format;
6
7 import java.io.File;
8 import java.util.Arrays;
9 import java.util.HashMap;
10 import java.util.List;
11 import java.util.Map;
12
13 import org.apache.maven.plugin.MojoExecutionException;
14 import com.atlassian.maven.plugins.amps.MavenContext;
15 import com.atlassian.maven.plugins.amps.MavenGoals;
16 import com.atlassian.maven.plugins.amps.Product;
17 import com.atlassian.maven.plugins.amps.ProductArtifact;
18 import com.atlassian.maven.plugins.amps.product.BambooProductHandler;
19
20 public class StudioBambooProductHandler extends BambooProductHandler
21 {
22
23 public StudioBambooProductHandler(MavenContext context, MavenGoals goals)
24 {
25 super(context, goals);
26 }
27
28 @Override
29 public String getId()
30 {
31 return STUDIO_BAMBOO;
32 }
33
34 @Override
35 public ProductArtifact getArtifact()
36 {
37 return new ProductArtifact("com.atlassian.studio", "studio-bamboo", "RELEASE");
38 }
39
40 @Override
41 public void processHomeDirectory(Product ctx, File homeDir) throws MojoExecutionException
42 {
43 super.processHomeDirectory(ctx, homeDir);
44
45 StudioProductHandler.processProductsHomeDirectory(log, ctx, homeDir);
46 }
47
48 @Override
49 protected void addProductHandlerOverrides(Product ctx, File homeDir, File explodedWarDir) throws MojoExecutionException
50 {
51 StudioProductHandler.addProductHandlerOverrides(log, ctx, homeDir, explodedWarDir);
52 }
53
54 @Override
55 public List<ProductArtifact> getExtraContainerDependencies()
56 {
57 return Arrays.asList(
58 new ProductArtifact("hsqldb", "hsqldb", "1.8.0.5"),
59 new ProductArtifact("jta", "jta", "1.0.1"));
60 }
61
62 @Override
63 public Map<String, String> getSystemProperties(final Product product)
64 {
65 Map<String, String> systemProperties = new HashMap<String, String>(super.getSystemProperties(product));
66
67
68 final String dburl = System.getProperty("amps.datasource.url",
69 format("jdbc:hsqldb:%s/database", StudioProductHandler.fixWindowsSlashes(getHomeDirectory(product).getAbsolutePath())));
70 final String driverClass = System.getProperty("amps.datasource.driver", "org.hsqldb.jdbcDriver");
71 final String username = System.getProperty("amps.datasource.username", "sa");
72 final String password = System.getProperty("amps.datasource.password", "");
73 final String datasourceTypeClass = "javax.sql.DataSource";
74
75 final String datasource = format("cargo.datasource.url=%s", dburl);
76 final String driver = format("cargo.datasource.driver=%s", driverClass);
77 final String datasourceUsername = format("cargo.datasource.username=%s", username);
78 final String datasourcePassword = format("cargo.datasource.password=%s", password);
79 final String datasourceType = "cargo.datasource.type=" + datasourceTypeClass;
80 final String jndi = "cargo.datasource.jndi=jdbc/DefaultDS";
81
82 systemProperties.put("cargo.datasource.datasource",
83 format("%s|%s|%s|%s|%s|%s", datasource, driver, datasourceUsername, datasourcePassword, datasourceType, jndi));
84
85
86 systemProperties.putAll(product.getStudioProperties().getSystemProperties());
87
88 return systemProperties;
89 }
90
91 }