Class SvnRepository
-
- All Implemented Interfaces:
ConvertibleFromConfig
,InitablePluginModule
,AdvancedConfigurationAwareRepository
,BranchAwareRepository
,BranchDetectionCapableRepository
,BranchInformationProvider
,BranchingAwareRepository
,CachingAwareRepository
,CommitIsolationAwareRepository
,CustomRevisionDataAwareRepository
,CustomVariableProviderRepository
,DeploymentAwareRepository
,FilterChangesetAwareRepository
,IncludeExcludeAwareRepository
,InitialBuildAwareRepository
,MandatoryCleanCheckoutAwareRepository
,MavenPomAccessorCapableRepository
,OnceOffCapableRepository
,QuietPeriodAwareRepository
,Repository
,SelectableAuthenticationRepository
,StandaloneRepository
,TaggingAwareRepository
,TestConnectionAwareRepository
,DescriptionProvider
,NameProvider
,BambooPluginModule
,BuildConfigurationAwarePlugin
,ConfigurablePlugin
,RenderableBuildConfiguration
,CustomSourceDirectoryAwareRepository
,RepositoryEventAware
,RepositoryV2
,Serializable
public class SvnRepository extends AbstractStandaloneRepository implements SelectableAuthenticationRepository, InitialBuildAwareRepository, RepositoryEventAware, MavenPomAccessorCapableRepository, CommitIsolationAwareRepository, BranchingAwareRepository, TaggingAwareRepository, CustomSourceDirectoryAwareRepository, MandatoryCleanCheckoutAwareRepository, AdvancedConfigurationAwareRepository, CustomRevisionDataAwareRepository, CustomVariableProviderRepository, BranchInformationProvider, CachingAwareRepository, DeploymentAwareRepository, TestConnectionAwareRepository
This class provides a Subversion repository for Bamboo.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.atlassian.bamboo.repository.CachingAwareRepository
CachingAwareRepository.CachableOperation
-
-
Field Summary
Fields Modifier and Type Field Description static String
BRANCH_AUTODETECT_ROOT
static String
BRANCH_MANUAL_ROOT
static String
BRANCHES_DETECTION_BRANCHES_ROOT
static String
BRANCHES_DETECTION_BRANCHES_ROOT_OVERRIDDEN
static String
COMPLETE_PLUGIN_KEY
static org.tmatesoft.svn.core.wc.ISVNOptions
DEFAULT_SVN_OPTIONS
static String
KEY
static String
NAME
static String
SVN_AUTH_TYPE
static String
SVN_KEYFILE
static String
SVN_PASSPHRASE
static String
SVN_PASSWORD
static String
SVN_REPO_PREFIX
static String
SVN_REPO_URL
static String
SVN_SSL_KEYFILE
static String
SVN_SSL_PASSPHRASE
static String
SVN_USERNAME
static String
TAG_AUTODETECT_ROOT
static String
TAG_MANUAL_ROOT
static String
TEMPORARY_SVN_PASSWORD
static String
TEMPORARY_SVN_REPO_PREFIX
protected TrustedKeyHelper
trustedKeyHelper
static String
USE_EXPORT
static String
USE_EXTERNALS
-
Fields inherited from class com.atlassian.bamboo.repository.AbstractRepository
BUILD_TRIGGER_IP, buildDirectoryManager, buildLoggerManager, customVariableContext, featureManager, REPO_PREFIX, repositoryModuleDescriptor, templateRenderer, textProvider
-
Fields inherited from class com.atlassian.bamboo.v2.build.BaseBuildConfigurationAwarePlugin
moduleDescriptor
-
Fields inherited from interface com.atlassian.bamboo.repository.CommitIsolationAwareRepository
COMMIT_ISOLATION_OPTION
-
Fields inherited from interface com.atlassian.bamboo.repository.FilterChangesetAwareRepository
CHANGESET_FILTER_PATTERN_REGEX, MAVEN_RELEASE_PLUGIN_EXCLUSION_PATTERN
-
Fields inherited from interface com.atlassian.bamboo.repository.IncludeExcludeAwareRepository
FILTER_PATTERN_EXCLUDE, FILTER_PATTERN_INCLUDE, FILTER_PATTERN_NONE, FILTER_PATTERN_OPTION, FILTER_PATTERN_REGEX
-
Fields inherited from interface com.atlassian.bamboo.repository.Repository
SELECTED_REPOSITORY, UNKNOWN_HOST
-
Fields inherited from interface com.atlassian.bamboo.repository.TestConnectionAwareRepository
HOST_KEY
-
-
Constructor Summary
Constructors Constructor Description SvnRepository()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDefaultValues(@NotNull BuildConfiguration buildConfiguration)
Extension point for adding default values to the form forRenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan)
long
checkout(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision, File dstPath, boolean isRecursive)
Checks out a working copy from a repository.@NotNull BuildRepositoryChanges
collectChangesForRevision(@NotNull PlanKey planKey, @NotNull String targetRevision)
Collects the changes for the targetRevision.@NotNull BuildRepositoryChanges
collectChangesSinceLastBuild(@NotNull String planKey, @NotNull PlanVcsRevisionData revisionData)
@NotNull BuildRepositoryChanges
collectChangesSinceLastBuild(@NotNull String planKey, @Nullable String lastVcsRevisionKey)
Collects the changes since the lastVcsRevisionKey.int
compareTo(Object obj)
void
createBranch(long repositoryId, @NotNull String branchName, @NotNull BuildContext buildContext)
Creates branch in the repository.void
createTag(long repositoryId, @NotNull String tagName, @NotNull BuildContext buildContext)
Creates a tag in the repositoryboolean
equals(Object o)
long
export(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision, File dstPath, boolean isRecursive)
@NotNull List<NameValuePair>
getAuthenticationTypes()
List all authentication types supported by repository.String
getAuthType()
org.tmatesoft.svn.core.SVNURL
getBranchRootUrl()
CacheId
getCacheId(@NotNull CachingAwareRepository.CachableOperation cachableOperation)
Cache id has to fulfill the following: Given two Repository objects A and B, returning equal CacheId (in terms of equals()) and a cachable operation foo(), in the following sequence of calls made in a short time period: 1.static String
getConfigConstant(String s)
@NotNull Map<String,String>
getCustomVariables()
Return a map containing name->value mapping of the variables.String
getEncryptedPassphrase()
String
getEncryptedPassword()
CommitContext
getFirstCommit()
Retrieve the commit that created the Branch.String
getHost()
What's the repository server hostString
getHost(BuildContext buildContext)
String
getKeyFile()
CommitContext
getLastCommit()
Retrieve last commit on the branch set on this Repository.@NotNull String
getLocationIdentifier()
A string representing the location of the repositoryString
getManualBranchRootUrl()
String
getManualTagRootUrl()
@NotNull SvnRepositoryMavenPomAccessor
getMavenPomAccessor()
@NotNull String
getName()
What's the name of the plugin - appears in the GUI dropdown@NotNull List<VcsBranch>
getOpenBranches(@Nullable String context)
Set
of open branches that are discovered in the repository.String
getPassphrase()
@NotNull Map<String,String>
getPlanRepositoryVariables()
Return a map containing name->value mapping of the plan repository format variables.protected static String
getRepoPrefix()
String
getRepositoryUrl()
Which repository URL are we using?String
getSubstitutedKeyFile()
String
getSubstitutedRepositoryUrl()
Return repository URL with extrapolated Bamboo variablesprotected org.tmatesoft.svn.core.SVNURL
getSubstitutedSvnUrl()
protected org.tmatesoft.svn.core.wc.SVNClientManager
getSvnClientManager()
SVNClientManager factory.protected String
getTemporaryConstant(String s)
protected String
getTemporaryPrefix()
String
getUrl()
Where is the documentation and help about using Subversion?String
getUsername()
What username are we using to access the repository?String
getUserPassword()
What password are we using to access the repository@NotNull VcsBranch
getVcsBranch()
int
hashCode()
@NotNull org.tmatesoft.svn.core.wc.SVNInfo
info(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision)
Runs 'svn info' operation on a given URL.boolean
isAdvancedOptionEnabled(@NotNull BuildConfiguration buildConfiguration)
boolean
isAutodetectBranchRootUrl()
boolean
isAutodetectTagRootUrl()
boolean
isCachingSupportedFor(@NotNull CachingAwareRepository.CachableOperation cachableOperation)
boolean
isCleanCheckoutRequired()
boolean
isCommitIsolationEnabled()
Whether or not commits will be broken up into individual builds@NotNull List<BuildRepositoryChanges>
isolateCommits(@NotNull BuildRepositoryChanges buildChanges)
Break the single build changes object into a list ofBuildRepositoryChanges
.protected boolean
isRecoverableException(@NotNull org.tmatesoft.svn.core.SVNException e)
Check if provided exception object identifies recoverable exception.boolean
isRepositoryDifferent(@NotNull Repository repository)
Checks if the current repo is the same as the given repositoryboolean
isUseExport()
boolean
isUseExternals()
void
onInitialBuild(BuildContext buildContext)
Allows theRepository
to perform custom actions when an initial build is triggered.void
populateFromConfig(@NotNull org.apache.commons.configuration.HierarchicalConfiguration config)
Update the current object with data in theHierarchicalConfiguration
void
postRetrieveSourceCode(@NotNull BuildContext buildContext, @NotNull File sourceDirectory)
postRetrieveSourceCode will run after the retrieveSourceCode method is called.void
prepareConfigObject(@NotNull BuildConfiguration buildConfiguration)
Do any preprocessing work before validation occurs.void
preRetrieveSourceCode(@NotNull BuildContext buildContext, @NotNull File sourceDirectory)
Checks if the SVN URL has changed@NotNull String
retrieveSourceCode(@NotNull BuildContext buildContext, @Nullable String vcsRevisionKey, @NotNull File sourceDirectory)
Checks out the latest source code from an appropriate repository to specified directoryvoid
setAdministrationConfigurationAccessor(AdministrationConfigurationAccessor administrationConfigurationAccessor)
void
setAuthType(String authType)
void
setAutodetectBranchRoot(boolean autodetectBranchRoot)
void
setCommitIsolationEnabled(boolean commitIsolationEnabled)
void
setEncryptedPassphrase(String encryptedPassphrase)
void
setEncryptedPassword(String encryptedPassword)
void
setKeyFile(String myKeyFile)
void
setManualBranchRootUrl(String branchRoot)
void
setPassphrase(String passphrase)
void
setRepositoryUrl(String repositoryUrl)
Specify the subversion repository we are usingvoid
setSvnClientManagerFactory(SVNClientManagerFactory svnClientManagerFactory)
void
setTrustedKeyHelper(TrustedKeyHelper trustedKeyHelper)
void
setUseExport(boolean useExport)
void
setUseExternals(boolean useExternals)
void
setUsername(String username)
What's the username (if any) we are using to acces the repository?void
setUserPassword(String password)
Specify the password required to access the resposotoryvoid
setVcsBranch(@NotNull VcsBranch branch)
Set and prepare the repository for using an arbitrary branch.void
setVcsBranch(@NotNull VcsBranch branch, @NotNull org.apache.commons.configuration.HierarchicalConfiguration customConfiguration)
@NotNull ErrorCollection
testConnection(long timeout, @NotNull TimeUnit unit)
Test connection to the repository within the given timeout.@NotNull org.apache.commons.configuration.HierarchicalConfiguration
toConfiguration()
Store SvnRepository data into configuration object.boolean
usePollingForBranchDetection()
If Bamboo generic detection polling should be used for this repository@NotNull ErrorCollection
validate(@NotNull BuildConfiguration buildConfiguration)
Validates the properties in theBuildConfiguration
object.-
Methods inherited from class com.atlassian.bamboo.repository.AbstractStandaloneRepository
getAdvancedEditHtml, getAdvancedViewHtml, getEditHtml, getViewHtml, getViewHtml
-
Methods inherited from class com.atlassian.bamboo.repository.AbstractRepository
checkConnection, customizeBuildRequirements, getAdvancedEditHtml, getAdvancedViewHtml, getBranchIntegrationEditHtml, getChangesetFilterPatternRegex, getDefaultTriggerModule, getDescription, getEditHtml, getFilterFilePatternOption, getFilterFilePatternRegex, getKey, getMavenPomCheckoutAccessEditHtml, getMaxCommitsToReturn, getMaxRetries, getMinimalEditHtml, getPollingTriggerModule, getQuietPeriod, getShortKey, getSourceCodeDirectory, getSystemWideExclusionPatterns, getViewHtml, getWorkingDirectory, init, isQuietPeriodEnabled, isWorkspaceEmpty, removeBuildRequirements, setBuildDirectoryManager, setBuildLoggerManager, setChangesetFilterPatternRegex, setCustomVariableContext, setFeatureManager, setFilterFilePatternOption, setFilterFilePatternRegex, setTemplateRenderer, setTextProvider, setWorkingDir, substituteString, toMergeCapableRepository
-
Methods inherited from class com.atlassian.bamboo.v2.build.BaseBuildConfigurationAwarePlugin
getTemplateRenderer, populateContextForEdit, populateContextForView
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.bamboo.repository.AdvancedConfigurationAwareRepository
getAdvancedEditHtml, getAdvancedViewHtml
-
Methods inherited from interface com.atlassian.bamboo.v2.build.BuildConfigurationAwarePlugin
isConfigurationMissing
-
Methods inherited from interface com.atlassian.bamboo.v2.build.ConfigurablePlugin
customizeBuildRequirements, removeBuildRequirements
-
Methods inherited from interface com.atlassian.bamboo.utils.DescriptionProvider
getDescription
-
Methods inherited from interface com.atlassian.bamboo.plugin.InitablePluginModule
init
-
Methods inherited from interface com.atlassian.bamboo.v2.build.RenderableBuildConfiguration
getEditHtml, getViewHtml
-
Methods inherited from interface com.atlassian.bamboo.repository.Repository
checkConnection, getKey, getMinimalEditHtml, getShortKey
-
Methods inherited from interface com.atlassian.bamboo.v2.build.repository.RepositoryV2
getSourceCodeDirectory
-
Methods inherited from interface com.atlassian.bamboo.repository.TestConnectionAwareRepository
validateForConnectionTesting
-
-
-
-
Field Detail
-
NAME
public static final String NAME
- See Also:
- Constant Field Values
-
KEY
public static final String KEY
- See Also:
- Constant Field Values
-
COMPLETE_PLUGIN_KEY
public static final String COMPLETE_PLUGIN_KEY
- See Also:
- Constant Field Values
-
SVN_REPO_PREFIX
public static final String SVN_REPO_PREFIX
- See Also:
- Constant Field Values
-
SVN_REPO_URL
public static final String SVN_REPO_URL
- See Also:
- Constant Field Values
-
SVN_USERNAME
public static final String SVN_USERNAME
- See Also:
- Constant Field Values
-
SVN_AUTH_TYPE
public static final String SVN_AUTH_TYPE
- See Also:
- Constant Field Values
-
SVN_PASSWORD
public static final String SVN_PASSWORD
- See Also:
- Constant Field Values
-
SVN_KEYFILE
public static final String SVN_KEYFILE
- See Also:
- Constant Field Values
-
SVN_PASSPHRASE
public static final String SVN_PASSPHRASE
- See Also:
- Constant Field Values
-
SVN_SSL_KEYFILE
public static final String SVN_SSL_KEYFILE
- See Also:
- Constant Field Values
-
SVN_SSL_PASSPHRASE
public static final String SVN_SSL_PASSPHRASE
- See Also:
- Constant Field Values
-
USE_EXTERNALS
public static final String USE_EXTERNALS
- See Also:
- Constant Field Values
-
USE_EXPORT
public static final String USE_EXPORT
- See Also:
- Constant Field Values
-
TEMPORARY_SVN_REPO_PREFIX
public static final String TEMPORARY_SVN_REPO_PREFIX
- See Also:
- Constant Field Values
-
TEMPORARY_SVN_PASSWORD
public static final String TEMPORARY_SVN_PASSWORD
- See Also:
- Constant Field Values
-
BRANCH_AUTODETECT_ROOT
public static final String BRANCH_AUTODETECT_ROOT
- See Also:
- Constant Field Values
-
BRANCH_MANUAL_ROOT
public static final String BRANCH_MANUAL_ROOT
- See Also:
- Constant Field Values
-
TAG_AUTODETECT_ROOT
public static final String TAG_AUTODETECT_ROOT
- See Also:
- Constant Field Values
-
TAG_MANUAL_ROOT
public static final String TAG_MANUAL_ROOT
- See Also:
- Constant Field Values
-
BRANCHES_DETECTION_BRANCHES_ROOT
public static final String BRANCHES_DETECTION_BRANCHES_ROOT
- See Also:
- Constant Field Values
-
BRANCHES_DETECTION_BRANCHES_ROOT_OVERRIDDEN
public static final String BRANCHES_DETECTION_BRANCHES_ROOT_OVERRIDDEN
- See Also:
- Constant Field Values
-
DEFAULT_SVN_OPTIONS
public static final org.tmatesoft.svn.core.wc.ISVNOptions DEFAULT_SVN_OPTIONS
-
trustedKeyHelper
protected TrustedKeyHelper trustedKeyHelper
-
-
Method Detail
-
collectChangesSinceLastBuild
@NotNull public @NotNull BuildRepositoryChanges collectChangesSinceLastBuild(@NotNull @NotNull String planKey, @NotNull @NotNull PlanVcsRevisionData revisionData) throws RepositoryException
- Specified by:
collectChangesSinceLastBuild
in interfaceCustomRevisionDataAwareRepository
- Throws:
RepositoryException
-
collectChangesForRevision
@NotNull public @NotNull BuildRepositoryChanges collectChangesForRevision(@NotNull @NotNull PlanKey planKey, @NotNull @NotNull String targetRevision) throws RepositoryException
Description copied from interface:OnceOffCapableRepository
Collects the changes for the targetRevision. This method is called only on server side (never on agent).- Specified by:
collectChangesForRevision
in interfaceOnceOffCapableRepository
- Overrides:
collectChangesForRevision
in classAbstractRepository
- Returns:
- A build changes object with the appropriate build changes (that is - with the single commit data relevant for targetRevision)
- Throws:
RepositoryException
- if something goes wrong
-
collectChangesSinceLastBuild
@NotNull public @NotNull BuildRepositoryChanges collectChangesSinceLastBuild(@NotNull @NotNull String planKey, @Nullable @Nullable String lastVcsRevisionKey) throws RepositoryException
Description copied from interface:RepositoryV2
Collects the changes since the lastVcsRevisionKey. This method is called only on server side (never on agent).- Specified by:
collectChangesSinceLastBuild
in interfaceRepositoryV2
lastVcsRevisionKey
- can be null, if null you should ensure the correct vcsrevisionkey is returned in the BuildChanges object.- Returns:
- A build changes object with the appropriate build changes
- Throws:
RepositoryException
- if something goes wrong
-
usePollingForBranchDetection
public boolean usePollingForBranchDetection()
Description copied from interface:BranchInformationProvider
If Bamboo generic detection polling should be used for this repository- Specified by:
usePollingForBranchDetection
in interfaceBranchInformationProvider
- Returns:
-
retrieveSourceCode
@NotNull public @NotNull String retrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @Nullable @Nullable String vcsRevisionKey, @NotNull @NotNull File sourceDirectory) throws RepositoryException
Description copied from interface:CustomSourceDirectoryAwareRepository
Checks out the latest source code from an appropriate repository to specified directory- Specified by:
retrieveSourceCode
in interfaceCustomSourceDirectoryAwareRepository
vcsRevisionKey
- - may be null if you want latest codesourceDirectory
- - directory to checkout to- Returns:
- vcsRevisionKey - the revision
- Throws:
RepositoryException
-
preRetrieveSourceCode
public void preRetrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @NotNull @NotNull File sourceDirectory)
Checks if the SVN URL has changed- Specified by:
preRetrieveSourceCode
in interfaceRepositoryEventAware
- Parameters:
buildContext
-
-
postRetrieveSourceCode
public void postRetrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @NotNull @NotNull File sourceDirectory)
Description copied from interface:RepositoryEventAware
postRetrieveSourceCode will run after the retrieveSourceCode method is called. The extension point allows you to easily set custom data, do any post checkout collection of data.- Specified by:
postRetrieveSourceCode
in interfaceRepositoryEventAware
-
isRecoverableException
protected boolean isRecoverableException(@NotNull @NotNull org.tmatesoft.svn.core.SVNException e)
Check if provided exception object identifies recoverable exception.- Parameters:
e
- Exception to be analyzed.- Returns:
- True if exception is recognized as the one we can recover from.
-
getSvnClientManager
protected org.tmatesoft.svn.core.wc.SVNClientManager getSvnClientManager()
SVNClientManager factory.- Returns:
- SVNClientManager appropriate for authorization mode
-
validate
@NotNull public @NotNull ErrorCollection validate(@NotNull @NotNull BuildConfiguration buildConfiguration)
Description copied from interface:BuildConfigurationAwarePlugin
Validates the properties in theBuildConfiguration
object. The name of the properties match those passed in through the form fragments inRenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan)
template.- Specified by:
validate
in interfaceBuildConfigurationAwarePlugin
- Overrides:
validate
in classAbstractRepository
- Parameters:
buildConfiguration
- -- Returns:
ErrorCollection
keyed by the field name.
-
isRepositoryDifferent
public boolean isRepositoryDifferent(@NotNull @NotNull Repository repository)
Description copied from interface:RepositoryV2
Checks if the current repo is the same as the given repository- Specified by:
isRepositoryDifferent
in interfaceRepositoryV2
- Parameters:
repository
- to compare against- Returns:
- true of repositories are different, false if the same;
-
prepareConfigObject
public void prepareConfigObject(@NotNull @NotNull BuildConfiguration buildConfiguration)
Description copied from interface:BuildConfigurationAwarePlugin
Do any preprocessing work before validation occurs. For repository, builder and web repository plugins this will only be called if the plugin is select by the user.- Specified by:
prepareConfigObject
in interfaceBuildConfigurationAwarePlugin
- Overrides:
prepareConfigObject
in classBaseBuildConfigurationAwarePlugin
- Parameters:
buildConfiguration
- -
-
checkout
public long checkout(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision, File dstPath, boolean isRecursive) throws RepositoryException
Checks out a working copy from a repository. Like 'svn checkout URL[@REV] PATH (-r..)' command; It's done by invoking- Parameters:
url
- repository location where a working copy is to be checked out from;revision
- a revision at which a working copy being checked out is to be;dstPath
- a local path where the working copy will be fetched into;isRecursive
- if true and url corresponds to a directory then doCheckout(..) recursively- Returns:
- the number of the revision at which the working copy is
- Throws:
RepositoryException
- Failed!
-
export
public long export(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision, File dstPath, boolean isRecursive) throws RepositoryException
- Throws:
RepositoryException
-
getMavenPomAccessor
@NotNull public @NotNull SvnRepositoryMavenPomAccessor getMavenPomAccessor()
- Specified by:
getMavenPomAccessor
in interfaceMavenPomAccessorCapableRepository
-
info
@NotNull public @NotNull org.tmatesoft.svn.core.wc.SVNInfo info(org.tmatesoft.svn.core.SVNURL url, org.tmatesoft.svn.core.wc.SVNRevision revision) throws RepositoryException
Runs 'svn info' operation on a given URL.- Parameters:
url
- repository location which shall be queriedrevision
- a revision of repository location which shall be queried- Returns:
- SVNInfo object holding data
- Throws:
RepositoryException
- Failed!
-
addDefaultValues
public void addDefaultValues(@NotNull @NotNull BuildConfiguration buildConfiguration)
Description copied from interface:BuildConfigurationAwarePlugin
Extension point for adding default values to the form forRenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan)
- Specified by:
addDefaultValues
in interfaceBuildConfigurationAwarePlugin
- Overrides:
addDefaultValues
in classAbstractRepository
- Parameters:
buildConfiguration
- -
-
populateFromConfig
public void populateFromConfig(@NotNull @NotNull org.apache.commons.configuration.HierarchicalConfiguration config)
Description copied from interface:ConvertibleFromConfig
Update the current object with data in theHierarchicalConfiguration
- Specified by:
populateFromConfig
in interfaceConvertibleFromConfig
- Overrides:
populateFromConfig
in classAbstractRepository
-
toConfiguration
@NotNull public @NotNull org.apache.commons.configuration.HierarchicalConfiguration toConfiguration()
Store SvnRepository data into configuration object.- Specified by:
toConfiguration
in interfaceConvertibleFromConfig
- Overrides:
toConfiguration
in classAbstractRepository
- Returns:
-
onInitialBuild
public void onInitialBuild(BuildContext buildContext)
Description copied from interface:InitialBuildAwareRepository
Allows theRepository
to perform custom actions when an initial build is triggered.- Specified by:
onInitialBuild
in interfaceInitialBuildAwareRepository
-
isAdvancedOptionEnabled
public boolean isAdvancedOptionEnabled(@NotNull @NotNull BuildConfiguration buildConfiguration)
- Overrides:
isAdvancedOptionEnabled
in classAbstractRepository
-
getName
@NotNull public @NotNull String getName()
What's the name of the plugin - appears in the GUI dropdown- Specified by:
getName
in interfaceDescriptionProvider
- Specified by:
getName
in interfaceNameProvider
- Specified by:
getName
in interfaceRepository
- Returns:
- The name
-
getPassphrase
public String getPassphrase()
-
setPassphrase
public void setPassphrase(String passphrase)
-
getEncryptedPassphrase
public String getEncryptedPassphrase()
-
setEncryptedPassphrase
public void setEncryptedPassphrase(String encryptedPassphrase)
-
getKeyFile
public String getKeyFile()
-
getSubstitutedKeyFile
public String getSubstitutedKeyFile()
-
setKeyFile
public void setKeyFile(String myKeyFile)
-
getAuthType
public String getAuthType()
- Specified by:
getAuthType
in interfaceSelectableAuthenticationRepository
- Returns:
- the authentication type for this repository configuration
-
setAuthType
public void setAuthType(String authType)
-
getUrl
public String getUrl()
Where is the documentation and help about using Subversion?- Returns:
- The web url
-
setRepositoryUrl
public void setRepositoryUrl(String repositoryUrl)
Specify the subversion repository we are using- Parameters:
repositoryUrl
- The subversion repository
-
getRepositoryUrl
public String getRepositoryUrl()
Which repository URL are we using?- Returns:
- The subversion repository
-
getSubstitutedRepositoryUrl
public String getSubstitutedRepositoryUrl()
Return repository URL with extrapolated Bamboo variables- Returns:
- Repository URL with extrapolated Bamboo variables
-
setUsername
public void setUsername(String username)
What's the username (if any) we are using to acces the repository?- Parameters:
username
- The user name, null if there is no user
-
getUsername
public String getUsername()
What username are we using to access the repository?- Returns:
- The username, null if we are not using user authentication
-
setUserPassword
public void setUserPassword(String password)
Specify the password required to access the resposotory- Parameters:
password
- The password (null if we are not using user authentication)
-
getUserPassword
public String getUserPassword()
What password are we using to access the repository- Returns:
- The password (null if we are not using user authentication)
-
getEncryptedPassword
public String getEncryptedPassword()
-
setEncryptedPassword
public void setEncryptedPassword(String encryptedPassword)
-
getSubstitutedSvnUrl
protected org.tmatesoft.svn.core.SVNURL getSubstitutedSvnUrl() throws org.tmatesoft.svn.core.SVNException
- Throws:
org.tmatesoft.svn.core.SVNException
-
getHost
public String getHost()
Description copied from interface:Repository
What's the repository server host- Specified by:
getHost
in interfaceRepository
- Returns:
- The host!
-
getHost
public String getHost(BuildContext buildContext)
-
getLocationIdentifier
@NotNull public @NotNull String getLocationIdentifier()
Description copied from interface:Repository
A string representing the location of the repository- Specified by:
getLocationIdentifier
in interfaceRepository
- Overrides:
getLocationIdentifier
in classAbstractRepository
- Returns:
-
isUseExternals
public boolean isUseExternals()
-
setUseExternals
public void setUseExternals(boolean useExternals)
-
isUseExport
public boolean isUseExport()
-
setUseExport
public void setUseExport(boolean useExport)
-
isCleanCheckoutRequired
public boolean isCleanCheckoutRequired()
- Specified by:
isCleanCheckoutRequired
in interfaceMandatoryCleanCheckoutAwareRepository
-
setSvnClientManagerFactory
public void setSvnClientManagerFactory(SVNClientManagerFactory svnClientManagerFactory)
-
compareTo
public int compareTo(Object obj)
-
getAuthenticationTypes
@NotNull public @NotNull List<NameValuePair> getAuthenticationTypes()
Description copied from interface:SelectableAuthenticationRepository
List all authentication types supported by repository.- Specified by:
getAuthenticationTypes
in interfaceSelectableAuthenticationRepository
- Returns:
- List of authentication types supported by repository
-
isCommitIsolationEnabled
public boolean isCommitIsolationEnabled()
Description copied from interface:CommitIsolationAwareRepository
Whether or not commits will be broken up into individual builds- Specified by:
isCommitIsolationEnabled
in interfaceCommitIsolationAwareRepository
- Returns:
-
setCommitIsolationEnabled
public void setCommitIsolationEnabled(boolean commitIsolationEnabled)
-
isAutodetectBranchRootUrl
public boolean isAutodetectBranchRootUrl()
-
setAutodetectBranchRoot
public void setAutodetectBranchRoot(boolean autodetectBranchRoot)
-
isAutodetectTagRootUrl
public boolean isAutodetectTagRootUrl()
-
getManualBranchRootUrl
public String getManualBranchRootUrl()
-
setManualBranchRootUrl
public void setManualBranchRootUrl(String branchRoot)
-
getManualTagRootUrl
public String getManualTagRootUrl()
-
setTrustedKeyHelper
public void setTrustedKeyHelper(TrustedKeyHelper trustedKeyHelper)
-
setAdministrationConfigurationAccessor
public void setAdministrationConfigurationAccessor(AdministrationConfigurationAccessor administrationConfigurationAccessor)
- Overrides:
setAdministrationConfigurationAccessor
in classAbstractRepository
-
isolateCommits
@NotNull public @NotNull List<BuildRepositoryChanges> isolateCommits(@NotNull @NotNull BuildRepositoryChanges buildChanges)
Description copied from interface:CommitIsolationAwareRepository
Break the single build changes object into a list ofBuildRepositoryChanges
. Must not be null. May return an empty list but that doesn't actually make any sense.
The order here matters. The first of theBuildRepositoryChanges
will be more likely to be built than lower changes, which may be discarded.- Specified by:
isolateCommits
in interfaceCommitIsolationAwareRepository
- Returns:
-
createBranch
public void createBranch(long repositoryId, @NotNull @NotNull String branchName, @NotNull @NotNull BuildContext buildContext) throws RepositoryException
Description copied from interface:BranchingAwareRepository
Creates branch in the repository.- Specified by:
createBranch
in interfaceBranchingAwareRepository
branchName
- name of new branchbuildContext
- build context- Throws:
RepositoryException
-
createTag
public void createTag(long repositoryId, @NotNull @NotNull String tagName, @NotNull @NotNull BuildContext buildContext) throws RepositoryException
Description copied from interface:TaggingAwareRepository
Creates a tag in the repository- Specified by:
createTag
in interfaceTaggingAwareRepository
tagName
- - name of the tagbuildContext
- - build context- Throws:
RepositoryException
-
getCustomVariables
@NotNull public @NotNull Map<String,String> getCustomVariables()
Description copied from interface:CustomVariableProviderRepository
Return a map containing name->value mapping of the variables.Null values will be filtered out so it's safe to put them in the map.
- Specified by:
getCustomVariables
in interfaceCustomVariableProviderRepository
- Returns:
- Map with variable substitutions
-
getPlanRepositoryVariables
@NotNull public @NotNull Map<String,String> getPlanRepositoryVariables()
Description copied from interface:CustomVariableProviderRepository
Return a map containing name->value mapping of the plan repository format variables.Null values will be filtered out so it's safe to put them in the map.
- Specified by:
getPlanRepositoryVariables
in interfaceCustomVariableProviderRepository
- Returns:
- Map with variable substitutions
-
getBranchRootUrl
public org.tmatesoft.svn.core.SVNURL getBranchRootUrl() throws org.tmatesoft.svn.core.SVNException
- Throws:
org.tmatesoft.svn.core.SVNException
-
getOpenBranches
@NotNull public @NotNull List<VcsBranch> getOpenBranches(@Nullable @Nullable String context) throws RepositoryException
Description copied from interface:BranchDetectionCapableRepository
Set
of open branches that are discovered in the repository. Returns empty collection if no branches at all (can that happen?). Used for monitoring repositories for new branches. An open branch is a branch that is considered 'open' by underlying VCS - it has nothing to do with the actual development on that branch (recent commits or so).- Specified by:
getOpenBranches
in interfaceBranchDetectionCapableRepository
- Returns:
List
of branch names. May be empty.- Throws:
RepositoryException
-
getLastCommit
public CommitContext getLastCommit() throws RepositoryException
Description copied from interface:BranchDetectionCapableRepository
Retrieve last commit on the branch set on this Repository. Method is used by Chain Branch automatic expiry. If this method returns null Chain Branch is not expired.- Specified by:
getLastCommit
in interfaceBranchDetectionCapableRepository
- Returns:
- the last commit or null if N/A
- Throws:
RepositoryException
-
getFirstCommit
public CommitContext getFirstCommit() throws RepositoryException
Description copied from interface:BranchDetectionCapableRepository
Retrieve the commit that created the Branch.- Specified by:
getFirstCommit
in interfaceBranchDetectionCapableRepository
- Returns:
- the first commit to the branch
- Throws:
RepositoryException
-
getVcsBranch
@NotNull public @NotNull VcsBranch getVcsBranch()
- Specified by:
getVcsBranch
in interfaceBranchAwareRepository
- Returns:
- the branch being used currently by this repository.
-
setVcsBranch
public void setVcsBranch(@NotNull @NotNull VcsBranch branch)
Description copied from interface:BranchAwareRepository
Set and prepare the repository for using an arbitrary branch. Generally the subsequent getVcsBranch should return the same branch name.- Specified by:
setVcsBranch
in interfaceBranchAwareRepository
-
setVcsBranch
public void setVcsBranch(@NotNull @NotNull VcsBranch branch, @NotNull @NotNull org.apache.commons.configuration.HierarchicalConfiguration customConfiguration)
-
getCacheId
public CacheId getCacheId(@NotNull @NotNull CachingAwareRepository.CachableOperation cachableOperation)
Description copied from interface:CachingAwareRepository
Cache id has to fulfill the following: Given two Repository objects A and B, returning equal CacheId (in terms of equals()) and a cachable operation foo(), in the following sequence of calls made in a short time period: 1. A::foo() 2. B::foo() 3. A::foo() the result of B::foo() should be the same as either the first or the second call to A::foo().- Specified by:
getCacheId
in interfaceCachingAwareRepository
- Returns:
- the cache id of repository, null if the supplied operation cannot be cached
-
testConnection
@NotNull public @NotNull ErrorCollection testConnection(long timeout, @NotNull @NotNull TimeUnit unit)
Description copied from interface:TestConnectionAwareRepository
Test connection to the repository within the given timeout. The method should stop executing after the given time elapses.- Specified by:
testConnection
in interfaceTestConnectionAwareRepository
- Parameters:
timeout
- the maximum time to waitunit
- the time unit of the timeout argument- Returns:
- Errors discovered during testing connection. Empty error collection should be returned if connection was successful. The errors should be translated to error messages, rather than field errors. Field errors are used by Bamboo to handle special cases.
-
isCachingSupportedFor
public boolean isCachingSupportedFor(@NotNull @NotNull CachingAwareRepository.CachableOperation cachableOperation)
- Specified by:
isCachingSupportedFor
in interfaceCachingAwareRepository
- Returns:
- true if the repository supports generation of CacheIds for a given operation
-
getRepoPrefix
protected static String getRepoPrefix()
-
getTemporaryPrefix
protected String getTemporaryPrefix()
-
-