com.atlassian.bamboo.utils
Class SystemProperty

java.lang.Object
  extended by com.atlassian.bamboo.utils.SystemProperty
Direct Known Subclasses:
SystemProperty.IntegerSystemProperty

public class SystemProperty
extends java.lang.Object

This class represents system properties as constants. The system / environmental constants resolution order goes:

  1. System.getProperty (so any -Dproperty=hello will take precedent)
  2. System.getenv() (works only on JDK 1.5)
  3. Ant's Execute.getProcEnvironment() (should work for all JDKs)


Nested Class Summary
static class SystemProperty.IntegerSystemProperty
           
 
Field Summary
static SystemProperty ALLOW_UNSUPPORTED_DB
          Whether the user can select an unsupported database or not.
static SystemProperty ANT_HOME
          Location of ANT
static SystemProperty ARTIFACT_COMPRESSION_DARK_FEATURE
          Makes artifacts and logs compression tied to the global compression configuration.
static SystemProperty ARTIFACT_HANDLER_DARK_FEATURE
          Turns on the artifact handler UI.
static SystemProperty ARTIFACT_SIZE_LIMIT_PER_BUILD
           
static SystemProperty ATLASSIAN_DEV_MODE
           
static SystemProperty BAMBOO_DELETION_ENABLED
          If this is set to 'false' then the background deletion service will not delete objects within Bamboo that are ImmutableDeletable.isMarkedForDeletion() This is only useful for support purposes
static SystemProperty BAMBOO_FREEMARKER_DEBUG
          Unlocks different aspects of Freemarker debug output: - output template names as html comments (BAM-8006)
static SystemProperty BAMBOO_HOME_FROM_ENV
          Location of Bamboo Home
static java.lang.String BAMBOO_HOME_PROPERTY_NAME
           
static SystemProperty BAMBOO_HOSTED_MODE
          Executes Bamboo in hosted mode
static SystemProperty BAMBOO_HOSTED_TEST_MODE
          Executes Bamboo in hosted mode for functional tests
static SystemProperty BAMBOO_MAX_AGENTS_LOADING
          Specifies the maximum amount of remote agents able to load at one time
static SystemProperty BAMBOO_RELOAD_AGENT_CLASSPATH
          When set causes the classpath.zip of the Jar Remote class loader to be reset for each agent startup
static SystemProperty BAMBOO_REQUEST_PROFILING
           
static SystemProperty BUILD_FAILED_MARKER
          Text the builders will look for when checking for build failure, currently only used by ant builder
static SystemProperty BUILD_PARENT_JAVA_IO_TMPDIR
          Parent directory for temporary directories created for builds.
static SystemProperty BUILD_RESULTS_CACHE_SIZE
          Make the buildresults cache configurable
static SystemProperty BUILD_SUCCESSFUL_MARKER
          Text the builders will look for when checking for build success.
static SystemProperty BUILDING_DISABLED
          Disable building plans globally in Bamboo
static SystemProperty CVS_CHECKOUT_FORMAT
          CVS checkout format, the default behavior is to checkout in BINARY format, although this can be overidden with either TEXT or NONE
static SystemProperty CVS_FORCE_CHECKOUT_TO_LATEST
          A flag that forces Bamboo's CVS repository to checkout to the latest of that particular branch / HEAD, rather than using the -d flag, which seems to have compatibility issues in some cases.
static int CVS_SOCKET_TIMEOUT_MS
          A socket level timeout in milli-seconds for all CVS connections.
static SystemProperty CVS_TIME_DIFF
          The CVS Server's time offset in minutes if different to Bamboo Server
static SystemProperty DEFAULT_CVS_ROOT
          Default CVS Root (CVS server!)
static SystemProperty DEFAULT_P4_EXE
          Default Perforce p4 executable
static SystemProperty DEFAULT_PERFORCE_CLIENT
          Default Perforce Client
static SystemProperty DEFAULT_PERFORCE_PORT
          Default Perforce Port (Perforce server!)
static SystemProperty DEFAULT_PERFORCE_USER
          Default Perforce User
