PageRenderTime 62ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/bamboo/plugin/dotnet/msbuild/MsBuildConfigurator.java

https://bitbucket.org/atlassian/bamboo-dotnet-plugin/
Java | 108 lines | 86 code | 14 blank | 8 comment | 2 complexity | 07c5152fbda2b2351f3890d78410bf3f MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package com.atlassian.bamboo.plugin.dotnet.msbuild;
  2. import com.atlassian.bamboo.build.Job;
  3. import com.atlassian.bamboo.collections.ActionParametersMap;
  4. import com.atlassian.bamboo.deployments.environments.DeploymentTaskRequirementSupport;
  5. import com.atlassian.bamboo.deployments.environments.Environment;
  6. import com.atlassian.bamboo.plugin.dotnet.support.AbstractDotNetTaskConfigurator;
  7. import com.atlassian.bamboo.task.BuildTaskRequirementSupport;
  8. import com.atlassian.bamboo.task.TaskConfigConstants;
  9. import com.atlassian.bamboo.task.TaskDefinition;
  10. import com.atlassian.bamboo.utils.error.ErrorCollection;
  11. import com.atlassian.bamboo.v2.build.agent.capability.Requirement;
  12. import com.atlassian.bamboo.v2.build.agent.capability.RequirementImpl;
  13. import com.google.common.collect.Sets;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.apache.log4j.Logger;
  16. import org.jetbrains.annotations.NotNull;
  17. import org.jetbrains.annotations.Nullable;
  18. import java.util.Map;
  19. import java.util.Set;
  20. public class MsBuildConfigurator extends AbstractDotNetTaskConfigurator implements BuildTaskRequirementSupport, DeploymentTaskRequirementSupport
  21. {
  22. @SuppressWarnings("UnusedDeclaration")
  23. private static final Logger log = Logger.getLogger(MsBuildConfigurator.class);
  24. // ------------------------------------------------------------------------------------------------------- Constants
  25. private static final Set<String> FIELDS_TO_COPY = Sets.newHashSet(
  26. MsBuildConfig.LABEL,
  27. MsBuildConfig.SOLUTION,
  28. MsBuildConfig.OPTIONS,
  29. MsBuildConfig.ENVIRONMENT,
  30. TaskConfigConstants.CFG_WORKING_SUB_DIRECTORY
  31. );
  32. private static final String DEFAULT_SOLUTION = "YourSolution.sln";
  33. // ------------------------------------------------------------------------------------------------- Type Properties
  34. // ---------------------------------------------------------------------------------------------------- Dependencies
  35. // ---------------------------------------------------------------------------------------------------- Constructors
  36. // ----------------------------------------------------------------------------------------------- Interface Methods
  37. @NotNull
  38. @Override
  39. public Set<Requirement> calculateRequirements(@NotNull TaskDefinition taskDefinition, @NotNull Environment environment)
  40. {
  41. final String label = taskDefinition.getConfiguration().get(MsBuildConfig.LABEL);
  42. return Sets.<Requirement>newHashSet(new RequirementImpl(MsBuildTaskType.MSBUILD_CAPABILITY_PREFIX + "." + label, true, ".*"));
  43. }
  44. @Override
  45. @NotNull
  46. public Set<Requirement> calculateRequirements(@NotNull TaskDefinition taskDefinition, @NotNull Job buildable)
  47. {
  48. final String label = taskDefinition.getConfiguration().get(MsBuildConfig.LABEL);
  49. return Sets.<Requirement>newHashSet(new RequirementImpl(MsBuildTaskType.MSBUILD_CAPABILITY_PREFIX + "." + label, true, ".*"));
  50. }
  51. @Override
  52. public void validate(@NotNull final ActionParametersMap actionParametersMap, @NotNull final ErrorCollection errorCollection)
  53. {
  54. final String solution = actionParametersMap.getString(MsBuildConfig.SOLUTION);
  55. if (StringUtils.isEmpty(solution))
  56. {
  57. errorCollection.addError(MsBuildConfig.SOLUTION, textProvider.getText("msbuild.solution.error"));
  58. }
  59. final String label = actionParametersMap.getString(MsBuildConfig.LABEL);
  60. if (StringUtils.isEmpty(label))
  61. {
  62. errorCollection.addError(MsBuildConfig.LABEL, textProvider.getText("msbuild.label.error"));
  63. }
  64. }
  65. @Override
  66. public void populateContextForCreate(@NotNull final Map<String, Object> context)
  67. {
  68. super.populateContextForCreate(context);
  69. context.put(MsBuildConfig.SOLUTION, DEFAULT_SOLUTION);
  70. }
  71. @Override
  72. public void populateContextForEdit(@NotNull final Map<String, Object> context, @NotNull final TaskDefinition taskDefinition)
  73. {
  74. super.populateContextForEdit(context, taskDefinition);
  75. taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, FIELDS_TO_COPY);
  76. }
  77. @Override
  78. public void populateContextForView(@NotNull final Map<String, Object> context, @NotNull final TaskDefinition taskDefinition)
  79. {
  80. super.populateContextForView(context, taskDefinition);
  81. taskConfiguratorHelper.populateContextWithConfiguration(context, taskDefinition, FIELDS_TO_COPY);
  82. }
  83. @NotNull
  84. @Override
  85. public Map<String, String> generateTaskConfigMap(@NotNull final ActionParametersMap params, @Nullable final TaskDefinition previousTaskDefinition)
  86. {
  87. final Map<String, String> map = super.generateTaskConfigMap(params, previousTaskDefinition);
  88. taskConfiguratorHelper.populateTaskConfigMapWithActionParameters(map, params, FIELDS_TO_COPY);
  89. return map;
  90. }
  91. // -------------------------------------------------------------------------------------------------- Action Methods
  92. // -------------------------------------------------------------------------------------------------- Public Methods
  93. // -------------------------------------------------------------------------------------- Basic Accessors / Mutators
  94. }