PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/bamboo/plugin/dotnet/nant/NantCapabilityDefaultsHelper.java

https://bitbucket.org/atlassian/bamboo-dotnet-plugin/
Java | 59 lines | 41 code | 10 blank | 8 comment | 6 complexity | 8894a087c21b7757fd7955540cad405b MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package com.atlassian.bamboo.plugin.dotnet.nant;
  2. import com.atlassian.bamboo.v2.build.agent.capability.Capability;
  3. import com.atlassian.bamboo.v2.build.agent.capability.CapabilityDefaultsHelper;
  4. import com.atlassian.bamboo.v2.build.agent.capability.CapabilityImpl;
  5. import com.atlassian.bamboo.v2.build.agent.capability.CapabilitySet;
  6. import com.atlassian.bamboo.v2.build.agent.capability.ExecutablePathUtils;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.apache.commons.lang3.SystemUtils;
  9. import org.apache.log4j.Logger;
  10. import org.jetbrains.annotations.NotNull;
  11. import java.io.File;
  12. public class NantCapabilityDefaultsHelper implements CapabilityDefaultsHelper
  13. {
  14. private static final Logger log = Logger.getLogger(NantCapabilityDefaultsHelper.class);
  15. // ------------------------------------------------------------------------------------------------------- Constants
  16. private static final String EXECUTABLE_NAME = SystemUtils.IS_OS_WINDOWS ? "nant.exe" : "nant";
  17. private static final String NANT_LABEL = "Nant";
  18. // ------------------------------------------------------------------------------------------------- Type Properties
  19. // ---------------------------------------------------------------------------------------------------- Dependencies
  20. // ---------------------------------------------------------------------------------------------------- Constructors
  21. // ----------------------------------------------------------------------------------------------- Interface Methods
  22. @Override
  23. @NotNull
  24. public CapabilitySet addDefaultCapabilities(@NotNull final CapabilitySet capabilitySet)
  25. {
  26. final String executablePath = ExecutablePathUtils.findExecutablePath(EXECUTABLE_NAME);
  27. if (StringUtils.isNotEmpty(executablePath))
  28. {
  29. final File file = new File(executablePath);
  30. if (file.exists() && file.isFile())
  31. {
  32. final File home = ExecutablePathUtils.getHomeFromExecutableInHomeBin(file);
  33. if (home != null && home.isDirectory())
  34. {
  35. Capability capability = new CapabilityImpl(NantTaskType.NANT_CAPABILITY_PREFIX + "." + NANT_LABEL, home.getAbsolutePath());
  36. capabilitySet.addCapability(capability);
  37. }
  38. else
  39. {
  40. log.error("Found NAnt executable at '" + executablePath + "' but could not get the home directory from the path");
  41. }
  42. }
  43. }
  44. return capabilitySet;
  45. }
  46. // -------------------------------------------------------------------------------------------------- Action Methods
  47. // -------------------------------------------------------------------------------------------------- Public Methods
  48. // -------------------------------------------------------------------------------------- Basic Accessors / Mutators
  49. }