Package com.javahollic.jira.emh.api
Interface IJEMHVelocityContextUtils
-
public interface IJEMHVelocityContextUtils
Velocity Context helper interface, accessed vie email templates, used to inhibit mail sending, for now.. published url: http://ppl-docs.s3-website-us-east-1.amazonaws.com/JEMH/3.0.0/com/javahollic/jira/emh/api/IJEMHVelocityContextUtils.html- Author:
- andy
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
IJEMHVelocityContextUtils.AllowList
static class
IJEMHVelocityContextUtils.InlineImageEncodingType
-
Field Summary
Fields Modifier and Type Field Description static String
ADDITIONAL_ATTACHMENTS
static String
ADDITIONAL_CC
static String
ADDITIONAL_RECIPIENT_ADDRESS
static String
ADDITIONAL_TO
static String
X_JEMH_ADHOC_PREFIX
used to prefix mail header keys themselves, used to avoid conflicts for issue attributesstatic String
X_JEMH_RAW_PREFIX
unlike the above, this is only used to uniquely store 'raw' mail headers in the 'map' prior to application
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addAdditionalResultSet(Map<String,Object> resultSet)
Method to add additional ResultSets created by the scriptvoid
addIndividualRecipientAddress(String addressCsv)
* Adds an individual address to recipients list to a Non Jira User Template set in Non Jira user notification Project Mapping found in Notificationsvoid
addIndividualRecipientGroup(String groupName)
Adds users in a Group to the recipients list to a Jira User Issue Event Template set in the Jira user notification Project Mapping found in Notifications 1void
addIndividualRecipientUser(String username)
Adds an individual user to recipients list to a Non Jira User Template found in the Non Jira user notification Project Mapping found in Notificationsvoid
addMailHeader(String key, String value)
Adds a mail header to the outgoing mail.void
addRawMailHeader(String key, String value)
Adds a mail header that is not prefixed.void
addRecipientAddress(String recipientType, String addressCsv)
Adds recipients through CSV SMTP addressvoid
addRecipientGroup(String recipientType, String groupName)
Adds recipients from a given Jira groupvoid
addRecipientsFromRole(String recipientType, String issueKey, com.atlassian.jira.project.Project project, String roleName)
Add recipients based on Role membershipString
addStaticResourceAttachment(com.atlassian.jira.project.Project project, Integer id)
Add a static resource (scoped to project) by its IdString
addStaticResourceAttachment(Integer id)
Add a global (unscoped) static resource by its Id.javax.mail.internet.InternetAddress
createInternetAddress(String personal, String address)
Creates a new Internet addresscom.atlassian.jira.util.json.JSONObject
createJSONFromSource(String jsonSource)
Genreates a https://docs.atlassian.com/software/jira/docs/api/9.11.0/com/atlassian/jira/util/json/JSONObject.html from source JSON.Map<String,Object>
createResultSet()
Enable scripts to create multiple issue,by creating an additional (possibly many) new result sets containing key/value paris as usualList<Map<String,Object>>
createResultSetForAdditionalMailboxAddresses()
Creates a List of Result Maps for every matching Catch Email Address in the email (except the initial Catch Email address).void
dropAndExitGroupMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be dropped immediately with no further processing and exits processing if within a profile groupvoid
dropMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be dropped immediately with no further processingvoid
filterMessage(String reason)
During Script Field Processor handling of a message, allows a given message to not be processed but filtered (like drop), here for completeness and differentation to dropString
filterText(String text)
void
forwardMessage(String reason)
During Script Field Processor handling of a message, allows a given message to not be processed but forwarded to the Profile defined 'Forward' userSet<javax.mail.internet.InternetAddress>
getAdditionalAddressRecipients()
Accessor for Set of additional Internet Addresses related to an email only user to be added to the recipient listSet<String>
getAdditionalRecipientGroups()
Accessor for Set of additional Internet Addresses related to a Jira user entity in a named Group to be added to the recipient listSet<javax.mail.internet.InternetAddress>
getAdditionalUserRecipients()
Accessor for Set of additional Internet Addresses related to a Jira user entity to be added to the recipient listString
getCalData()
Get the content of the text/calendar message partjavax.mail.internet.InternetAddress
getCatchEmailAddress()
Properties
getCommentProperties(com.atlassian.jira.issue.comments.Comment comment)
Get comment propertiesMap<String,Integer>
getImageCidMap()
Internal useString
getInhibitSendingReason()
Gets the reason that was possibly set by the processing script why this message was inhibited for sendingcom.atlassian.jira.issue.context.IssueContext
getIssueContext(Long projectId, String issueTypeId)
IJEMHJsdApiUtils
getJsdApiUtils()
IJEMHLdapVelocityContextUtil
getLdap()
Create an Ldap helper that enables querying through LDAP configurations selected in the ProfileIJEMHLdapVelocityContextUtil
getLdap(int ldapConfigId)
com.atlassian.jira.util.I18nHelper
getLocaleI18nBean(String localeIn)
Get a specific locale i18n helperjavax.mail.Message
getMessage()
String
getMessageBody(javax.mail.Message message)
Get the body (according to htmL to wiki conversion configuration in the Profile)String
getMessagePartText(String contentType)
List<javax.mail.Message>
getMessageSubParts(javax.mail.internet.MimeMessage parentMessage)
Get the child attachment Parts that are message/rfc822List<javax.mail.internet.InternetAddress>
getOriginalAddressees(PreProcHeaderBean headerBean)
Returns list of the Internet Addresses from specific headerMap<String,List<String>>
getParams()
Accessor for Map of value keys to list of valuescom.javahollic.jira.emh.api.ao.IJEMHFPAuditEventEntiyDef.ProcessingOutcome
getProcessOutcome()
Accessor method to get script driven outcome of message processing that would override future processing/outcome.com.atlassian.jira.issue.context.ProjectContext
getProjectContext(Long projectId)
Set<String>
getReferencedMessageIds()
Getter referenced Message ID's from the message objectString
getRejectReason()
Get the message that may be set to describe why a message was rejected, ends up in audit record.RequestTypeBean
getRequestType(String requestTypeKey)
Returns a RequestTypeBean which holds properties of the Customer request type such as Name and DescriptionCollection<Map<String,Object>>
getResultSets()
Accessor method to expose any additional ResultSets created by the scriptTimeZone
getTimeZone(String location)
URI
getUserAvatarURL(com.atlassian.jira.user.ApplicationUser user, int size)
Enable the URI of a user avatar to be retrieved for inliningcom.atlassian.jira.user.ApplicationUser
getUserByEmail(String emailStr)
Helper method to bet a Usercom.atlassian.jira.user.ApplicationUser
getUserByEmail(javax.mail.internet.InternetAddress address)
Helper method to get a UserString
hash(String stringToEncrypt)
Function to allow hashing of arbitrary content, eg summary, eg description, for storing in custom fields, to potentially detect future resends of same content/description even after the initial issue was editedboolean
hasPermission(String permission, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser user)
Checks the permission scheme only to determine if the specified user has a particular project permission.boolean
hasWorkflowPermission(String permission, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser user)
Checks both the permission scheme and the issue's workflow properties to determine if the specified user has a particular project permission.com.atlassian.jira.util.json.JSONObject
invokeLocalAnonRest(String path)
Make an anonymous HTTP request relative to the local Jira pathcom.atlassian.jira.util.json.JSONObject
invokeLocalRest(String path)
Make a HTTP request relative to the local Jira pathboolean
isAttachmentPresent(javax.mail.Message message, String filename)
Deprecated.since 3.3.14 and will be removed, useisAttachmentPresent(Message, String, boolean)
insteadboolean
isAttachmentPresent(javax.mail.Message message, String filename, boolean isRegex)
boolean
isCustomFieldChanged(com.atlassian.jira.event.issue.IssueEvent issueEvent, String cfId)
Used to determine during outbound processing, whether the given custom field id was in a ChildChangeItem of the eventboolean
isInhibitSending()
determine if the outcome of the script is to inhibit sending of 'this' notificationboolean
isPrivateJSDComment(com.atlassian.jira.mail.TemplateUser contextTemplateUser, com.atlassian.jira.issue.comments.Comment c)
Helper method to determine if a comment is JSD private, which is required during actual mail sendingboolean
isPrivateJSDComment(com.atlassian.jira.user.ApplicationUser contextUser, com.atlassian.jira.issue.comments.Comment c)
Helper method to determine if a comment is JSD private<T> T
loadComponent(String interfaceOrClassName)
As the previous context $jirautils was removed for security reasons the loadComponent functionality may still be required.void
log(String msg)
Log an INFO message to the JEMH log filevoid
log(String level, String msg)
Output a message to the JEMH log filevoid
rejectMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be rejected to the initator, with the given reasonString
renderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id)
Render a given static resource image (scoped to the given project) inline.String
renderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id, String type)
Render a given static resource image (scoped to the given project) inline.String
renderStaticResourceImage(Integer id)
Render a given static resource image (unscoped) inline.com.atlassian.jira.util.json.JSONObject
request(Map<String,Object> options)
Perform a custom HTTP requestvoid
setInhibitSending(boolean val)
Used during sending messages to inhibit sending, specifically needed due to split phase issue creation/update to enable ignoring ISSUE_CREATED events when JEMH has not yet added attachments to the issue, that are potentially required later.void
setInhibitSendingReason(String reason)
Sets a reason, retained in the audit entry to indicate why this message was inhibited for sendingvoid
updatePreProcHeader(String newValue, PreProcHeaderBean headerBean)
Updates specific header with the provided valuePreProcHeaderBean
updatePreProcHeader(List<javax.mail.internet.InternetAddress> addresses, PreProcHeaderBean headerBean)
Updates specific header with the list of Internet addressesString
urlencode(String incoming)
Helper method to urlencode(UTF-8) a string in Java context:
-
-
-
Field Detail
-
X_JEMH_ADHOC_PREFIX
static final String X_JEMH_ADHOC_PREFIX
used to prefix mail header keys themselves, used to avoid conflicts for issue attributes- See Also:
- Constant Field Values
-
X_JEMH_RAW_PREFIX
static final String X_JEMH_RAW_PREFIX
unlike the above, this is only used to uniquely store 'raw' mail headers in the 'map' prior to application- See Also:
- Constant Field Values
-
ADDITIONAL_TO
static final String ADDITIONAL_TO
- See Also:
- Constant Field Values
-
ADDITIONAL_CC
static final String ADDITIONAL_CC
- See Also:
- Constant Field Values
-
ADDITIONAL_ATTACHMENTS
static final String ADDITIONAL_ATTACHMENTS
- See Also:
- Constant Field Values
-
ADDITIONAL_RECIPIENT_ADDRESS
static final String ADDITIONAL_RECIPIENT_ADDRESS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getCalData
String getCalData()
Get the content of the text/calendar message part- Returns:
- the content as a String.
-
isAttachmentPresent
boolean isAttachmentPresent(javax.mail.Message message, String filename, boolean isRegex)
- Parameters:
message
- the email message to look for attachments in (typically the 'message' script context variable)filename
- limits search to attachments with a matching filename, leave null to search for any attachmentisRegex
- whether the given filename String is to be considered a Regular Expression or not- Returns:
- true if the message contains an attachment (matching given filename if provided), false otherwise
-
isAttachmentPresent
@Deprecated boolean isAttachmentPresent(javax.mail.Message message, String filename)
Deprecated.since 3.3.14 and will be removed, useisAttachmentPresent(Message, String, boolean)
instead- Parameters:
message
- the email message to look for attachments in (typically the 'message' script context variable)filename
- limits search to attachments with a matching filename, leave null to search for any attachment- Returns:
- true if the message contains an attachment (matching given filename if provided), false otherwise
-
hasWorkflowPermission
boolean hasWorkflowPermission(String permission, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser user)
Checks both the permission scheme and the issue's workflow properties to determine if the specified user has a particular project permission.- Parameters:
permission
- the short name of a corresponding project permissionissue
- the target issueuser
- the user to check permissions for- Returns:
- true if the given permission name is valid and the user has that permission, false otherwise
- See Also:
- Checking project permissions
-
hasPermission
boolean hasPermission(String permission, com.atlassian.jira.issue.Issue issue, com.atlassian.jira.user.ApplicationUser user)
Checks the permission scheme only to determine if the specified user has a particular project permission.- Parameters:
permission
- the short name of a corresponding project permissionissue
- the target issueuser
- the user to check permissions for- Returns:
- true if the given permission name is valid and the user has that permission, false otherwise
- See Also:
- Checking project permissions
-
getTimeZone
TimeZone getTimeZone(String location)
- Parameters:
location
- for which the timeZone is needed- Returns:
- TimeZone of the passed in location
-
getCatchEmailAddress
javax.mail.internet.InternetAddress getCatchEmailAddress()
- Returns:
- catch email address that matched for profile
-
filterText
String filterText(String text)
- Parameters:
text
- to Filters the input text through some Mime decoding- Returns:
- filtered input
-
setInhibitSending
void setInhibitSending(boolean val)
Used during sending messages to inhibit sending, specifically needed due to split phase issue creation/update to enable ignoring ISSUE_CREATED events when JEMH has not yet added attachments to the issue, that are potentially required later.- Parameters:
val
- , true to inhibit
-
isInhibitSending
boolean isInhibitSending()
determine if the outcome of the script is to inhibit sending of 'this' notification- Returns:
- true if is to inhibit
-
setInhibitSendingReason
void setInhibitSendingReason(String reason)
Sets a reason, retained in the audit entry to indicate why this message was inhibited for sending- Parameters:
reason
- as text
-
getInhibitSendingReason
String getInhibitSendingReason()
Gets the reason that was possibly set by the processing script why this message was inhibited for sending- Returns:
- reason
-
isPrivateJSDComment
boolean isPrivateJSDComment(com.atlassian.jira.user.ApplicationUser contextUser, com.atlassian.jira.issue.comments.Comment c)
Helper method to determine if a comment is JSD private- Parameters:
contextUser
- , the context for the questionc
- , related comment- Returns:
- true if JSD is installed, and comment is private
-
isPrivateJSDComment
boolean isPrivateJSDComment(com.atlassian.jira.mail.TemplateUser contextTemplateUser, com.atlassian.jira.issue.comments.Comment c)
Helper method to determine if a comment is JSD private, which is required during actual mail sending- Parameters:
contextTemplateUser
- , the contextTemplateUser for the questionc
- , related comment- Returns:
- true if JSD is installed, and comment is private
-
getCommentProperties
Properties getCommentProperties(com.atlassian.jira.issue.comments.Comment comment)
Get comment properties- Parameters:
comment
- to get properties of- Returns:
- java.util.Properties object
-
addMailHeader
void addMailHeader(String key, String value)
Adds a mail header to the outgoing mail. Any additional processed to make the header valid is the responsibility of the caller.- Parameters:
key
- text, all spaces in the value are removed, the result is prefixed by X-JEMH-ADHOC-value
- text, should be relatively short. We don't wrap or encode the data supplied
-
addRawMailHeader
void addRawMailHeader(String key, String value)
Adds a mail header that is not prefixed. It is the callers responsilbity to ensure it is valid. Caller should NOT use recipient headers (to/cc/bcc)!- Parameters:
key
- , usually of format X-something-elsevalue
- , text, should be relatively short. We don't wrap or encode the data supplied
-
addRecipientsFromRole
void addRecipientsFromRole(String recipientType, String issueKey, com.atlassian.jira.project.Project project, String roleName)
Add recipients based on Role membership- Parameters:
issueKey
- eg ABC-123project
- from the issueroleName
- eg "Customers"recipientType
- eg "to" or "cc" (only)
-
addRecipientAddress
void addRecipientAddress(String recipientType, String addressCsv)
Adds recipients through CSV SMTP address- Parameters:
recipientType
- , valid values are to and ccaddressCsv
- , valid values are of format user@domain.com, NO Name parts are supported.
-
addRecipientGroup
void addRecipientGroup(String recipientType, String groupName)
Adds recipients from a given Jira group- Parameters:
recipientType
- , valid values are to and ccgroupName
- of Jira group
-
getParams
Map<String,List<String>> getParams()
Accessor for Map of value keys to list of values- Returns:
- params, parms aggregate mail headers, but mail in future have other uses
-
getAdditionalAddressRecipients
Set<javax.mail.internet.InternetAddress> getAdditionalAddressRecipients()
Accessor for Set of additional Internet Addresses related to an email only user to be added to the recipient list- Returns:
- set of email only user Addresses
-
getAdditionalUserRecipients
Set<javax.mail.internet.InternetAddress> getAdditionalUserRecipients()
Accessor for Set of additional Internet Addresses related to a Jira user entity to be added to the recipient list- Returns:
- set of user Addresses
-
getAdditionalRecipientGroups
Set<String> getAdditionalRecipientGroups()
Accessor for Set of additional Internet Addresses related to a Jira user entity in a named Group to be added to the recipient list- Returns:
- set of user Addresses
-
getReferencedMessageIds
Set<String> getReferencedMessageIds()
Getter referenced Message ID's from the message object- Returns:
- Set of Reference IDs as string
-
getUserByEmail
com.atlassian.jira.user.ApplicationUser getUserByEmail(javax.mail.internet.InternetAddress address)
Helper method to get a User- Parameters:
address
- of the user as an InternetAddress object- Returns:
- the user or null
-
getUserByEmail
com.atlassian.jira.user.ApplicationUser getUserByEmail(String emailStr)
Helper method to bet a User- Parameters:
emailStr
- of the user as text in format user@domain.com, no Name part is supported.- Returns:
- the user or null
-
dropMessage
void dropMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be dropped immediately with no further processing- Parameters:
reason
- , a non empty value used in auditing
-
dropAndExitGroupMessage
void dropAndExitGroupMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be dropped immediately with no further processing and exits processing if within a profile group- Parameters:
reason
- , a non empty value used in auditing
-
forwardMessage
void forwardMessage(String reason)
During Script Field Processor handling of a message, allows a given message to not be processed but forwarded to the Profile defined 'Forward' user- Parameters:
reason
- , a non empty value used in auditing
-
filterMessage
void filterMessage(String reason)
During Script Field Processor handling of a message, allows a given message to not be processed but filtered (like drop), here for completeness and differentation to drop- Parameters:
reason
- , a non empty value used in auditing
-
rejectMessage
void rejectMessage(String reason)
During Script Field Processor handling of a message, allows a given message to be rejected to the initator, with the given reason- Parameters:
reason
- , a non empty value used in auditing
-
getProcessOutcome
com.javahollic.jira.emh.api.ao.IJEMHFPAuditEventEntiyDef.ProcessingOutcome getProcessOutcome()
Accessor method to get script driven outcome of message processing that would override future processing/outcome.- Returns:
- outcome object, .name() of which returns: canHandle, filtered, forward, reject, drop, delete, hold
-
getRejectReason
String getRejectReason()
Get the message that may be set to describe why a message was rejected, ends up in audit record.- Returns:
- text
-
getLocaleI18nBean
com.atlassian.jira.util.I18nHelper getLocaleI18nBean(String localeIn)
Get a specific locale i18n helper- Parameters:
localeIn
- the locale- Returns:
- instance of I18nHelper
-
addStaticResourceAttachment
String addStaticResourceAttachment(Integer id)
Add a global (unscoped) static resource by its Id.- Parameters:
id
- , numeric ID of the Static Resource- Returns:
- html message (not i18n), a non empty value indicates a failure, eg, a resource was referred that is not scoped to the project the event is processing
-
addStaticResourceAttachment
String addStaticResourceAttachment(com.atlassian.jira.project.Project project, Integer id)
Add a static resource (scoped to project) by its Id- Parameters:
project
- , the project in which the Static Resource has been scopedid
- , numeric ID of the Static Resource- Returns:
- html message (not i18n), a non empty value indicates a failure, eg, a resource was referred that is not scoped to the project the event is processing
-
renderStaticResourceImage
String renderStaticResourceImage(Integer id)
Render a given static resource image (unscoped) inline.- Parameters:
id
- , numeric ID of the Static Resource- Returns:
- html to inline the related image, can also contain (non i18n) error messages if the inline failed
-
renderStaticResourceImage
String renderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id)
Render a given static resource image (scoped to the given project) inline.- Parameters:
project
- , the project in which the Static Resource image is scopedid
- , numeric ID of the Static Resource- Returns:
- html to inline the related image, can also contain (non i18n) error messages if the inline failed, eg if not in scope
-
renderStaticResourceImage
String renderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id, String type)
Render a given static resource image (scoped to the given project) inline.- Parameters:
project
- , the project in which the Static Resource image is scopedid
- , numeric ID of the Static Resourcetype
- , "cid" is the new default, "base64" (inline encoded data) is also valid- Returns:
- html to inline the related image, can also contain (non i18n) error messages if the inline failed, eg if not in scope
-
getImageCidMap
Map<String,Integer> getImageCidMap()
Internal use- Returns:
- map of a generated CID to a given Static Resource
-
isCustomFieldChanged
boolean isCustomFieldChanged(com.atlassian.jira.event.issue.IssueEvent issueEvent, String cfId)
Used to determine during outbound processing, whether the given custom field id was in a ChildChangeItem of the event- Parameters:
issueEvent
- involvedcfId
- , custom field id, of format, customfield_12345- Returns:
- true if changed
-
urlencode
String urlencode(String incoming)
Helper method to urlencode(UTF-8) a string in Java context:- Parameters:
incoming
- value- Returns:
- encoded value
-
request
com.atlassian.jira.util.json.JSONObject request(Map<String,Object> options)
Perform a custom HTTP request- Parameters:
options
- aMap
containing the configuration options for this HTTP request- url -
String
- the absolute (full) request URL - method -
String
- the request method to use. GET is default. - type - an alias for "method"
- username -
String
- username of the user to perform the request as - timeout -
String
orInteger
- connection timeout in milliseconds - data -
String
- JSON data for request body. Appended to URL for GET requests. In JavaScriptJSON.stringify(data)
can be used to convert JSON/Object to String
- url -
- Returns:
JSONObject
containing the response
-
invokeLocalRest
com.atlassian.jira.util.json.JSONObject invokeLocalRest(String path)
Make a HTTP request relative to the local Jira path- Parameters:
path
- of local rest call, relative to Jira's base URL- Returns:
JSONObject
containing the response body (if present)
-
invokeLocalAnonRest
com.atlassian.jira.util.json.JSONObject invokeLocalAnonRest(String path) throws com.atlassian.jira.util.json.JSONException
Make an anonymous HTTP request relative to the local Jira path- Parameters:
path
- of local rest call, relative to Jira's base URL- Returns:
JSONObject
containing the response body (if present)- Throws:
com.atlassian.jira.util.json.JSONException
- if it breaks
-
hash
String hash(String stringToEncrypt) throws NoSuchAlgorithmException, UnsupportedEncodingException
Function to allow hashing of arbitrary content, eg summary, eg description, for storing in custom fields, to potentially detect future resends of same content/description even after the initial issue was edited- Parameters:
stringToEncrypt
- eg summary / body- Returns:
- digest of the data
- Throws:
NoSuchAlgorithmException
- if it breaksUnsupportedEncodingException
- if it breaks
-
createResultSet
Map<String,Object> createResultSet()
Enable scripts to create multiple issue,by creating an additional (possibly many) new result sets containing key/value paris as usual- Returns:
- map of values to initialize an issue, e.g. project="ABC", issueType="bug" etc.
-
getResultSets
Collection<Map<String,Object>> getResultSets()
Accessor method to expose any additional ResultSets created by the script- Returns:
- collection of result sets
-
addAdditionalResultSet
void addAdditionalResultSet(Map<String,Object> resultSet)
Method to add additional ResultSets created by the script- Parameters:
resultSet
- New result set to be added to additional resultSets
-
log
void log(String level, String msg)
Output a message to the JEMH log file- Parameters:
level
- the log level for the output: DEBUG, INFO, WARN, ERRORmsg
- the message to log
-
log
void log(String msg)
Log an INFO message to the JEMH log file- Parameters:
msg
- the message to log
-
getMessage
javax.mail.Message getMessage()
-
getMessageSubParts
List<javax.mail.Message> getMessageSubParts(javax.mail.internet.MimeMessage parentMessage)
Get the child attachment Parts that are message/rfc822- Parameters:
parentMessage
- the Mime message- Returns:
- child parts loaded as Message objects to allow further processing
-
getMessageBody
String getMessageBody(javax.mail.Message message)
Get the body (according to htmL to wiki conversion configuration in the Profile)- Parameters:
message
- source- Returns:
- wiki markup extracted
-
getLdap
IJEMHLdapVelocityContextUtil getLdap()
Create an Ldap helper that enables querying through LDAP configurations selected in the Profile- Returns:
- ldap util support class
-
getLdap
IJEMHLdapVelocityContextUtil getLdap(int ldapConfigId)
-
getUserAvatarURL
URI getUserAvatarURL(com.atlassian.jira.user.ApplicationUser user, int size)
Enable the URI of a user avatar to be retrieved for inlining- Parameters:
user
- user to get avatar forsize
- size of avatar to get- Returns:
- URI object
-
getProjectContext
com.atlassian.jira.issue.context.ProjectContext getProjectContext(Long projectId)
-
getIssueContext
com.atlassian.jira.issue.context.IssueContext getIssueContext(Long projectId, String issueTypeId)
-
addIndividualRecipientAddress
void addIndividualRecipientAddress(String addressCsv)
* Adds an individual address to recipients list to a Non Jira User Template set in Non Jira user notification Project Mapping found in Notifications- Parameters:
addressCsv
- valid values are of format user@domain.com, NO Name parts are supported.
-
addIndividualRecipientUser
void addIndividualRecipientUser(String username)
Adds an individual user to recipients list to a Non Jira User Template found in the Non Jira user notification Project Mapping found in Notifications- Parameters:
username
- user to entity to be notified in a Jira User Issue Event Template Set.
-
addIndividualRecipientGroup
void addIndividualRecipientGroup(String groupName)
Adds users in a Group to the recipients list to a Jira User Issue Event Template set in the Jira user notification Project Mapping found in Notifications 1- Parameters:
groupName
- user Group to entity to be notified in a Jira User Issue Event Template Set.
-
getOriginalAddressees
List<javax.mail.internet.InternetAddress> getOriginalAddressees(PreProcHeaderBean headerBean)
Returns list of the Internet Addresses from specific header- Parameters:
headerBean
- the value of the desired header- Returns:
- list of InternetAddress
-
createInternetAddress
javax.mail.internet.InternetAddress createInternetAddress(String personal, String address)
Creates a new Internet address- Parameters:
personal
- , personal nameaddress
- , email address- Returns:
- InternetAddress
-
updatePreProcHeader
PreProcHeaderBean updatePreProcHeader(List<javax.mail.internet.InternetAddress> addresses, PreProcHeaderBean headerBean)
Updates specific header with the list of Internet addresses- Parameters:
addresses
- , list of the internet addressesheaderBean
- , specific header- Returns:
- PreProcHeaderBean
-
updatePreProcHeader
void updatePreProcHeader(String newValue, PreProcHeaderBean headerBean)
Updates specific header with the provided value- Parameters:
newValue
- , valueheaderBean
- , specific header
-
getRequestType
RequestTypeBean getRequestType(String requestTypeKey)
Returns a RequestTypeBean which holds properties of the Customer request type such as Name and Description- Parameters:
requestTypeKey
- , the value of the desired request type- Returns:
- RequestTypeBean or null
-
loadComponent
<T> T loadComponent(String interfaceOrClassName)
As the previous context $jirautils was removed for security reasons the loadComponent functionality may still be required. However this is with a restricted internally with a list of Allowed Classes If you find that loadComponent does not load the class or component you require then please raise a support ticket and mentioning internal ticket JEMH-7702- Type Parameters:
T
- the type of the component- Parameters:
interfaceOrClassName
- , the class name or interface name of the component desired for example class name = [com.atlassian.jira.mention.MentionFinderImpl] interface name = [MentionFinder]- Returns:
- if valid the typed resulting object instance or null if the object does not exist or if class/interface is not present or forbidden.
-
createResultSetForAdditionalMailboxAddresses
List<Map<String,Object>> createResultSetForAdditionalMailboxAddresses()
Creates a List of Result Maps for every matching Catch Email Address in the email (except the initial Catch Email address). Each Result Map will be added as an additional result set, creating a new issue.- Returns:
- a List of Result Maps
-
getJsdApiUtils
IJEMHJsdApiUtils getJsdApiUtils()
-
createJSONFromSource
com.atlassian.jira.util.json.JSONObject createJSONFromSource(String jsonSource) throws com.atlassian.jira.util.json.JSONException
Genreates a https://docs.atlassian.com/software/jira/docs/api/9.11.0/com/atlassian/jira/util/json/JSONObject.html from source JSON.- Parameters:
jsonSource
- correctly formed JSON as TEXT- Returns:
- parseable JSON Object
- Throws:
com.atlassian.jira.util.json.JSONException
-
-