Class RssDetectionServiceImpl
- java.lang.Object
-
- com.atlassian.bamboo.configuration.external.RssDetectionServiceImpl
-
- All Implemented Interfaces:
RssDetectionService
public class RssDetectionServiceImpl extends Object implements RssDetectionService
-
-
Constructor Summary
Constructors Constructor Description RssDetectionServiceImpl(@NotNull AdministrationConfigurationAccessor administrationConfigurationAccessor, @NotNull AuthorCreatorService authorCreatorService, @NotNull BambooSpecsManager bambooSpecsManager, @NotNull CachedRepositoryDefinitionManager cachedRepositoryDefinitionManager, @NotNull CustomVariableContext customVariableContext, @NotNull ExtendedAuthorManager extendedAuthorManager, @NotNull FeatureManager featureManager, @NotNull I18nBeanFactory i18nBeanFactory, @NotNull RepositoryStoredSpecsService repositoryStoredSpecsService, @NotNull SpecsConsumerFactory specsConsumerFactory, @NotNull VcsRepositoryManager vcsRepositoryManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull ErrorCollection
canEnqueue(long repositoryId)
Checks whether Bamboo can enqueue RSS detection for the given repository.@NotNull ErrorCollection
canEnqueue(@NotNull VcsRepositoryData vcsRepositoryData)
Checks whether Bamboo can enqueue RSS detection for the given repository.void
cleanUnfinishedSpecsAndInitService()
Init the service and clean up any stale scan states after Bamboo restart.@NotNull Future<Boolean>
enqueue(long repositoryId, @NotNull VcsBranch vcsBranch)
Enqueue RSS detection for repository with the given ID and branch.@NotNull Future<Boolean>
enqueue(long repositoryId, @NotNull VcsBranch vcsBranch, boolean force)
Enqueue RSS detection for repository with the given ID and branch.@NotNull Future<Boolean>
enqueue(long repositoryId, @NotNull VcsBranch vcsBranch, boolean force, @NotNull SpecsConsumer specsConsumer)
Enqueue RSS detection for repository with the given ID and given branch.@NotNull List<String>
getEnqueuedBranchesForRepository(long repositoryId)
Returns list of branches that are currently enqueued (i.e.boolean
isInProgress(long repositoryId, @NotNull VcsBranch vcsBranch)
void
postConstruct()
void
reportFailedSpecsScan(long repositoryId, @NotNull VcsBranch vcsBranch, @NotNull String errorMessage, boolean specsNotFound)
boolean
runRssDetection(long repositoryId, @NotNull VcsBranch vcsBranch, boolean forced, @NotNull SpecsConsumer specsConsumer)
Runs Repository-stored Specs detection for the given repository.@NotNull Future<Boolean>
shutdown()
Shut down the RSS detection service and the underlying thread pool.
-
-
-
Constructor Detail
-
RssDetectionServiceImpl
@Inject public RssDetectionServiceImpl(@NotNull @NotNull AdministrationConfigurationAccessor administrationConfigurationAccessor, @NotNull @NotNull AuthorCreatorService authorCreatorService, @NotNull @NotNull BambooSpecsManager bambooSpecsManager, @NotNull @NotNull CachedRepositoryDefinitionManager cachedRepositoryDefinitionManager, @NotNull @NotNull CustomVariableContext customVariableContext, @NotNull @NotNull ExtendedAuthorManager extendedAuthorManager, @NotNull @NotNull FeatureManager featureManager, @NotNull @NotNull I18nBeanFactory i18nBeanFactory, @NotNull @NotNull RepositoryStoredSpecsService repositoryStoredSpecsService, @NotNull @NotNull SpecsConsumerFactory specsConsumerFactory, @NotNull @NotNull VcsRepositoryManager vcsRepositoryManager)
-
-
Method Detail
-
postConstruct
@PostConstruct public void postConstruct()
-
enqueue
@NotNull public @NotNull Future<Boolean> enqueue(long repositoryId, @NotNull @NotNull VcsBranch vcsBranch)
Description copied from interface:RssDetectionService
Enqueue RSS detection for repository with the given ID and branch. Only IDs of linked repositories with Specs scanning enabled may trigger Specs execution. UsesDefaultSpecsConsumer
to import Specs execution results.- Specified by:
enqueue
in interfaceRssDetectionService
- Parameters:
repositoryId
- ID of the linked repositoryvcsBranch
- branch of the repository- Returns:
- future result of the RSS detection, yielding true if Bamboo Specs have been run
-
enqueue
@NotNull public @NotNull Future<Boolean> enqueue(long repositoryId, @NotNull @NotNull VcsBranch vcsBranch, boolean force)
Description copied from interface:RssDetectionService
Enqueue RSS detection for repository with the given ID and branch. Only IDs of linked repositories with Specs scanning enabled may trigger Specs execution. UsesDefaultSpecsConsumer
to import Specs execution results.- Specified by:
enqueue
in interfaceRssDetectionService
- Parameters:
repositoryId
- ID of the linked repositoryvcsBranch
- branch of the repositoryforce
- if true, specs import is executed even if no new commits are found in the repository- Returns:
- future result of the RSS detection, yielding true if Bamboo Specs have been run
-
enqueue
@NotNull public @NotNull Future<Boolean> enqueue(long repositoryId, @NotNull @NotNull VcsBranch vcsBranch, boolean force, @NotNull @NotNull SpecsConsumer specsConsumer)
Description copied from interface:RssDetectionService
Enqueue RSS detection for repository with the given ID and given branch. Only IDs of linked repositories with Specs scanning enabled may trigger Specs execution. Uses providedspecsConsumer
to import Specs execution results.- Specified by:
enqueue
in interfaceRssDetectionService
- Parameters:
repositoryId
- ID of the linked repositoryvcsBranch
- optional VCS branch to checkoutforce
- if true, specs import is executed even if no new commits are found in the repositoryspecsConsumer
- strategy used to import Specs execution results (plans, deployments, etc)- Returns:
- future result of the RSS detection, yielding true if Bamboo Specs have been run
-
isInProgress
public boolean isInProgress(long repositoryId, @NotNull @NotNull VcsBranch vcsBranch)
- Specified by:
isInProgress
in interfaceRssDetectionService
- Returns:
- true if specs scanning for given repository and branch is currently queued or in progress.
-
cleanUnfinishedSpecsAndInitService
public void cleanUnfinishedSpecsAndInitService()
Description copied from interface:RssDetectionService
Init the service and clean up any stale scan states after Bamboo restart.- Specified by:
cleanUnfinishedSpecsAndInitService
in interfaceRssDetectionService
-
getEnqueuedBranchesForRepository
@NotNull public @NotNull List<String> getEnqueuedBranchesForRepository(long repositoryId)
Description copied from interface:RssDetectionService
Returns list of branches that are currently enqueued (i.e. are in queue or already in progress) for RSS execution.- Specified by:
getEnqueuedBranchesForRepository
in interfaceRssDetectionService
- Parameters:
repositoryId
- ID of the linked repository- Returns:
- list of enqueued branches names
-
shutdown
@NotNull public @NotNull Future<Boolean> shutdown()
Description copied from interface:RssDetectionService
Shut down the RSS detection service and the underlying thread pool.- Specified by:
shutdown
in interfaceRssDetectionService
- Returns:
- future result of the shutdown, yielding true after the shutdown is finished
-
canEnqueue
@NotNull public @NotNull ErrorCollection canEnqueue(long repositoryId)
Description copied from interface:RssDetectionService
Checks whether Bamboo can enqueue RSS detection for the given repository. If Specs can't be executed, returns an error collection containing all the reasons why. If they can, returns an empty error collection.This method will not attempt to connect to the repository. It will only validate repository's configuration and global Bamboo settings.
- Specified by:
canEnqueue
in interfaceRssDetectionService
- Parameters:
repositoryId
- ID of the repository- Returns:
- collection containing reasons why triggering Specs can't be performed, empty if Specs can be enqueued
-
canEnqueue
@NotNull public @NotNull ErrorCollection canEnqueue(@NotNull @NotNull VcsRepositoryData vcsRepositoryData)
Description copied from interface:RssDetectionService
Checks whether Bamboo can enqueue RSS detection for the given repository. If Specs can't be executed, returns an error collection containing all the reasons why. If they can, returns an empty error collection.This method will not attempt to connect to the repository. It will only validate repository's configuration and global Bamboo settings.
- Specified by:
canEnqueue
in interfaceRssDetectionService
- Parameters:
vcsRepositoryData
- repository to check- Returns:
- collection containing reasons why triggering Specs can't be performed, empty if Specs can be enqueued
-
runRssDetection
public boolean runRssDetection(long repositoryId, @NotNull @NotNull VcsBranch vcsBranch, boolean forced, @NotNull @NotNull SpecsConsumer specsConsumer) throws IOException, RepositoryException
Runs Repository-stored Specs detection for the given repository. Returns true if Bamboo Specs have been executed.- Throws:
IOException
RepositoryException
-
-