static SystemProperty DIRECTORY_SCANNING_PLUGIN_SCAN_DIR
          An optional directory to attempt to load additional plugins from.
static SystemProperty DISABLE_AGENT_AUTO_CAPABILITY_DETECTION
          Prevents agents from automatically overriding remote agent capabilities on new startup
static SystemProperty DISABLE_BRANCH_DETECTION
           
static SystemProperty DISABLE_CLOSED_BRANCH_DETECTION
           
static SystemProperty EC2_IGNORE_CERT_CHECK
          Allow EC2 agents to ignore invalid certificates, if not using the tunnel
static SystemProperty EC2_TUNNEL_ENABLED
          Whether to enable Tunnel for http traffic two and from the agents.
static SystemProperty ELASTIC_AGENT_LOG_AWS_ID
          If it is set to a valid AWS id, it will be used to authenticate to S3 and copy logs there upon shutdown

Default : empty Usage: env : bamboo.ec2.agentLogAwsId=XXXXXXX java: -Dbamboo.ec2.agentLogAwsId=XXXXXXX

static SystemProperty ELASTIC_AGENT_LOG_AWS_SECRET
          If it is set to a valid AWS id, it will be used to authenticate to S3 and copy logs there upon shutdown

Default : empty Usage: env : bamboo.ec2.agentLogSecret=XXXXXXX java: -Dbamboo.ec2.agentLogSecret=XXXXXXX

static SystemProperty ELASTIC_IMAGE_AMI_ID
          Lets you over ride the default elastic images used
static SystemProperty EVENT_MANAGER_CORE_POOL_SIZE
          Optional property for tuning core pool size in Bamboo Event Manager
static SystemProperty EVENT_MANAGER_MAXIMUM_POOL_SIZE
          Optional property for tuning maximum pool size in Bamboo Event Manager
static SystemProperty EXPORT_WAIT_FOR_SERVER_PAUSE_SLEEP
          Period between checks of the Server state when export is waiting for the server to pause.
static SystemProperty EXPORT_WAIT_FOR_SERVER_PAUSE_TIMEOUT
          Timeout period to wait for running jobs to all be paused before running an export.
static SystemProperty FILE_UPLOAD_MAXIMUM_SIZE
          Maximum size of uploaded files in megabytes
static SystemProperty FILTER_MAVEN_LOG_FOR_DOWNLOAD_STATUS
          Filter out Maven artifact download progress status message in build log.
static SystemProperty FIND_SUCCESS_MESSAGE_IN_LAST
          Number of lines for builders to look back to guarantee build successful.
static SystemProperty FIRE_INITAL_BUILD_FOR_MANUAL_STRATEGY
          Fire initial build automatically for manual build strategy on build creation
static SystemProperty.IntegerSystemProperty FS_TIMESTAMP_RESOLUTION_MS
          Defines the worst case resolution of times stored on filesystem.
static SystemProperty HG_CHANGE_SET_LIMIT
           
static SystemProperty HG_COMMAND_FORCE_DEBUG
          Whether mercurial plans output more verbose logs from hg commands.
static SystemProperty.IntegerSystemProperty LOG_LINES_FOR_NOTIFICATIONS
          Lets you control how much information is showed in notifications
static SystemProperty MAVEN_HOME
          Location of MAVEN 1
static SystemProperty MAVEN2_HOME
          Location of MAVEN 2
static SystemProperty MAX_VCS_OPERATION_RETRIES
          Overrides the maximum number of retries for operations that fail.
static SystemProperty NEW_APPSWITCHER_DARK_FEATURE
          Turns on the new appswitcher
static SystemProperty PATH
          The system PATH variable.
static boolean PATH_SET_ALLOWED
          Whenever arbitrary path for export and backup allowed
static SystemProperty PDL_DARK_FEATURE
          Turns on the PDL and related stuff
static SystemProperty PLAN_EXECUTION_DETECTION_THREADS
          Allows for the pool size for change detection to be modified.
static SystemProperty ROTP_ADMIN_SHORTCUTS_DARK_FEATURE
          Turns on the ROTP admin shortcuts
