Package com.javahollic.jira.emh.api
Interface IJEMHVelocityContextUtils
-
public interface IJEMHVelocityContextUtilsVelocity 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 classIJEMHVelocityContextUtils.AllowListstatic classIJEMHVelocityContextUtils.InlineImageEncodingType
-
Field Summary
Fields Modifier and Type Field Description static StringADDITIONAL_ATTACHMENTSstatic StringADDITIONAL_CCstatic StringADDITIONAL_RECIPIENT_ADDRESSstatic StringADDITIONAL_TOstatic StringX_JEMH_ADHOC_PREFIXused to prefix mail header keys themselves, used to avoid conflicts for issue attributesstatic StringX_JEMH_RAW_PREFIXunlike 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 voidaddAdditionalResultSet(Map<String,Object> resultSet)Method to add additional ResultSets created by the scriptvoidaddIndividualRecipientAddress(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 NotificationsvoidaddIndividualRecipientGroup(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 1voidaddIndividualRecipientUser(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 NotificationsvoidaddMailHeader(String key, String value)Adds a mail header to the outgoing mail.voidaddRawMailHeader(String key, String value)Adds a mail header that is not prefixed.voidaddRecipientAddress(String recipientType, String addressCsv)Adds recipients through CSV SMTP addressvoidaddRecipientGroup(String recipientType, String groupName)Adds recipients from a given Jira groupvoidaddRecipientsFromRole(String recipientType, String issueKey, com.atlassian.jira.project.Project project, String roleName)Add recipients based on Role membershipStringaddStaticResourceAttachment(com.atlassian.jira.project.Project project, Integer id)Add a static resource (scoped to project) by its IdStringaddStaticResourceAttachment(Integer id)Add a global (unscoped) static resource by its Id.javax.mail.internet.InternetAddresscreateInternetAddress(String personal, String address)Creates a new Internet addresscom.atlassian.jira.util.json.JSONObjectcreateJSONFromSource(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).voiddropAndExitGroupMessage(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 groupvoiddropMessage(String reason)During Script Field Processor handling of a message, allows a given message to be dropped immediately with no further processingvoidfilterMessage(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 dropStringfilterText(String text)voidforwardMessage(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 listStringgetCalData()Get the content of the text/calendar message partjavax.mail.internet.InternetAddressgetCatchEmailAddress()PropertiesgetCommentProperties(com.atlassian.jira.issue.comments.Comment comment)Get comment propertiesMap<String,Integer>getImageCidMap()Internal useStringgetInhibitSendingReason()Gets the reason that was possibly set by the processing script why this message was inhibited for sendingcom.atlassian.jira.issue.context.IssueContextgetIssueContext(Long projectId, String issueTypeId)IJEMHJsdApiUtilsgetJsdApiUtils()IJEMHLdapVelocityContextUtilgetLdap()Create an Ldap helper that enables querying through LDAP configurations selected in the ProfileIJEMHLdapVelocityContextUtilgetLdap(int ldapConfigId)com.atlassian.jira.util.I18nHelpergetLocaleI18nBean(String localeIn)Get a specific locale i18n helperjavax.mail.MessagegetMessage()StringgetMessageBody(javax.mail.Message message)Get the body (according to htmL to wiki conversion configuration in the Profile)StringgetMessagePartText(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.ProcessingOutcomegetProcessOutcome()Accessor method to get script driven outcome of message processing that would override future processing/outcome.com.atlassian.jira.issue.context.ProjectContextgetProjectContext(Long projectId)Set<String>getReferencedMessageIds()Getter referenced Message ID's from the message objectStringgetRejectReason()Get the message that may be set to describe why a message was rejected, ends up in audit record.RequestTypeBeangetRequestType(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 scriptTimeZonegetTimeZone(String location)URIgetUserAvatarURL(com.atlassian.jira.user.ApplicationUser user, int size)Enable the URI of a user avatar to be retrieved for inliningcom.atlassian.jira.user.ApplicationUsergetUserByEmail(String emailStr)Helper method to bet a Usercom.atlassian.jira.user.ApplicationUsergetUserByEmail(javax.mail.internet.InternetAddress address)Helper method to get a UserStringhash(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 editedbooleanhasPermission(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.booleanhasWorkflowPermission(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.JSONObjectinvokeLocalAnonRest(String path)Make an anonymous HTTP request relative to the local Jira pathcom.atlassian.jira.util.json.JSONObjectinvokeLocalRest(String path)Make a HTTP request relative to the local Jira pathbooleanisAttachmentPresent(javax.mail.Message message, String filename)Deprecated.since 3.3.14 and will be removed, useisAttachmentPresent(Message, String, boolean)insteadbooleanisAttachmentPresent(javax.mail.Message message, String filename, boolean isRegex)booleanisCustomFieldChanged(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 eventbooleanisInhibitSending()determine if the outcome of the script is to inhibit sending of 'this' notificationbooleanisPrivateJSDComment(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 sendingbooleanisPrivateJSDComment(com.atlassian.jira.user.ApplicationUser contextUser, com.atlassian.jira.issue.comments.Comment c)Helper method to determine if a comment is JSD private<T> TloadComponent(String interfaceOrClassName)As the previous context $jirautils was removed for security reasons the loadComponent functionality may still be required.voidlog(String msg)Log an INFO message to the JEMH log filevoidlog(String level, String msg)Output a message to the JEMH log filevoidrejectMessage(String reason)During Script Field Processor handling of a message, allows a given message to be rejected to the initator, with the given reasonStringrenderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id)Render a given static resource image (scoped to the given project) inline.StringrenderStaticResourceImage(com.atlassian.jira.project.Project project, Integer id, String type)Render a given static resource image (scoped to the given project) inline.StringrenderStaticResourceImage(Integer id)Render a given static resource image (unscoped) inline.com.atlassian.jira.util.json.JSONObjectrequest(Map<String,Object> options)Perform a custom HTTP requestvoidsetInhibitSending(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.voidsetInhibitSendingReason(String reason)Sets a reason, retained in the audit entry to indicate why this message was inhibited for sendingvoidupdatePreProcHeader(String newValue, PreProcHeaderBean headerBean)Updates specific header with the provided valuePreProcHeaderBeanupdatePreProcHeader(List<javax.mail.internet.InternetAddress> addresses, PreProcHeaderBean headerBean)Updates specific header with the list of Internet addressesStringurlencode(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- aMapcontaining 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 -
StringorInteger- 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:
JSONObjectcontaining 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:
JSONObjectcontaining 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:
JSONObjectcontaining 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
-
-