Class DelayedCommitPerSettingsRootStrategy
- java.lang.Object
-
- jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy
-
- All Implemented Interfaces:
SettingsCommitStrategy
,VersionedSettingsPendingTransactions
public class DelayedCommitPerSettingsRootStrategy extends Object implements SettingsCommitStrategy, VersionedSettingsPendingTransactions
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
DelayedCommitPerSettingsRootStrategy.Commit
-
Nested classes/interfaces inherited from interface jetbrains.buildServer.serverSide.impl.versionedSettings.SettingsCommitStrategy
SettingsCommitStrategy.Action, SettingsCommitStrategy.CommitCallback
-
-
Constructor Summary
Constructors Constructor Description DelayedCommitPerSettingsRootStrategy(EventDispatcher<BuildServerListener> events, ExecutorServices executors, ProjectManager projectManager, VersionedSettingsManager versionedSettingsManager, CurrentVersionTracker currentVersionTracker, VersionedSettingsStatusTracker statusTracker, DirectoryBasedTransactionCommitter transactionCommitter, VersionedSettingsCommitErrorHealthReport healthReport, TeamCityCommits teamCityCommits, VersionedSettingsPendingDeletes pendingDeletes, RepositoryStateManager repositoryStateManager, AuditLogFactory auditLogFactory, CommitMessageProducerFactory commitMessageProducerFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
completePendingTransactions(Collection<BuildPromotion> promotions)
Takes pending transactions for every settings VCS root used in the given chain and wait for them to complete, but no longer than a timeout defined inVersionedSettingsOptions.getCompletePendingTransactionsTimeoutSeconds()
protected DirectoryBasedTransaction
createTransaction(ConfigAction cause)
boolean
hasPendingTransactions(VcsRootInstance root)
Allows to check if there pending transactions in the given settings rootprotected jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.CurrentTransaction
removeCurrentTransaction(VcsRootInstance root)
protected boolean
removeCurrentTransaction(VcsRootInstance root, jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.CurrentTransaction expectedValue)
void
run(SProject project, ConfigAction cause, SettingsCommitStrategy.Action action, VcsRootInstance settingsRoot)
protected void
saveCurrentTransaction(VcsRootInstance settingsRoot, DirectoryBasedTransaction t, SettingsCommitStrategy.CommitCallback commitCallback)
-
-
-
Constructor Detail
-
DelayedCommitPerSettingsRootStrategy
public DelayedCommitPerSettingsRootStrategy(@NotNull EventDispatcher<BuildServerListener> events, @NotNull ExecutorServices executors, @NotNull ProjectManager projectManager, @NotNull VersionedSettingsManager versionedSettingsManager, @NotNull CurrentVersionTracker currentVersionTracker, @NotNull VersionedSettingsStatusTracker statusTracker, @NotNull DirectoryBasedTransactionCommitter transactionCommitter, @NotNull VersionedSettingsCommitErrorHealthReport healthReport, @NotNull TeamCityCommits teamCityCommits, @NotNull VersionedSettingsPendingDeletes pendingDeletes, @NotNull RepositoryStateManager repositoryStateManager, @NotNull AuditLogFactory auditLogFactory, @NotNull CommitMessageProducerFactory commitMessageProducerFactory)
-
-
Method Detail
-
run
public void run(@NotNull SProject project, @NotNull ConfigAction cause, @NotNull SettingsCommitStrategy.Action action, @NotNull VcsRootInstance settingsRoot)
- Specified by:
run
in interfaceSettingsCommitStrategy
-
createTransaction
@NotNull protected DirectoryBasedTransaction createTransaction(@NotNull ConfigAction cause) throws jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.TransactionCreationException
- Throws:
jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.TransactionCreationException
-
removeCurrentTransaction
@Nullable protected jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.CurrentTransaction removeCurrentTransaction(@NotNull VcsRootInstance root)
-
removeCurrentTransaction
protected boolean removeCurrentTransaction(@NotNull VcsRootInstance root, @NotNull jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.CurrentTransaction expectedValue)
-
saveCurrentTransaction
protected void saveCurrentTransaction(@NotNull VcsRootInstance settingsRoot, @NotNull DirectoryBasedTransaction t, @Nullable SettingsCommitStrategy.CommitCallback commitCallback)
-
hasPendingTransactions
public boolean hasPendingTransactions(@NotNull VcsRootInstance root)
Description copied from interface:VersionedSettingsPendingTransactions
Allows to check if there pending transactions in the given settings root- Specified by:
hasPendingTransactions
in interfaceVersionedSettingsPendingTransactions
- Parameters:
root
- vsettings root of interest- Returns:
- true if there are uncommitted transactions
-
completePendingTransactions
public void completePendingTransactions(@NotNull Collection<BuildPromotion> promotions)
Description copied from interface:VersionedSettingsPendingTransactions
Takes pending transactions for every settings VCS root used in the given chain and wait for them to complete, but no longer than a timeout defined inVersionedSettingsOptions.getCompletePendingTransactionsTimeoutSeconds()
- Specified by:
completePendingTransactions
in interfaceVersionedSettingsPendingTransactions
- Parameters:
promotions
- build chain for which to complete pending transactions
-
-