PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/atlassian/bamboo/plugin/dotnet/visualstudio/VisualStudioConfigurator.java

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