com.pmease.quickbuild.model
Class Configuration

java.lang.Object
  extended bycom.pmease.quickbuild.model.Persistent
      extended bycom.pmease.quickbuild.model.Configuration
All Implemented Interfaces:
net.sf.acegisecurity.acl.basic.AclObjectIdentity, java.io.Serializable

public class Configuration
extends Persistent
implements net.sf.acegisecurity.acl.basic.AclObjectIdentity

Configuration is the core concept in QuickBuild. It contains all necessary informations to produce builds. Configurations are organized into a tree structure, so child configurations can inherit settings from parent configuration. This will greatly reduce the effort to create a new configuration.

Author:
robin shine
See Also:
Serialized Form

Field Summary
static java.lang.String BUILDS_DIR
           
static java.lang.String CHECKOUTS_DIR
           
static java.lang.String CONFIGURATION_LOG
           
static java.lang.Long ROOT_ID
           
 
Constructor Summary
Configuration()
           
 
Method Summary
 void addBuild(Build build)
          Add a build to current configuration object.
 void addChild(Configuration child)
          Add a child to current configuration object.
 java.lang.String convertVersionToLabel(java.lang.String version)
          OGNL: Convert the version to a label that propers to applied to various version control system.
 void detachLogs()
           
 boolean evaluateBooleanExpression(java.lang.String expression)
           
 java.lang.String evaluateStringExpression(java.lang.String expression)
           
 Build getBuild()
          OGNL: Get build object currently running.
 BuildCleanupStrategy getBuildCleanupStrategy()
          OGNL: Specify Build cleanup strategy of this configuration.
 Builder getBuilder(java.lang.String name)
          OGNL: Get builder of specified name in current configuration and its ancestors.
 java.util.List getBuilders()
          Specify the builder type here.
 java.lang.String getBuildNecessaryCondition()
          OGNL: This condition determines whether or not to generates a new build and run this build when a configuration is triggered.
 java.util.Map getBuildNecessaryConditionChoices()
           
 java.util.Set getBuilds()
          Get child build configurations of current configuration.
 java.lang.String getBuildsDir()
          OGNL: Get the directory used to hold generated builds.
 java.lang.String getCheckoutsDir()
          OGNL: Get the directory used to hold checked out artifacts.
 java.util.List getChildConfigurations(java.util.List configurations)
           
 java.util.Set getChildren()
          Get child build configurations of current configuration.
 Configuration getConfiguration()
          OGNL: Get current configuration object.
