/maven-amps-plugin/src/main/java/com/atlassian/maven/plugins/amps/product/studio/StudioConfluenceProductHandler.java

https://bitbucket.org/mmeinhold/amps · Java · 89 lines · 70 code · 14 blank · 5 comment · 0 complexity · 51c5711566acfe36c7fb7e654943a42c MD5 · raw file

  1. package com.atlassian.maven.plugins.amps.product.studio;
  2. import com.atlassian.maven.plugins.amps.DataSource;
  3. import com.atlassian.maven.plugins.amps.MavenContext;
  4. import com.atlassian.maven.plugins.amps.MavenGoals;
  5. import com.atlassian.maven.plugins.amps.Product;
  6. import com.atlassian.maven.plugins.amps.ProductArtifact;
  7. import com.atlassian.maven.plugins.amps.product.ConfluenceProductHandler;
  8. import org.apache.maven.plugin.MojoExecutionException;
  9. import java.io.File;
  10. import java.util.Arrays;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. import static com.atlassian.maven.plugins.amps.product.ProductHandlerFactory.STUDIO_CONFLUENCE;
  15. import static com.atlassian.maven.plugins.amps.util.FileUtils.fixWindowsSlashes;
  16. import static java.lang.String.format;
  17. /**
  18. * Handler for Studio-Confluence
  19. * @since 3.6
  20. */
  21. public class StudioConfluenceProductHandler extends ConfluenceProductHandler implements StudioComponentProductHandler
  22. {
  23. public StudioConfluenceProductHandler(MavenContext context, MavenGoals goals)
  24. {
  25. super(context, goals);
  26. }
  27. @Override
  28. public String getId()
  29. {
  30. return STUDIO_CONFLUENCE;
  31. }
  32. @Override
  33. public ProductArtifact getArtifact()
  34. {
  35. return new ProductArtifact("com.atlassian.confluence", "confluence-studio-webapp", "RELEASE");
  36. }
  37. @Override
  38. public Map<String, String> getSystemProperties(final Product product)
  39. {
  40. Map<String, String> systemProperties = new HashMap<String, String>(super.getSystemProperties(product));
  41. // We also add common studio system properties
  42. systemProperties.putAll(product.getStudioProperties().getSystemProperties());
  43. return systemProperties;
  44. }
  45. @Override
  46. protected DataSource getDefaultDataSource(Product ctx)
  47. {
  48. DataSource dataSource = new DataSource();
  49. dataSource.setJndi("jdbc/DefaultDS");
  50. dataSource.setUrl(format("jdbc:hsqldb:%s/database/confluencedb;hsqldb.tx=MVCC", fixWindowsSlashes(getHomeDirectory(ctx).getAbsolutePath())));
  51. dataSource.setDriver("org.hsqldb.jdbcDriver");
  52. dataSource.setType("javax.sql.DataSource");
  53. dataSource.setUsername("sa");
  54. dataSource.setPassword("");
  55. return dataSource;
  56. }
  57. @Override
  58. public List<ProductArtifact> getExtraContainerDependencies()
  59. {
  60. return Arrays.asList(
  61. new ProductArtifact("org.hsqldb", "hsqldb", "2.2.4"),
  62. new ProductArtifact("jta", "jta", "1.0.1"));
  63. }
  64. @Override
  65. public void processHomeDirectory(Product ctx, File homeDir) throws MojoExecutionException
  66. {
  67. super.processHomeDirectory(ctx, homeDir);
  68. StudioProductHandler.processProductsHomeDirectory(log, ctx, homeDir);
  69. }
  70. @Override
  71. protected void customiseInstance(Product ctx, File homeDir, File explodedWarDir) throws MojoExecutionException
  72. {
  73. StudioProductHandler.addProductHandlerOverrides(log, ctx, homeDir, explodedWarDir);
  74. }
  75. }