The configuration file for the JIRA integration is named jira.properties
and is located in the INTEGRATION_HOME/configuration
directory. The sample configuration file that is included with the integration package contains the majority of the settings supported by the JIRA integration, along with examples and brief descriptions of the different settings used. The section below lists all of the settings available for use in the configuration file.
The jira.properties
file is a plain text file that can be edited with any simple text editor. Do not use Microsoft Word or other editors that may introduce special or non-plain text characters in the file. Lines that start with the #
character are considered comments and are ignored by the integration. Blank lines are also ignored. After making changes to the configuration file, make sure to stop and start the integration daemon in order for the changes to take effect.
The JIRA account and server URL used by the integration daemon to communicate with the JIRA system must be specified as follows:
jira.server = <JIRA server address and port>
jira.user = <JIRA user id>
jira.password = <JIRA user password>
For example:
jira.server = http://localhost:8080
jira.user = userid
jira.password = password
The ExtraView account and server URL that the integration daemon uses to communicate with the ExtraView system must be specified with the following configuration settings:
SERVER = <ExtraView site URL, ending in ev_api.action>
USER = <ExtraView account userid>
PASSWORD = <ExtraView account password>
For example:
SERVER = http://server.domain/evj/ExtraView/ev_api.action
USER = userid
PASSWORD = password
The JIRA and ExtraView fields required for the purposes of the integration (see the JIRA Configuration and ExtraView Configuration pages) must be specified with the following configuration settings:
EVID_FIELD = <JIRA field name>
JIRA_ID_FIELD = <ExtraView field name>
The EVID_FIELD
settings specifies the name of the JIRA field that stores the ExtraView record ID. The JIRA_ID_FIELD
setting specifies the name of the ExtraView field that stores the JIRA record ID. In addition, the DEFAULT_JIRA_PROJECT
and DEFAULT_JIRA_ISSUETYPE
settings indicate the JIRA Project name and Issue Type values to use when the integration daemon creates a new JIRA record from an ExtraView record. These setting are required to be defined in the configuration file.
DEFAULT_JIRA_PROJECT = <JIRA Project name>
DEFAULT_JIRA_ISSUETYPE = <JIRA Issue Type>
For example, the following settings define the required integration fields, with the default Project name of Bugs and Issue Type value of Bug:
EVID_FIELD = EV_ID
JIRA_ID_FIELD = JIRA_ID
DEFAULT_JIRA_PROJECT = Bugs
DEFAULT_JIRA_ISSUETYPE = Bug
The JIRA and ExtraView fields to be integrated must be specified in the configuration file with the following field mapping syntax:
jirafn.<JIRA field name> = evfn.<ExtraView field name>
The jirafn and evfn strings can be on either side of the equal sign, so the following syntax is equivalent:
evfn.<ExtraView field name> = jirafn.<JIRA field name>
For example, to integrate the JIRA Summary field with the ExtraView SHORT_DESCR field specify the following line:
jirafn.Summary = evfn.SHORT_DESCR
jirafn.Key = evfn.JIRA_ID
jirafn.EV_ID = evfn.ID
jirafn.Due\ Date = evfn.DUE_DATE
For mapped fields that are of list or enumerated type, the values need to be mapped one-to-one using the following syntax:
jirav.<JIRA field name>.<value> = evv.<ExtraView field name>.<value>
As with the field mapping, the jirav and evv strings can be on either side of the equal sign. For example, for the JIRA list field Status that is mapped to ExtraView UDF list field JIRA_STATUS, the following lines map the values between the two fields:
jirav.Status.Open = evv.JIRA_STATUS.Open
jirav.Status.In\ Progress = evv.JIRA_STATUS.In\ Progress
When mapping user fields (JIRA User Picker field type and ExtraView User field type) in the integration, and the usernames differ between the JIRA and ExtraView systems, then the mapping between users must be specified in the following format:
jirav.user.<JIRA user id> = evv.user.<ExtraView user id>
The jirav
and evv
strings can be on either side of the equal sign. For example:
jirav.user.adams = evv.user.asmith
When mapping JIRA fields of version type, such as the standard Affects Versions and Fix Versions fields or custom fields of Single Version Picker or Version Picker field type, the version values are associated to individual projects. The value mappings for all version type fields is specified in the following format:
jirav.<JIRA project key>|version.<JIRA value> = evv.version.<ExtraView value>
Note the use of the JIRA Project key concatenated with the | character and "version" word, to specify the project that the version value is associated with. For example:
jirav.BUG|version.1.0.0 = evv.version.1.0.0
To configure specific fields to be treated as read-only in either ExtraView or JIRA, thereby performing one-way propagation, the following configuration settings are to be used:
EXTRAVIEW_READONLY_FIELDS = <ExtraView field name>, <ExtraView field name>, ...
JIRA_READONLY_FIELDS = <JIRA field name>, <JIRA field name>, ...
The EXTRAVIEW_READONLY_FIELDS
setting specifies a list of ExtraView fields that are not to be updated by the integration daemon. The JIRA_READONLY_FIELDS
setting specifies a list of JIRA fields that are not to be updated by the integration daemon. Note that both of these settings specify a comma-delimited list of field names. For example, to ensure that the STATUS and SHORT_DESCR fields in ExtraView are not modified by the integration daemon from the mapped fields in JIRA, use the following configuration setting:
EXTRAVIEW_READONLY_FIELDS = STATUS, SHORT_DESCR
The integration daemon can be configured to assign default values to ExtraView fields when inserting new records into the ExtraView system, with the following syntax:
INSERT_VALUES.<ExtraView field name> = <value>
For example, to assign a value of JIRA for the field SOURCE in a new ExtraView issue, then add the following line to the configuration file:
INSERT_VALUES.SOURCE = JIRA
Records in the JIRA system can be filtered to be included in the integration based on two filtering options: field/regex and poll trigger. You may either use both filtering options or choose to configure only one of the two options. The field/regex option of filtering JIRA records is specified with the following two settings:
MJ_FIELD = <JIRA field name>
MJ_REGEX = <Regular expression>
The MJ_FIELD
setting specifies the name of the JIRA field to use in checking for a match of the JIRA record. The MJ_REGEX
setting specifies a regular expression that is applied to the value of the JIRA field specified by MJ_FIELD.
See the Regular Expressions Appendix for more information. If the JIRA record matches the regular expression for the field, then this record passes the filtering and is included in the integration; that is, it is propagated to ExtraView using the configured mappings. If the JIRA record does not match, then the poll trigger filtering option is used to determine whether the record is included in the integration. For example, the following settings filter JIRA records with a EV_ID
field value that contains one or more digits, indicated by [0-9]+
:
MJ_FIELD = EV_ID
MJ_REGEX = [0-9]+
The poll trigger option of filtering JIRA records is specified with the following single setting:
MJ_POLL_TRIGGER = <boolean/arithmetic expression>
The MJ_POLL_TRIGGER
setting specifies an expression containing boolean and/or arithmetic terms to be matched with JIRA records. The expression may include JIRA field names specified using the following syntax:
__<JIRA field name>__
See the Arithmetic/Boolean Expressions Appendix for more information. If the JIRA record matches the poll trigger expression, then this record passes the filtering and is included in the integration; that is, it is propagated to ExtraView using the configured mappings. If the JIRA record does not match, then the field/regex filtering option is used to determine whether the record is included in the integration. For example, the following setting filters JIRA records in the "Bugs" Project with a non-empty EV_ID
field value:
MJ_POLL_TRIGGER = "__Project__" eq "Bugs" && "__EV_ID__" ne ""
MJ_POLL_TRIGGER
setting, all text or non-numeric values as well as JIRA field names should be enclosed in quotes. Numeric values should not be quoted.MJ
prefix stands for Map JIRA, used for filtering JIRA records.The filtering of ExtraView records is very similar to the JIRA filtering mechanism, with different configuration settings. Records in the ExtraView system can be filtered to be included in the integration based on two filtering options: field/regex and poll trigger. You may either use both filtering options or choose to configure only one of the two options. The field/regex option of filtering ExtraView records is specified with the following two settings:
MI_FIELD = <ExtraView field name>
MI_REGEX = <Regular expression>
The MI_FIELD
setting specifies the name of the ExtraView field to use in checking for a match of the ExtraView record. The MI_REGEX
setting specifies a regular expression that is applied to the value of the ExtraView field specified by MI_FIELD
. See the Regular Expressions Appendix for more information. If the ExtraView record matches the regular expression for the field, then this record passes the filtering and is included in the integration; that is, it is propagated to JIRA using the configured mapping settings. If the ExtraView record does not match, then the poll trigger filtering option is used to determine whether the record is included in the integration. For example, the following settings filter ExtraView records with CATEGORY
field value that contains character B followed by any character (including none), as indicated by .*:
MI_FIELD = CATEGORY
MI_REGEX = B.*
The poll trigger option of filtering ExtraView records is specified with the following single setting:
MI_POLL_TRIGGER = <boolean/arithmetic expression>
The MI_POLL_TRIGGER
setting specifies an expression containing boolean and/or arithmetic terms to be matched with ExtraView records. The expression may include ExtraView field names specified using the following syntax:
__<ExtraView field name>__
See the Arithmetic/Boolean Expressions Appendix for more information. If the ExtraView record matches the poll trigger expression, then this record passes the filtering and is included in the integration; that is, it is propagated to JIRA using the configured mappings. If the ExtraView record does not match, then the field/regex filtering option is used to determine whether the record is included in the integration. For example, the following setting filters ExtraView records with STATUS
field values of either "New" or "Open":
MI_POLL_TRIGGER = "__STATUS__" eq "New" || "__STATUS__" eq "Open"
MI_POLL_TRIGGER
setting, all text or non-numeric values as well as ExtraView field names should be enclosed in quotes. Numeric values should not be quoted.The following optional settings control how the JIRA integration records information about its operations to a log file, which can be used for debugging and troubleshooting purposes. If these settings are not defined or are commented out in the configuration file, then the default values are used by the integration.
Setting | Default Value | Description |
DEFAULT_LOG_LEVEL | 6 | A number in the range of 1 to 12 that controls the amount of information written to the log file. Numbers higher than 6 are different debug levels, which write progressively detailed information as the number increases. |
LOG_DATE_FORMAT | yyyy-MM-dd | The date format to use in generating log records. |
LOG_TIME_FORMAT | kk:mm:ss | The time format to use in generating log records. |
LOG_FILE_MANAGE_SCRIPT | none | Name of a script to run when switching log files. |
LOG_FILE_MAX_RETAINED | -1 (infinite) | The maximum number of old log files retained, when switching from one log file to the next. |
LOG_FILE_MAX_SIZE | 10000 | This is the maximum size (in bytes) that the logger will permit the log file to grow before creating a new log file and archiving the old log file. |
LOG_FILE_DIR | logs | The directory name to use for storing the log file. |
LOG_FILE_NAME | error.log | The file name for the log file. |
LOG_FILE_DIR_ABSOLUTE | false | If "true", the directory name for the log file is absolute; if "false", the directory name is relative to the installation directory. |
LOG_FILE_PATH_NAME_ABSOLUTE | false | If "true", the file path name for the log file is absolute; if "false", the file path name is relative to the installation directory. |
LOG_TIME_AT_CREATION | false | If "true", the log file name is generated with a creation date/time string appended; if "false", the log file name is the default name. |
XML_LOG_FLAG | false | Defines log format: "true" is for XML format; "false" is for plain text. |
The integration daemon communicates with the JIRA and ExtraView systems on a periodic basis to query for newly updated or created records since the last time updates were processed (based on the JIRA_TIMESTAMP and EV_TIMESTAMP settings stored in the state.properties file, described in the Running the Integration Daemon page). The polling period for each of the systems can be controlled with the following configuration settings: EVPOLLWAITTIME
defines the number of milliseconds between subsequent queries to the ExtraView system, that is how often to poll the ExtraView system for changes. The default value is 10000 (10 seconds). For example, to have the integration daemon check ExtraView for changes every 30 seconds, use the following setting:
EVPOLLWAITTIME = 30000
POLLWAITTIME
defines the number of milliseconds between queries to the JIRA system. The default value is 10000 (10 seconds). For example, to have the integration daemon query the JIRA system for updates every minute, use the following setting:
POLLWAITTIME = 60000
All files attached to records in JIRA and ExtraView are automatically propagated between the systems, by default. However, the ATTACHMENT_UPSERT
configuration setting can be used to control this behavior.
ATTACHMENT_UPSERT = <YES|NO>
For example, to bypass attachments synchronization during record updates, use the following setting:
ATTACHMENT_UPSERT = NO