static Configuration getConfiguration(java.util.List configurations, java.lang.Long id)
           
 java.lang.String getConfigurationSpecificPublishDir()
          OGNL: Specify publish directory for this configuration.
 java.util.Map getConfigurationSpecificPublishDirChoices()
           
 java.lang.String getConfigurationSpecificWorkingDir()
          OGNL: Specify working directory for this configuration.
 java.util.Map getConfigurationSpecificWorkingDirChoices()
           
 Builder getDefinedBuilder(java.lang.String name, boolean recursively)
           
 LoginMapping getDefinedLoginMapping(java.lang.String name, boolean recursively)
           
 Notifier getDefinedNotifier(java.lang.String name, boolean recursively)
           
 Repository getDefinedRepository(java.lang.String name, boolean recursively)
           
 Step getDefinedStep(java.lang.String name, boolean recursively)
           
 DependentContext getDependentContext()
           
 void getDependents(java.lang.String stepName, java.util.List dependents)
          Get dependent QuickBuild repositories
 java.util.List getDescendents(java.util.List configurations)
           
 java.lang.String getDescription()
          OGNL: Get description of current build configuration object.
 java.util.Set getGroupPermissions()
          Get group permissions for this configuration.
 java.lang.String getGuid()
          OGNL: Get GUID of this configuration.
 Build getLastBuild()
          OGNL: Get last build of current configuration. .
 Build getLastSuccessBuild()
          OGNL: Get last successful build of current configuration.
 LoginMapping getLoginMapping(java.lang.String name)
          OGNL: Get login mapping of specified name in current configuration and its ancestors.
 java.util.List getLoginMappings()
           
 LogLevelEnum getLogLevel()
          OGNL: Determines detail level of logs generated during triggering of this configuration, as well as logs of generated builds.
 java.lang.String getLogPath()
          OGNL: Get path to this configuration's log.
 java.lang.String getLogUrl()
          OGNL: Get log url of this configuration.
 Configuration getLoopingNode(java.util.List traversed)
           
 java.lang.String getName()
          OGNL: Provide a name of this build configuration.
 java.lang.String getNextBuildVersion()
          OGNL: Get version for next build generated by this configuration.
 java.util.Map getNextBuildVersionChoices()
           
 Notifier getNotifier(java.lang.String name)
          OGNL: Get notifier of specified name in current configuration and its ancestors.
 java.util.List getNotifiers()
          Specify the builder type here.
 Configuration getParent()
          OGNL: Get parent build configuration of current configuration.
 void getParticipantRepositoryNames(java.lang.String stepName, java.util.List participantRepositoryNames)
           
 java.lang.String getPublishDir()
          OGNL: Get publish directory for this configuration.
 Queue getQueue()
           
 java.lang.String getQueueName()
          OGNL: Configure build queue for this configuration.
 org.apache.tapestry.form.IPropertySelectionModel getQueueNameSelectionModel()
           
 java.util.List getRepositories()
          Specify the repository type here.
 Repository getRepository(java.lang.String name)
          OGNL: Get repository of specified name in current configuration and its ancestors.
 java.lang.Thread getRunningThread()
           
 org.apache.log4j.Logger getRuntimeLogger()
           
 Schedule getSchedule()
          OGNL: Select schedule type for this configuration.
 ConfigurationStatusEnum getStatus()
          OGNL: Get status of this configuration object.
 java.util.Date getStatusDate()
          OGNL: Get the date when this status is set.
 Step getStep(java.lang.String name)
          OGNL: Get step of specified name in current configuration and its ancestors.
 java.util.List getSteps()
          Specify the step type here.
 System getSystem()
          OGNL: Get system object.
 java.lang.Object getThis()
          OGNL: Get current object during a build process.
 java.lang.String getUrl()
          OGNL: Get access URL for this configuration.
 Variable getVar(java.lang.String name)
          OGNL: Get Variable with specified name
 java.util.Map getVariables()
          Define variables for this configuration.
 java.lang.String getWorkingDir()
          OGNL: Get working directory for this configuration.
 java.lang.String getWorkingDirMutexName()
          Prevent configuration with the same working directory run at the same time.
 java.lang.String getWorkingDirUrl()
          OGNL: Get working directory web url for this configuration.
 void initializeGroupPermissions()
           
 boolean isAncestorOf(Configuration configuration)
           
 boolean isBuildCleanly()
          OGNL: If true, run build cleanly.
 boolean isCreated()
          OGNL: Whether or not this configuration is created.
 boolean isEffectingRepositoriesModified()
          OGNL: Determine if contents of all used repositories have been modified since last build.
 boolean isFailed()
          OGNL: Whether or not this configuration is failed.
 boolean isLeaf()
           
 boolean isNextBuildVersionDirty()
           
 boolean isRoot()
           
 boolean isRunning()
          OGNL: Whether or not this configuration is running.
 boolean isSelected()
           
 boolean isSuccessful()
          OGNL: Whether or not this configuration is successful.
 boolean isVariablesDirty()
           
 void promote(Build buildToPromote, PromoteSetting promoteSetting)
          Trigger this configuration for a promotion.
 void rebuild(Build build)
           
 java.lang.String resolveAbsolutePath(java.lang.String filePath)
          Resolves the absolute path for specified file path.
 void setBuildCleanly(boolean buildCleanly)
           
 void setBuildCleanupStrategy(BuildCleanupStrategy buildCleanupStrategy)
           
 void setBuilder(java.lang.String name, Builder builder)
           
 void setBuilders(java.util.List builders)
           
 void setBuildNecessaryCondition(java.lang.String buildNecessaryCondition)
           
 void setBuilds(java.util.Set builds)
           
 void setChildren(java.util.Set children)
           
 void setConfigurationSpecificPublishDir(java.lang.String configurationSpecificPublishDir)
           
 void setConfigurationSpecificWorkingDir(java.lang.String configurationSpecificWorkingDir)
           
 void setDependentContext(DependentContext dependentContext)
           
 void setDescription(java.lang.String description)
           
 void setGroupPermissions(java.util.Set groupPermissions)
           
 void setGuid(java.lang.String guid)
           
 void setLoginMapping(java.lang.String name, LoginMapping loginMapping)
           
 void setLoginMappings(java.util.List loginMappings)
           
 void setLogLevel(LogLevelEnum logLevel)
           
 void setName(java.lang.String name)
           
 void setNextBuildVersion(java.lang.String nextBuildVersion)
           
 void setNextBuildVersionDirty(boolean nextBuildVersionDirty)
           
 void setNotifier(java.lang.String name, Notifier notifier)
           
 void setNotifiers(java.util.List notifiers)
           
 void setParent(Configuration parent)
           
 void setQueueName(java.lang.String queueName)
           
 void setRepositories(java.util.List repositories)
           
 void setRepository(java.lang.String name, Repository repository)
           
 void setRunningThread(java.lang.Thread thread)
           
 void setSchedule(Schedule schedule)
           
 void setSelected(boolean selected)
           
 void setStatus(ConfigurationStatusEnum status)
           
 void setStatusDate(java.util.Date statusDate)
           
 void setStep(java.lang.String name, Step step)
           
 void setSteps(java.util.List steps)
           
 void setVar(java.lang.String name, Variable var)
           
 void setVariables(java.util.Map variables)
           
 java.lang.String toString()
           
 void trigger(BuildSetting buildSetting)
          Trigger this configuration.
 void validateSteps(java.lang.String stepName, java.util.Set stepNames, java.util.Set repositoryNames, java.util.Set builderNames)
           
 