static SystemProperty ROTP_DARK_FEATURE
          Turns on the ROTP header and related stuff
static SystemProperty ROTP_PROJECT_SHORTCUTS_DARK_FEATURE
          Turns on the ROTP project shortcuts
static SystemProperty SEARCH_BUILD_SUCCESS_FAIL_MESSAGE_EVERYWHERE
          A workaround for BAM-4069, allows us to search for build successful/failed messages.
static SystemProperty SEND_FILE_NAMES_TO_AGENT
          If your agent side plugins rely on presence of file names in BuildContext, set this property to true.
static SystemProperty SVN_CACHE_CREDENTIALS
          SVN authentication caching
static SystemProperty SVN_SPOOL_TO_FILE
          SVN client to use temporary file for spooling repository files
static SystemProperty SVN_WC_FORMAT
          Deprecated. 
 
Constructor Summary
  SystemProperty(boolean mandatory, java.lang.String... properties)
          Creates an instance containing the value of the given property - logs an error if it cannot be found
protected SystemProperty(java.lang.String property, boolean mandatory, org.apache.log4j.Logger log)
          Used in testing
 
Method Summary
 boolean exists()
           
protected static java.lang.String getEnvironmentVariable(java.lang.String variable, boolean mandatory)
          Obtain the specified environment variable.
 java.lang.String getKey()
          Obtain the key used to find this property
 java.lang.String getValue()
          Obtain the value of this proprty
 boolean getValue(boolean defaultValue)
          Obtain the boolean property value
 int getValue(int defaultValue)
           
 long getValue(long defaultValue)
           
 java.lang.String getValue(java.lang.String defaultValue)
          Obtain the value of the property (returns the default value if the environment variable has not been defined.
 void setValue(java.lang.String propertyValue)
          So the setting can be set by a test
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BAMBOO_HOME_PROPERTY_NAME

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

BAMBOO_HOME_FROM_ENV

public static final SystemProperty BAMBOO_HOME_FROM_ENV
Location of Bamboo Home


MAVEN_HOME

public static final SystemProperty MAVEN_HOME
Location of MAVEN 1


MAVEN2_HOME

public static final SystemProperty MAVEN2_HOME
Location of MAVEN 2


ANT_HOME

public static final SystemProperty ANT_HOME
Location of ANT


DEFAULT_CVS_ROOT

public static final SystemProperty DEFAULT_CVS_ROOT
Default CVS Root (CVS server!)


DEFAULT_PERFORCE_PORT

public static final SystemProperty DEFAULT_PERFORCE_PORT
Default Perforce Port (Perforce server!)


DEFAULT_PERFORCE_CLIENT

public static final SystemProperty DEFAULT_PERFORCE_CLIENT
Default Perforce Client


DEFAULT_PERFORCE_USER

public static final SystemProperty DEFAULT_PERFORCE_USER
Default Perforce User


DEFAULT_P4_EXE

public static final SystemProperty DEFAULT_P4_EXE
Default Perforce p4 executable


FIND_SUCCESS_MESSAGE_IN_LAST

public static final SystemProperty FIND_SUCCESS_MESSAGE_IN_LAST
Number of lines for builders to look back to guarantee build successful.


BUILD_SUCCESSFUL_MARKER

public static final SystemProperty BUILD_SUCCESSFUL_MARKER
Text the builders will look for when checking for build success.


BUILD_FAILED_MARKER

public static final SystemProperty BUILD_FAILED_MARKER
Text the builders will look for when checking for build failure, currently only used by ant builder


SEARCH_BUILD_SUCCESS_FAIL_MESSAGE_EVERYWHERE

public static final SystemProperty SEARCH_BUILD_SUCCESS_FAIL_MESSAGE_EVERYWHERE
A workaround for BAM-4069, allows us to search for build successful/failed messages.


DISABLE_AGENT_AUTO_CAPABILITY_DETECTION

public static final SystemProperty DISABLE_AGENT_AUTO_CAPABILITY_DETECTION
Prevents agents from automatically overriding remote agent capabilities on new startup


SVN_SPOOL_TO_FILE

public static final SystemProperty SVN_SPOOL_TO_FILE
SVN client to use temporary file for spooling repository files


BUILDING_DISABLED

public static final SystemProperty BUILDING_DISABLED
Disable building plans globally in Bamboo


PATH

public static final SystemProperty PATH
The system PATH variable. Needed so we can append to it


CVS_TIME_DIFF

public static final SystemProperty CVS_TIME_DIFF
The CVS Server's time offset in minutes if different to Bamboo Server


CVS_CHECKOUT_FORMAT

public static final SystemProperty CVS_CHECKOUT_FORMAT
CVS checkout format, the default behavior is to checkout in BINARY format, although this can be overidden with either TEXT or NONE

See Also:
Issues with CVS

  • Default : BINARY
  • Usage :
    • env : CVS_CHECKOUT_FORMAT=[TEXT|BINARY|NONE]
    • java: -DCVS_CHECKOUT_FORMAT=[TEXT|BINARY|NONE]

CVS_FORCE_CHECKOUT_TO_LATEST

public static final SystemProperty CVS_FORCE_CHECKOUT_TO_LATEST
A flag that forces Bamboo's CVS repository to checkout to the latest of that particular branch / HEAD, rather than using the -d flag, which seems to have compatibility issues in some cases.

See Also:
BAM-2542
  • Default : false
  • Usage :
    • env : CVS_FORCE_CHECKOUT_TO_LATEST="true"
    • java: -DCVS_FORCE_CHECKOUT_TO_LATEST="true"

CVS_SOCKET_TIMEOUT_MS

public static final int CVS_SOCKET_TIMEOUT_MS
A socket level timeout in milli-seconds for all CVS connections. The specified value will be set on all Socket.setSoTimeout(int)


BUILD_RESULTS_CACHE_SIZE

public static final SystemProperty BUILD_RESULTS_CACHE_SIZE
Make the buildresults cache configurable


FILTER_MAVEN_LOG_FOR_DOWNLOAD_STATUS

public static final SystemProperty FILTER_MAVEN_LOG_FOR_DOWNLOAD_STATUS
Filter out Maven artifact download progress status message in build log.
If set to false all messages from maven are displayed.


SVN_WC_FORMAT

@Deprecated
public static final SystemProperty SVN_WC_FORMAT
Deprecated. 
     * Default format of SVN workspaces Deprecated since 4.3 and 4.2.1 - instead use Administration->RepositorySettings configuration      *

     *

    


SVN_CACHE_CREDENTIALS

public static final SystemProperty SVN_CACHE_CREDENTIALS
SVN authentication caching


LOG_LINES_FOR_NOTIFICATIONS

public static final SystemProperty.IntegerSystemProperty LOG_LINES_FOR_NOTIFICATIONS
Lets you control how much information is showed in notifications


FS_TIMESTAMP_RESOLUTION_MS

public static final SystemProperty.IntegerSystemProperty FS_TIMESTAMP_RESOLUTION_MS
Defines the worst case resolution of times stored on filesystem. Java provides accesse only to the modification time.


SEND_FILE_NAMES_TO_AGENT

public static final SystemProperty SEND_FILE_NAMES_TO_AGENT
If your agent side plugins rely on presence of file names in BuildContext, set this property to true. Default: false.


ELASTIC_IMAGE_AMI_ID

public static final SystemProperty ELASTIC_IMAGE_AMI_ID
Lets you over ride the default elastic images used


EC2_TUNNEL_ENABLED

public static final SystemProperty EC2_TUNNEL_ENABLED
Whether to enable Tunnel for http traffic two and from the agents. Defaults to true


EC2_IGNORE_CERT_CHECK

public static final SystemProperty EC2_IGNORE_CERT_CHECK
Allow EC2 agents to ignore invalid certificates, if not using the tunnel


FIRE_INITAL_BUILD_FOR_MANUAL_STRATEGY

public static final SystemProperty FIRE_INITAL_BUILD_FOR_MANUAL_STRATEGY
Fire initial build automatically for manual build strategy on build creation


ALLOW_UNSUPPORTED_DB

public static final SystemProperty ALLOW_UNSUPPORTED_DB
Whether the user can select an unsupported database or not.


PATH_SET_ALLOWED

public static final boolean PATH_SET_ALLOWED
Whenever arbitrary path for export and backup allowed


BUILD_PARENT_JAVA_IO_TMPDIR

public static final SystemProperty BUILD_PARENT_JAVA_IO_TMPDIR
Parent directory for temporary directories created for builds. Defaults to System.getProperty("java.io.tmpdir")


EVENT_MANAGER_CORE_POOL_SIZE

public static final SystemProperty EVENT_MANAGER_CORE_POOL_SIZE
Optional property for tuning core pool size in Bamboo Event Manager


EVENT_MANAGER_MAXIMUM_POOL_SIZE

public static final SystemProperty EVENT_MANAGER_MAXIMUM_POOL_SIZE
Optional property for tuning maximum pool size in Bamboo Event Manager


HG_COMMAND_FORCE_DEBUG

public static final SystemProperty HG_COMMAND_FORCE_DEBUG
Whether mercurial plans output more verbose logs from hg commands.


DIRECTORY_SCANNING_PLUGIN_SCAN_DIR

public static final SystemProperty DIRECTORY_SCANNING_PLUGIN_SCAN_DIR
An optional directory to attempt to load additional plugins from. Must be a directory readable to the process.


ELASTIC_AGENT_LOG_AWS_ID

public static final SystemProperty ELASTIC_AGENT_LOG_AWS_ID
If it is set to a valid AWS id, it will be used to authenticate to S3 and copy logs there upon shutdown


ELASTIC_AGENT_LOG_AWS_SECRET

public static final SystemProperty ELASTIC_AGENT_LOG_AWS_SECRET
If it is set to a valid AWS id, it will be used to authenticate to S3 and copy logs there upon shutdown


BAMBOO_DELETION_ENABLED

public static final SystemProperty BAMBOO_DELETION_ENABLED
If this is set to 'false' then the background deletion service will not delete objects within Bamboo that are ImmutableDeletable.isMarkedForDeletion() This is only useful for support purposes


BAMBOO_RELOAD_AGENT_CLASSPATH

public static final SystemProperty BAMBOO_RELOAD_AGENT_CLASSPATH
When set causes the classpath.zip of the Jar Remote class loader to be reset for each agent startup


BAMBOO_MAX_AGENTS_LOADING

public static final SystemProperty BAMBOO_MAX_AGENTS_LOADING
Specifies the maximum amount of remote agents able to load at one time


BAMBOO_FREEMARKER_DEBUG

public static final SystemProperty BAMBOO_FREEMARKER_DEBUG
Unlocks different aspects of Freemarker debug output: - output template names as html comments (BAM-8006)


MAX_VCS_OPERATION_RETRIES

public static final SystemProperty MAX_VCS_OPERATION_RETRIES
Overrides the maximum number of retries for operations that fail. bamboo.vcs.retries


PLAN_EXECUTION_DETECTION_THREADS

public static final SystemProperty PLAN_EXECUTION_DETECTION_THREADS
Allows for the pool size for change detection to be modified.


ARTIFACT_HANDLER_DARK_FEATURE

public static final SystemProperty ARTIFACT_HANDLER_DARK_FEATURE
Turns on the artifact handler UI.


ARTIFACT_COMPRESSION_DARK_FEATURE

public static final SystemProperty ARTIFACT_COMPRESSION_DARK_FEATURE
Makes artifacts and logs compression tied to the global compression configuration.


ROTP_DARK_FEATURE

public static final SystemProperty ROTP_DARK_FEATURE
Turns on the ROTP header and related stuff


ROTP_PROJECT_SHORTCUTS_DARK_FEATURE

public static final SystemProperty ROTP_PROJECT_SHORTCUTS_DARK_FEATURE
Turns on the ROTP project shortcuts


ROTP_ADMIN_SHORTCUTS_DARK_FEATURE

public static final SystemProperty ROTP_ADMIN_SHORTCUTS_DARK_FEATURE
Turns on the ROTP admin shortcuts


PDL_DARK_FEATURE

public static final SystemProperty PDL_DARK_FEATURE
Turns on the PDL and related stuff


NEW_APPSWITCHER_DARK_FEATURE

public static final SystemProperty NEW_APPSWITCHER_DARK_FEATURE
Turns on the new appswitcher


BAMBOO_HOSTED_MODE

public static final SystemProperty BAMBOO_HOSTED_MODE
Executes Bamboo in hosted mode


BAMBOO_HOSTED_TEST_MODE

public static final SystemProperty BAMBOO_HOSTED_TEST_MODE
Executes Bamboo in hosted mode for functional tests


HG_CHANGE_SET_LIMIT

public static final SystemProperty HG_CHANGE_SET_LIMIT

ARTIFACT_SIZE_LIMIT_PER_BUILD

public static final SystemProperty ARTIFACT_SIZE_LIMIT_PER_BUILD

DISABLE_BRANCH_DETECTION

public static final SystemProperty DISABLE_BRANCH_DETECTION

DISABLE_CLOSED_BRANCH_DETECTION

public static final SystemProperty DISABLE_CLOSED_BRANCH_DETECTION

ATLASSIAN_DEV_MODE

public static final SystemProperty ATLASSIAN_DEV_MODE

BAMBOO_REQUEST_PROFILING

public static final SystemProperty BAMBOO_REQUEST_PROFILING

EXPORT_WAIT_FOR_SERVER_PAUSE_SLEEP

public static final SystemProperty EXPORT_WAIT_FOR_SERVER_PAUSE_SLEEP
Period between checks of the Server state when export is waiting for the server to pause.


EXPORT_WAIT_FOR_SERVER_PAUSE_TIMEOUT

public static final SystemProperty EXPORT_WAIT_FOR_SERVER_PAUSE_TIMEOUT
Timeout period to wait for running jobs to all be paused before running an export.


FILE_UPLOAD_MAXIMUM_SIZE

public static final SystemProperty FILE_UPLOAD_MAXIMUM_SIZE
Maximum size of uploaded files in megabytes

Constructor Detail

SystemProperty

public SystemProperty(boolean mandatory,
                      java.lang.String... properties)
Creates an instance containing the value of the given property - logs an error if it cannot be found

Parameters:
mandatory - Is the property mandatory or optional?
properties - The property we're loading from the environment (first name found will be loaded)

SystemProperty

protected SystemProperty(java.lang.String property,
                         boolean mandatory,
                         org.apache.log4j.Logger log)
Used in testing

Parameters:
property - The property we're loading from the environment
mandatory - Is the property mandatory or optional?
log - The logger we're logging errors to
Method Detail

getValue

@Nullable
public java.lang.String getValue()
Obtain the value of this proprty

Returns:
The value (null if the environment variable has not been defined)

getKey

public java.lang.String getKey()
Obtain the key used to find this property

Returns:
The key (null if environment variable has not been defined)

getValue

@NotNull
public java.lang.String getValue(@NotNull
                                         java.lang.String defaultValue)
Obtain the value of the property (returns the default value if the environment variable has not been defined.

Parameters:
defaultValue - The default value, if the environment variable has not been defined
Returns:
The value of the property

getValue

public boolean getValue(boolean defaultValue)
Obtain the boolean property value

Parameters:
defaultValue - The default value, if the environment variable has not been defined
Returns:
The value of the property

getEnvironmentVariable

@Nullable
protected static java.lang.String getEnvironmentVariable(@NotNull
                                                                  java.lang.String variable,
                                                                  boolean mandatory)
Obtain the specified environment variable. An error is logged if a mandatory value does not exist.

Parameters:
variable - The variable we require
mandatory - Is this a mandatory property?
Returns:
The value of the variable, null if not found

setValue

public void setValue(java.lang.String propertyValue)
So the setting can be set by a test

Parameters:
propertyValue - The value required by the test

exists

public boolean exists()

getValue

public int getValue(int defaultValue)

getValue

public long getValue(long defaultValue)


Copyright © 2013 Atlassian Software Systems Pty Ltd. All Rights Reserved.