1
2 package com.atlassian.maven.plugins.amps.product.studio;
3
4 import static com.atlassian.maven.plugins.amps.product.ProductHandlerFactory.STUDIO_CROWD;
5 import static java.lang.String.format;
6
7 import java.io.File;
8 import java.util.HashMap;
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.CrowdProductHandler;
17
18 public class StudioCrowdProductHandler extends CrowdProductHandler implements StudioComponentProductHandler
19 {
20 public StudioCrowdProductHandler(final MavenContext context, final MavenGoals goals)
21 {
22 super(context, goals);
23 }
24
25 @Override
26 public String getId()
27 {
28 return STUDIO_CROWD;
29 }
30
31 @Override
32 public ProductArtifact getArtifact()
33 {
34
35 return new ProductArtifact("com.atlassian.studio", "studio-crowd", "RELEASE");
36 }
37
38 @Override
39 public void processHomeDirectory(Product ctx, File homeDir) throws MojoExecutionException
40 {
41 super.processHomeDirectory(ctx, homeDir);
42 StudioProductHandler.processProductsHomeDirectory(log, ctx, homeDir);
43
44 }
45
46 @Override
47 protected void addProductHandlerOverrides(Product ctx, File homeDir, File explodedWarDir) throws MojoExecutionException
48 {
49 StudioProductHandler.addProductHandlerOverrides(log, ctx, homeDir, explodedWarDir);
50 }
51
52 @Override
53 public Map<String, String> getSystemProperties(Product product)
54 {
55 Map<String, String> systemProperties = new HashMap<String, String>(super.getSystemProperties(product));
56 final String dbUrl = format("jdbc:hsqldb:%s/database", getHomeDirectory(product).getPath());
57 final String driverClass = "org.hsqldb.jdbcDriver";
58 final String username = "sa";
59 final String password = "";
60 final String datasourceTypeClass = "javax.sql.DataSource";
61
62 final String datasource = format("cargo.datasource.url=%s", dbUrl);
63 final String driver = format("cargo.datasource.driver=%s", driverClass);
64 final String datasourceUsername = format("cargo.datasource.username=%s", username);
65 final String datasourcePassword = format("cargo.datasource.password=%s", password);
66 final String datasourceType = format("cargo.datasource.type=%s", datasourceTypeClass);
67 final String jndi = "cargo.datasource.jndi=jdbc/DefaultDS";
68
69 systemProperties.put("cargo.datasource.datasource",
70 format("%s|%s|%s|%s|%s|%s", datasource, driver, datasourceUsername, datasourcePassword, datasourceType, jndi));
71
72
73 systemProperties.putAll(product.getStudioProperties().getSystemProperties());
74
75 return systemProperties;
76 }
77
78 }