Methods inherited from class com.pmease.quickbuild.model.Persistent
equals, getEntityVersion, getId, hashCode, setEntityVersion, setId
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.acegisecurity.acl.basic.AclObjectIdentity
equals, hashCode
 

Field Detail

ROOT_ID

public static final java.lang.Long ROOT_ID

CHECKOUTS_DIR

public static final java.lang.String CHECKOUTS_DIR
See Also:
Constant Field Values

BUILDS_DIR

public static final java.lang.String BUILDS_DIR
See Also:
Constant Field Values

CONFIGURATION_LOG

public static final java.lang.String CONFIGURATION_LOG
See Also:
Constant Field Values
Constructor Detail

Configuration

public Configuration()
Method Detail

getName

public java.lang.String getName()
OGNL: Provide a name of this build configuration. Should be unique under the same parent.

Returns:

setName

public void setName(java.lang.String name)

getParent

public Configuration getParent()
OGNL: Get parent build configuration of current configuration.


setParent

public void setParent(Configuration parent)

getChildren

public java.util.Set getChildren()
Get child build configurations of current configuration.

Returns:

setChildren

public void setChildren(java.util.Set children)

getRepositories

public java.util.List getRepositories()
Specify the repository type here.


setRepositories

public void setRepositories(java.util.List repositories)

getBuilders

public java.util.List getBuilders()
Specify the builder type here.


setBuilders

public void setBuilders(java.util.List builders)

getNotifiers

public java.util.List getNotifiers()
Specify the builder type here.


setNotifiers

public void setNotifiers(java.util.List notifiers)

getSteps

public java.util.List getSteps()
Specify the step type here.


setSteps

public void setSteps(java.util.List steps)

getLoginMappings

public java.util.List getLoginMappings()

setLoginMappings

public void setLoginMappings(java.util.List loginMappings)

addChild

public void addChild(Configuration child)
Add a child to current configuration object.

