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