com.atlassian.bamboo.repository
Class AbstractRepository

java.lang.Object
  extended by com.atlassian.bamboo.repository.AbstractRepository
All Implemented Interfaces:
ConvertibleFromConfig, Repository
Direct Known Subclasses:
CVSRepository, PerforceRepository, SvnRepository

public abstract class AbstractRepository
extends Object
implements Repository

This class provides common repository implementation code,


Field Summary
static String BUILD_TRIGGER_IP
           
static String WEB_REPO_MODULE_NAME
           
static String WEB_REPO_URL
           
 
Fields inherited from interface com.atlassian.bamboo.repository.Repository
REPOSIORTY_TYPE, UNKNOWN_HOST
 
Constructor Summary
AbstractRepository()
           
 
Method Summary
 void addDefaultValues(BuildConfiguration buildConfiguration)
           
protected  String addPasswordToCvsRoot(String cvsRoot, String password)
          Appends the password to the CVSROOT string
protected  String createStringFromList(List list)
          Create a string from the collection of value in the given list
 String getLabel()
           
 File getSourceCodeDirectory(Build build)
          For Subversion, we use the build name's directory within the system's working directory
 String getTriggerIpAddress()
          What's the repositorys optional trigger IP address?
 File getWorkingDirectory()
           
 boolean hasWebBasedRepositoryAccess()
          Does this implementation of the repository provide a web access to the repository?
 boolean isProcessingRepositoryRequest()
          Is the repository currently active?
 boolean referencesDifferentRepository()
          Default behaviour is to not support major configuration changes
 void setLabel(String label)
          Not implemented.
 void setProcessingRepositoryRequest(boolean processingRepositoryRequest)
          Mark the repository currently active/inactive to prevent multiple concurrent accesses.
 void setReferencesDifferentRepository(boolean isDifferentRepository)
          Mark the repository as having changed/cleared of change,
 void setTriggerIpAddress(String triggerIpAddress)
          Bamboo checks to ensure a repository triggered build request comes from a valid host.
 void setWorkingDir(File workingDir)
          Where should the repository place repository specific working files.
protected  String updateAectIfRepositoryHasChanged(String originalValue, String newValue)
          Utility method to return the new field value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.atlassian.bamboo.repository.Repository
getAllSourceCode, getChangesSinceLastBuild, getHost, getKey, getName, getWebRepositoryUrl, getWebRepositoryUrlForFile, getWebRepositoryUrlRepoName, isRepositoryDifferent, setWebRepositoryUrl, setWebRepositoryUrlRepoName, validate, validate
 
Methods inherited from interface com.atlassian.bamboo.fieldvalue.ConvertibleFromConfig
populateFromConfig, toConfiguration
 

Field Detail

WEB_REPO_URL

public static final String WEB_REPO_URL
See Also:
Constant Field Values

WEB_REPO_MODULE_NAME

public static final String WEB_REPO_MODULE_NAME
See Also:
Constant Field Values

BUILD_TRIGGER_IP

public static final String BUILD_TRIGGER_IP
See Also:
Constant Field Values
Constructor Detail

AbstractRepository

public AbstractRepository()
Method Detail

getLabel

public String getLabel()
Specified by:
getLabel in interface Repository

setLabel

public void setLabel(String label)
Not implemented.


createStringFromList

protected String createStringFromList(List list)
Create a string from the collection of value in the given list

Parameters:
list - the list we are using to create the string
Returns:
the resulting string

hasWebBasedRepositoryAccess

public boolean hasWebBasedRepositoryAccess()
Does this implementation of the repository provide a web access to the repository?

Specified by:
hasWebBasedRepositoryAccess in interface Repository
Returns:
true iff we can link to the a web based representation of repository changes

isProcessingRepositoryRequest

public boolean isProcessingRepositoryRequest()
Is the repository currently active?

Specified by:
isProcessingRepositoryRequest in interface Repository
Returns:
True if its currently being used.

setProcessingRepositoryRequest

public void setProcessingRepositoryRequest(boolean processingRepositoryRequest)
Mark the repository currently active/inactive to prevent multiple concurrent accesses.

Specified by:
setProcessingRepositoryRequest in interface Repository
Parameters:
processingRepositoryRequest - True iff the repository is active, False iff the repository is no longer active.

referencesDifferentRepository

public boolean referencesDifferentRepository()
Default behaviour is to not support major configuration changes

Specified by:
referencesDifferentRepository in interface Repository
Returns:
false

setReferencesDifferentRepository

public void setReferencesDifferentRepository(boolean isDifferentRepository)
Mark the repository as having changed/cleared of change,

Specified by:
setReferencesDifferentRepository in interface Repository
Parameters:
isDifferentRepository - true if it has changed, false it it has cleared

updateAectIfRepositoryHasChanged

protected String updateAectIfRepositoryHasChanged(String originalValue,
                                                  String newValue)
Utility method to return the new field value. The repository is marked as different if the value has changed,

Parameters:
originalValue - The orginal value of the field
newValue - The new value of the field
Returns:
The updated value of the field (iff it has changed)

setTriggerIpAddress

public void setTriggerIpAddress(String triggerIpAddress)
Bamboo checks to ensure a repository triggered build request comes from a valid host.

By default Bamboo checks the request came from repository server's primary IP address.

This may not work on machines with multiple ip addresses. The user can use this option to override the IP address.

Specified by:
setTriggerIpAddress in interface Repository
Parameters:
triggerIpAddress - The IP address of the repository server

getTriggerIpAddress

public String getTriggerIpAddress()
What's the repositorys optional trigger IP address?

Specified by:
getTriggerIpAddress in interface Repository
Returns:
the ip address, null if it does not have a trigger address.

setWorkingDir

public void setWorkingDir(File workingDir)
Description copied from interface: Repository
Where should the repository place repository specific working files.

Specified by:
setWorkingDir in interface Repository
Parameters:
workingDir - the directory

getWorkingDirectory

public File getWorkingDirectory()

getSourceCodeDirectory

public File getSourceCodeDirectory(Build build)
For Subversion, we use the build name's directory within the system's working directory

Specified by:
getSourceCodeDirectory in interface Repository
Parameters:
build -
Returns:
The source code directory

addDefaultValues

public void addDefaultValues(BuildConfiguration buildConfiguration)
Specified by:
addDefaultValues in interface Repository

addPasswordToCvsRoot

protected String addPasswordToCvsRoot(String cvsRoot,
                                      String password)
Appends the password to the CVSROOT string

Parameters:
cvsRoot - - CVSROOT
password - - Non encoded password
Returns:
CVSROOT string with the password in it


Copyright © 2006 Atlassian Software Systems. All Rights Reserved.