Parameters:
child -

addBuild

public void addBuild(Build build)
Add a build to current configuration object.

Parameters:
build -

getDescription

public java.lang.String getDescription()
OGNL: Get description of current build configuration object.

Returns:

setDescription

public void setDescription(java.lang.String description)

getStatus

public ConfigurationStatusEnum getStatus()
OGNL: Get status of this configuration object.


setStatus

public void setStatus(ConfigurationStatusEnum status)

getStatusDate

public java.util.Date getStatusDate()
OGNL: Get the date when this status is set.

Returns:

setStatusDate

public void setStatusDate(java.util.Date statusDate)

getSchedule

public Schedule getSchedule()
OGNL: Select schedule type for this configuration.

Returns:

setSchedule

public void setSchedule(Schedule schedule)

getBuildNecessaryCondition

public java.lang.String getBuildNecessaryCondition()
OGNL: This condition determines whether or not to generates a new build and run this build when a configuration is triggered. When left empty, build necessary condition of parent configuration will be used.


setBuildNecessaryCondition

public void setBuildNecessaryCondition(java.lang.String buildNecessaryCondition)

getBuildNecessaryConditionChoices

public java.util.Map getBuildNecessaryConditionChoices()

getNextBuildVersionChoices

public java.util.Map getNextBuildVersionChoices()

getNextBuildVersion

public java.lang.String getNextBuildVersion()
OGNL: Get version for next build generated by this configuration. When left empty, next build version of parent configuration will be used. This version string requires at least one digit available If there are no OGNL expressions embedded in. In this case, it will increase its last digit automatically upon every build, for example:
quickbuild-1.9 will be increased to quickbuild-1.10
quickbuild-1.5 (build 1000) will be increased to quickbuild-1.5 (build 1001)


setNextBuildVersion

public void setNextBuildVersion(java.lang.String nextBuildVersion)

getConfigurationSpecificWorkingDir

public java.lang.String getConfigurationSpecificWorkingDir()
OGNL: Specify working directory for this configuration. This path is relative to working directory of its parent configuration. So value \".\" will refer to parent configuration's working directory.

Returns:

setConfigurationSpecificWorkingDir

public void setConfigurationSpecificWorkingDir(java.lang.String configurationSpecificWorkingDir)

getConfigurationSpecificWorkingDirChoices

public java.util.Map getConfigurationSpecificWorkingDirChoices()

getConfigurationSpecificPublishDir

public java.lang.String getConfigurationSpecificPublishDir()
OGNL: Specify publish directory for this configuration. This path is relative to publish directory of its parent configuration. So value \".\" will refer to parent configuration's publish directory.


setConfigurationSpecificPublishDir

public void setConfigurationSpecificPublishDir(java.lang.String configurationSpecificPublishDir)

getConfigurationSpecificPublishDirChoices

public java.util.Map getConfigurationSpecificPublishDirChoices()

getWorkingDir

public java.lang.String getWorkingDir()
OGNL: Get working directory for this configuration.


getLogPath

public java.lang.String getLogPath()
OGNL: Get path to this configuration's log.

Returns:

getLogUrl

public java.lang.String getLogUrl()
OGNL: Get log url of this configuration.


getPublishDir

public java.lang.String getPublishDir()
OGNL: Get publish directory for this configuration.

Returns:

getCheckoutsDir

public java.lang.String getCheckoutsDir()
OGNL: Get the directory used to hold checked out artifacts.

Returns:

getBuildsDir

public java.lang.String getBuildsDir()
OGNL: Get the directory used to hold generated builds.

Returns:

getRuntimeLogger

public org.apache.log4j.Logger getRuntimeLogger()

isBuildCleanly

public boolean isBuildCleanly()
OGNL: If true, run build cleanly. Otherwise, run build incremently..

Returns:

setBuildCleanly

public void setBuildCleanly(boolean buildCleanly)

getDefinedStep

public Step getDefinedStep(java.lang.String name,
                           boolean recursively)

