PageRenderTime 39ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/bamboo/plugins/tomcat/configuration/AbstractTomcatConfigurator.java

https://bitbucket.org/atlassian/bamboo-tomcat-plugin/
Java | 147 lines | 112 code | 27 blank | 8 comment | 10 complexity | d621c167d2dfc15775050e8f4966b8a2 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.bamboo.plugins.tomcat.configuration;
  2. import com.atlassian.bamboo.collections.ActionParametersMap;
  3. import com.atlassian.bamboo.security.EncryptionService;
  4. import com.atlassian.bamboo.task.AbstractTaskConfigurator;
  5. import com.atlassian.bamboo.task.TaskDefinition;
  6. import com.atlassian.bamboo.utils.error.ErrorCollection;
  7. import com.google.common.collect.ImmutableSet;
  8. import com.google.common.collect.Iterables;
  9. import com.opensymphony.xwork.TextProvider;
  10. import org.apache.commons.lang.StringUtils;
  11. import org.apache.log4j.Logger;
  12. import org.jetbrains.annotations.NotNull;
  13. import org.jetbrains.annotations.Nullable;
  14. import java.util.Map;
  15. import java.util.Set;
  16. public abstract class AbstractTomcatConfigurator extends AbstractTaskConfigurator
  17. {
  18. private static final Logger log = Logger.getLogger(AbstractTomcatConfigurator.class);
  19. // ------------------------------------------------------------------------------------------------------- Constants
  20. public static final String TOMCAT_URL = "tomcatUrl";
  21. public static final String TOMCAT_USERNAME = "tomcatUsername";
  22. public static final String TOMCAT_PLAIN_PASSWORD = "tomcatPassword";
  23. public static final String TOMCAT_PASSWORD = "encTomcatPassword";
  24. public static final String TOMCAT_6 = "tomcat6";
  25. public static final String APP_CONTEXT = "appContext";
  26. private static final Set<String> FIELDS_TO_COPY = ImmutableSet.<String>builder().add(TOMCAT_URL,
  27. TOMCAT_USERNAME,
  28. TOMCAT_PASSWORD,
  29. APP_CONTEXT,
  30. TOMCAT_6).build();
  31. private static final String PASSWORD_CHANGE = "passwordChange";
  32. // ------------------------------------------------------------------------------------------------- Type Properties
  33. // ---------------------------------------------------------------------------------------------------- Dependencies
  34. protected TextProvider textProvider;
  35. private EncryptionService encryptionService;
  36. // ---------------------------------------------------------------------------------------------------- Constructors
  37. // ----------------------------------------------------------------------------------------------- Interface Methods
  38. @Override
  39. public void populateContextForCreate(@NotNull final Map<String, Object> context)
  40. {
  41. super.populateContextForCreate(context);
  42. context.put(TOMCAT_URL, "http://localhost:8080/manager/");
  43. context.put(TOMCAT_USERNAME, "admin");
  44. context.put(APP_CONTEXT, "/test");
  45. }
  46. @Override
  47. public void populateContextForEdit(@NotNull final Map<String, Object> context, @NotNull final TaskDefinition taskDefinition)
  48. {
  49. super.populateContextForEdit(context, taskDefinition);
  50. taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, Iterables.concat(FIELDS_TO_COPY, getFieldsToCopy()));
  51. }
  52. @Override
  53. public void populateContextForView(@NotNull final Map<String, Object> context, @NotNull final TaskDefinition taskDefinition)
  54. {
  55. super.populateContextForView(context, taskDefinition);
  56. taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, Iterables.concat(FIELDS_TO_COPY, getFieldsToCopy()));
  57. }
  58. @Override
  59. public void validate(@NotNull final ActionParametersMap params, @NotNull final ErrorCollection errorCollection)
  60. {
  61. super.validate(params, errorCollection);
  62. final String url = params.getString(TOMCAT_URL);
  63. if (StringUtils.isEmpty(url))
  64. {
  65. errorCollection.addError(TOMCAT_URL, textProvider.getText("tomcat.url.error"));
  66. }
  67. if (StringUtils.isEmpty(params.getString(TOMCAT_USERNAME)))
  68. {
  69. errorCollection.addError(TOMCAT_USERNAME, textProvider.getText("tomcat.username.error"));
  70. }
  71. if (StringUtils.isEmpty(params.getString(TOMCAT_PLAIN_PASSWORD)) && params.getBoolean(PASSWORD_CHANGE))
  72. {
  73. errorCollection.addError(TOMCAT_PLAIN_PASSWORD, textProvider.getText("tomcat.password.error"));
  74. }
  75. if (StringUtils.isEmpty(params.getString(APP_CONTEXT)))
  76. {
  77. errorCollection.addError(APP_CONTEXT, textProvider.getText("tomcat.context.error"));
  78. }
  79. }
  80. @NotNull
  81. @Override
  82. public Map<String, String> generateTaskConfigMap(@NotNull final ActionParametersMap params, @Nullable final TaskDefinition previousTaskDefinition)
  83. {
  84. final Map<String, String> config = super.generateTaskConfigMap(params, previousTaskDefinition);
  85. taskConfiguratorHelper.populateTaskConfigMapWithActionParameters(config, params, Iterables.concat(FIELDS_TO_COPY, getFieldsToCopy()));
  86. String passwordChange = params.getString(PASSWORD_CHANGE);
  87. if ("true".equals(passwordChange))
  88. {
  89. final String password = params.getString(TOMCAT_PLAIN_PASSWORD);
  90. config.put(TOMCAT_PASSWORD, encryptionService.encrypt(password));
  91. }
  92. else if (previousTaskDefinition != null)
  93. {
  94. config.put(TOMCAT_PASSWORD, previousTaskDefinition.getConfiguration().get(TOMCAT_PASSWORD));
  95. }
  96. else
  97. {
  98. final String password = params.getString(TOMCAT_PLAIN_PASSWORD);
  99. config.put(TOMCAT_PASSWORD, encryptionService.encrypt(password));
  100. }
  101. String tomcat6 = params.getString(TOMCAT_6);
  102. if ("true".equals(tomcat6))
  103. {
  104. config.put(TOMCAT_6, Boolean.TRUE.toString());
  105. }
  106. return config;
  107. }
  108. protected abstract Set<String> getFieldsToCopy();
  109. // -------------------------------------------------------------------------------------------------- Action Methods
  110. // -------------------------------------------------------------------------------------------------- Public Methods
  111. // -------------------------------------------------------------------------------------- Basic Accessors / Mutators
  112. public void setTextProvider(final TextProvider textProvider)
  113. {
  114. this.textProvider = textProvider;
  115. }
  116. public void setEncryptionService(final EncryptionService encryptionService)
  117. {
  118. this.encryptionService = encryptionService;
  119. }
  120. }