Class PlanConfigImportServiceImpl

java.lang.Object
com.atlassian.bamboo.configuration.external.PlanConfigImportServiceImpl
All Implemented Interfaces:
PlanConfigImportService

public class PlanConfigImportServiceImpl extends Object implements PlanConfigImportService
  • Constructor Details

    • PlanConfigImportServiceImpl

      public PlanConfigImportServiceImpl()
  • Method Details

    • convertYamlToPlan

      @NotNull public @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties convertYamlToPlan(@NotNull @NotNull String yaml) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException, YamlValidationException
      Description copied from interface: PlanConfigImportService
      Converts data from a YAML document to top level plan properties.
      Specified by:
      convertYamlToPlan in interface PlanConfigImportService
      Parameters:
      yaml - YAML String containing definition of top level plan
      Returns:
      top level plan properties
      Throws:
      YamlValidationException - if the format of the YAML file is invalid
      com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
    • validatePlanProperties

      public void validatePlanProperties(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @NotNull @NotNull RssPermissions rssPermissions) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException, RssPermissionException
      Description copied from interface: PlanConfigImportService
      This method performs validation of YAML types and of the properties without Bamboo context (e.g. no database integrity is verified).
      Specified by:
      validatePlanProperties in interface PlanConfigImportService
      Parameters:
      planProperties - top level plan properties
      rssPermissions - projects which can allowed for modification
      Throws:
      com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException - if the imported properties were not valid
      RssPermissionException - if RSS is missing access to projects/repositories
    • validatePlanBranchProperties

      public void validatePlanBranchProperties(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @NotNull @NotNull RssPermissions rssPermissions, @NotNull @NotNull VcsBranch vcsBranch) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException, RssPermissionException
      Description copied from interface: PlanConfigImportService
      This method performs validation of YAML types and of the properties without Bamboo context (e.g. no database integrity is verified).
      Specified by:
      validatePlanBranchProperties in interface PlanConfigImportService
      Parameters:
      planProperties - plan branch properties
      rssPermissions - projects which can allowed for modification
      vcsBranch - imported vcs branch
      Throws:
      com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException - if the imported properties were not valid
      RssPermissionException - if RSS is missing access to projects/repositories
    • importPlan

      @NotNull public @NotNull PlanConfigImportService.ImportResult importPlan(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @Nullable @Nullable com.atlassian.user.User userForCreation, @NotNull @NotNull RssPermissions rssPermissions)
      Description copied from interface: PlanConfigImportService
      Validates exported top level plan properties within Bamboo context (e.g. verifying database integrity), then imports the data into the database.
      Specified by:
      importPlan in interface PlanConfigImportService
      Parameters:
      planProperties - top level plan properties to import
      userForCreation - user invoking the import
      rssPermissions - projects which can allowed for modification; since 6.2
      Returns:
      saved top level plan entity and flag indicating if the plan is new
    • importPlan

      @NotNull public @NotNull PlanConfigImportService.ImportResult importPlan(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @Nullable @Nullable com.atlassian.user.User userForCreation, @NotNull @NotNull RssPermissions rssPermissions, boolean deferEvents, boolean noChangesInProperties) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException, RssPermissionException
      Description copied from interface: PlanConfigImportService
      Validates exported top level plan properties within Bamboo context (e.g. verifying database integrity), then imports the data into the database.
      Specified by:
      importPlan in interface PlanConfigImportService
      Parameters:
      planProperties - top level plan properties to import
      userForCreation - user invoking the import
      rssPermissions - projects which can allowed for modification; since 6.2
      deferEvents - when set to true, the import routine will not send creation events nor initialise plan triggers
      Returns:
      saved top level plan entity and flag indicating if the plan is new
      Throws:
      com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException - if data validation fails
      RssPermissionException - if rss doesn't have access to dependant project
    • importPlanBranch

      @NotNull public @NotNull PlanConfigImportService.ImportResult importPlanBranch(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @NotNull @NotNull VcsBranch vcsBranch, @Nullable @Nullable com.atlassian.user.User user, @NotNull @NotNull RssPermissions rssPermissions)
      Description copied from interface: PlanConfigImportService
      Import plan branch using specs.
      Specified by:
      importPlanBranch in interface PlanConfigImportService
    • updatePlanBranch

      @NotNull public @NotNull PlanConfigImportService.ImportResult updatePlanBranch(@NotNull @NotNull com.atlassian.bamboo.specs.api.model.plan.PlanProperties planProperties, @NotNull @NotNull VcsBranch vcsBranch, @Nullable @Nullable com.atlassian.user.User user, @NotNull @NotNull RssPermissions rssPermissions, @NotNull @NotNull DivergentBranchDataBean branchCreationData, boolean deferEvents, boolean noChangesInProperties)
      Description copied from interface: PlanConfigImportService
      Update plan branch using specs. It is expected that plan branch already exists. (fails if it doesn't)
      Specified by:
      updatePlanBranch in interface PlanConfigImportService
    • sendEventsAndScheduleTriggersIfRequired

      public void sendEventsAndScheduleTriggersIfRequired(@NotNull @NotNull PlanConfigImportService.ImportResult importResult)
      Description copied from interface: PlanConfigImportService
      Sends events related to plan creation or update and initialises triggers.
      Specified by:
      sendEventsAndScheduleTriggersIfRequired in interface PlanConfigImportService
    • sendEventsAndScheduleTriggersForBranchIfRequired

      public void sendEventsAndScheduleTriggersForBranchIfRequired(@NotNull @NotNull PlanConfigImportService.ImportResult importResult, @Nullable @Nullable com.atlassian.user.User user)
      Description copied from interface: PlanConfigImportService
      Sends events related to branch creation or update and initialises triggers.
      Specified by:
      sendEventsAndScheduleTriggersForBranchIfRequired in interface PlanConfigImportService
    • switchToLightweightBranch

      @NotNull public @NotNull PlanConfigImportService.ImportResult switchToLightweightBranch(@NotNull @NotNull PlanKey planBranchKey)
      Description copied from interface: PlanConfigImportService
      Convert a divergent branch to a lightweight branch.
      Specified by:
      switchToLightweightBranch in interface PlanConfigImportService