getDefinedRepository

public Repository getDefinedRepository(java.lang.String name,
                                       boolean recursively)

getDefinedLoginMapping

public LoginMapping getDefinedLoginMapping(java.lang.String name,
                                           boolean recursively)

getDefinedNotifier

public Notifier getDefinedNotifier(java.lang.String name,
                                   boolean recursively)

getBuilder

public Builder getBuilder(java.lang.String name)
OGNL: Get builder of specified name in current configuration and its ancestors.

Parameters:
name -
Returns:

setBuilder

public void setBuilder(java.lang.String name,
                       Builder builder)

getRepository

public Repository getRepository(java.lang.String name)
OGNL: Get repository of specified name in current configuration and its ancestors.

Parameters:
name -
Returns:

setRepository

public void setRepository(java.lang.String name,
                          Repository repository)

getNotifier

public Notifier getNotifier(java.lang.String name)
OGNL: Get notifier of specified name in current configuration and its ancestors.

Parameters:
name -
Returns:

setNotifier

public void setNotifier(java.lang.String name,
                        Notifier notifier)

getLoginMapping

public LoginMapping getLoginMapping(java.lang.String name)
OGNL: Get login mapping of specified name in current configuration and its ancestors.

Parameters:
name -
Returns:

setLoginMapping

public void setLoginMapping(java.lang.String name,
                            LoginMapping loginMapping)

getStep

public Step getStep(java.lang.String name)
OGNL: Get step of specified name in current configuration and its ancestors.

Parameters:
name -
Returns:

setStep

public void setStep(java.lang.String name,
                    Step step)

getDefinedBuilder

public Builder getDefinedBuilder(java.lang.String name,
                                 boolean recursively)

toString

public java.lang.String toString()

isRoot

public boolean isRoot()

isLeaf

public boolean isLeaf()

getLoopingNode

public Configuration getLoopingNode(java.util.List traversed)

resolveAbsolutePath

public java.lang.String resolveAbsolutePath(java.lang.String filePath)
Resolves the absolute path for specified file path. If this file path already denotes a absolute file path, it will just return this path. Otherwise it will prefix the file path with this configuration's working directory and return the result..

Parameters:
filePath -
Returns:
absolute path

evaluateBooleanExpression

public boolean evaluateBooleanExpression(java.lang.String expression)

evaluateStringExpression

public java.lang.String evaluateStringExpression(java.lang.String expression)

getWorkingDirMutexName

public java.lang.String getWorkingDirMutexName()
Prevent configuration with the same working directory run at the same time.

Returns:

trigger

public void trigger(BuildSetting buildSetting)
Trigger this configuration.


promote

public void promote(Build buildToPromote,
                    PromoteSetting promoteSetting)
Trigger this configuration for a promotion.


getBuilds

public java.util.Set getBuilds()
Get child build configurations of current configuration.

Returns:

setBuilds

public void setBuilds(java.util.Set builds)

getBuild

public Build getBuild()
OGNL: Get build object currently running.

Returns:

getThis

public java.lang.Object getThis()
OGNL: Get current object during a build process.

Returns:

getBuildCleanupStrategy

public BuildCleanupStrategy getBuildCleanupStrategy()
OGNL: Specify Build cleanup strategy of this configuration.


setBuildCleanupStrategy

public void setBuildCleanupStrategy(BuildCleanupStrategy buildCleanupStrategy)

getLogLevel

public LogLevelEnum getLogLevel()
OGNL: Determines detail level of logs generated during triggering of this configuration, as well as logs of generated builds.


setLogLevel

public void setLogLevel(LogLevelEnum logLevel)

isSelected

public boolean isSelected()

setSelected

public void setSelected(boolean selected)

getQueueName

public java.lang.String getQueueName()
OGNL: Configure build queue for this configuration.


getQueueNameSelectionModel

public org.apache.tapestry.form.IPropertySelectionModel getQueueNameSelectionModel()

setQueueName

public void setQueueName(java.lang.String queueName)

getVariables

