Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

(info) Since JEMH 3.3.21 we lock down access to arbitrary classes in the script context, they cannot be accessed using historic methods:

Code Block
var pageFilterfilter = PagerFilter.static.getUnlimitedFilter();
var jqlQueryBuilderbuilder = JqlQueryBuilder.static.newBuilder();

but need to be gained through fully specified class names:

Code Block
var pageFilterfilter = Java.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter();
var jqlQueryBuilderbuilder = Java.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder()
;

These specific classes were not initially added, are available since JEMH 3.3.38

Code Block
var pattern = Java.type("java.util.regex.Pattern").compile("#IR-([0-9]+)");
var matcher = pattern.matcher(subject);
var itsmReference = "";

if (matcher.find()) {
    var group = matcher.group(1);
    if (group) {
        itsmReference = group;
        
        var issueKey = "";
        if (itsmReference.length()>0) {
            var user = userManager.getUserByKey("admin");
            var filter = Java.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter();
            var builder = Java.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder();
            var query = builder.where().field("ITSM Reference").like(itsmReference).buildQuery();
            var results = searchService.search(user, query, filter).getResults();

            if (results.size()>0) {
                //Issue found
                var issue = results[0];
                issueKey = issue.getKey();
                resultMap.put("issueKey", issueKey);
                
                if (subject.toLowerCase().indexOf("resolved") > 0) {
                    resultMap.put("workflow", "done");
                }else {
                    resultMap.put("comment", body);
                }
            } else {
                //Issue not found
                print("No issues match using JQL: "+query);
                resultMap.put("ITSM Reference", itsmReference);
            }
        }
    }
}

...