public java.util.Map getVariables()
Define variables for this configuration. These variables can then be referenced in OGNL expressions. For example: var[\"pathToAnt\"] will refer to value of variable pathToAnt. Variables also follow the inheritance and overriden rule, that is, for a particular variable name reference, QuickBuild will look for its value from current configuration to ancestor configurations, until the value has been found. Also value of these variables can be set from OGNL expressions, refer to user guide for details.


setVariables

public void setVariables(java.util.Map variables)

getLastBuild

public Build getLastBuild()
OGNL: Get last build of current configuration. .

Returns:

getLastSuccessBuild

public Build getLastSuccessBuild()
OGNL: Get last successful build of current configuration.

Returns:

rebuild

public void rebuild(Build build)

getVar

public Variable getVar(java.lang.String name)
OGNL: Get Variable with specified name

Parameters:
name -
Returns:

setVar

public void setVar(java.lang.String name,
                   Variable var)

isNextBuildVersionDirty

public boolean isNextBuildVersionDirty()

setNextBuildVersionDirty

public void setNextBuildVersionDirty(boolean nextBuildVersionDirty)

isVariablesDirty

public boolean isVariablesDirty()

validateSteps

public void validateSteps(java.lang.String stepName,
                          java.util.Set stepNames,
                          java.util.Set repositoryNames,
                          java.util.Set builderNames)

getParticipantRepositoryNames

public void getParticipantRepositoryNames(java.lang.String stepName,
                                          java.util.List participantRepositoryNames)

getDependents

public void getDependents(java.lang.String stepName,
                          java.util.List dependents)
Get dependent QuickBuild repositories

Parameters:
stepName -
dependents -

isEffectingRepositoriesModified

public boolean isEffectingRepositoriesModified()
OGNL: Determine if contents of all used repositories have been modified since last build.

Returns:

detachLogs

public void detachLogs()

convertVersionToLabel

public java.lang.String convertVersionToLabel(java.lang.String version)
OGNL: Convert the version to a label that propers to applied to various version control system.

Parameters:
version -
Returns:

isAncestorOf

public boolean isAncestorOf(Configuration configuration)

getQueue

public Queue getQueue()

setRunningThread

public void setRunningThread(java.lang.Thread thread)

getRunningThread

public java.lang.Thread getRunningThread()

getConfiguration

public static Configuration getConfiguration(java.util.List configurations,
                                             java.lang.Long id)

getConfiguration

public Configuration getConfiguration()
OGNL: Get current configuration object.

Returns:

getChildConfigurations

public java.util.List getChildConfigurations(java.util.List configurations)

getDescendents

public java.util.List getDescendents(java.util.List configurations)

getGroupPermissions

public java.util.Set getGroupPermissions()
Get group permissions for this configuration.

Returns:

setGroupPermissions

public void setGroupPermissions(java.util.Set groupPermissions)

initializeGroupPermissions

public void initializeGroupPermissions()

isRunning

public boolean isRunning()
OGNL: Whether or not this configuration is running.

Returns:

isSuccessful

public boolean isSuccessful()
OGNL: Whether or not this configuration is successful.

Returns:

isFailed

public boolean isFailed()
OGNL: Whether or not this configuration is failed.

Returns:

isCreated

public boolean isCreated()
OGNL: Whether or not this configuration is created.

Returns:

getSystem

public System getSystem()
OGNL: Get system object.

Returns:

getWorkingDirUrl

public java.lang.String getWorkingDirUrl()
OGNL: Get working directory web url for this configuration.

Returns:

getUrl

public java.lang.String getUrl()
OGNL: Get access URL for this configuration.

Returns:

getGuid

public java.lang.String getGuid()
OGNL: Get GUID of this configuration. Unique accross the world.

Returns:

setGuid

public void setGuid(java.lang.String guid)

getDependentContext

public DependentContext getDependentContext()

setDependentContext

public void setDependentContext(DependentContext dependentContext)


Copyright © 2005 PMEase Inc. All Rights Reserved.