Dear all,
I am using successfully the ScriptRunner with Groovy scripts for
postconditions etc.
Now I would like to make a library of functions in groovy and put it
into a class, so that is methods are called by different script as
post functions for different transitions.
I am knowledgeable enough of Java's package/import/classpath
philosophy, but I do not know how this translates in the JIRA
standalone/Script Runner set-up.
I have the following files:
TestGroovy.groovy
// start code snippet package sed.jira; import com.atlassian.jira.ComponentManager import java.util.HashMap import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.comments.CommentManager ... import com.atlassian.jira.event.type.EventDispatchOption import sed.jira.JiraLibrary; JiraLibrary jl = new JiraLibrary(); def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction" ); log.setLevel(org.apache.log4j.Level.DEBUG); // end code snippet and a simple: // start code snippet package sed.jira; class JiraLibrary { String myMethod(String pippo) { return pippo+ ":" + pippo; } } // end code snippet
I would like TestGroovy.groovy to be called by the ScriptRunner
but it fails with:
unable to resolve class sed.jira.JiraLibrary @ line 24, column 1
I guess my question boils down to:
a) do I need somehow to compile (I do not have a groovy compiler on my
Jira box) the code and package it in a jarfile or similar?
b) what would I put the scripts or the compiled versions thereof?
What's ScriptRunner (or JIRA's ) CLASSPATH?
Thanks
Michele
Michele - there is information on this here: https://jamieechlin.atlassian.net/wiki/display/GRV/Upgrading+to+3.0(under "script roots" section) - but it's only pertinent to the new beta version.
You can download it from the same page if you have a recent enough jira instance.
For the current version you need to compile a jar really, although I would recommend trying the new version as using dependent classes and libraries will be much easier.
Hi Jamie,
Running Jira 6.2.2 on Windows. Had a post-function and listener-enabled class in package com.onresolve.jira.groovy.canned.workflow.postfunctions.
Just upgraded Script Runner 2.2.x to to 3.0-b11 in order to get Behaviours function back, and now when I view ScriptRunner Listeners, I see an 'undefined' value and getting an error in atlassian-jira.log:
2014-06-20 15:28:47,401 ajp-apr-8009-exec-9 ERROR <user> 928x25038x2 6mf16d <ip> /rest/scriptrunner-jira/latest/listeners [scriptrunner.runner.rest.AbstractRestEndpoint] Could not get script name: groovy.util.ResourceException: Malformed URL: bundle://177.0:0/, null at groovy.util.GroovyScriptEngine.getResourceConnection(GroovyScriptEngine.java:373) at groovy.util.GroovyScriptEngine.loadScriptByName(GroovyScriptEngine.java:513) Caused by: groovy.util.ResourceException: Malformed URL: file:/C:/Tools/Atlassian/JIRA-Data/scripts/, null
Naturally, this is referring to the newly created 'script-root' directory introduced in 3.0.
Attempting to resolve, I've just moved my old post-function script (with full path) into the new 'scripts' directory and added "-Dplugin.script.roots=C:\Tools\Atlassian\JIRA-Data\scripts"
to Java Opts (but not changed classpaths yet).
But this hasn't helped. Same error.
Any ideas?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Seems adding Dplugin.script.roots
was unnecessary; now that default path is included twice (if Script Console is anything to go by).
Hmm, hope I'm not going bonkers but it looks like the scriptrunner utility groovies/classes etc have moved to a new package/path; if so this might need to be noted on the 3.0 pages!?
From 2.2: com.onresolve.jira.groovy.canned.*
Now 3.0: com.onresolve.scriptrunner.canned.jira.workflow.postfunctions
com.onresolve.scriptrunner.canned.jira.utils etc?
I'll need to adjust imports and try again.
EDIT: -- Yep, that's done it. Adjusted the packages and my class now appears in the Script Listeners list again. Bril. :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
David - yes, some packages were moved, sorry about that but I didn't have much choice. I need to document that.
I will make it so that it doesn't add the path twice...
I'm not really sure why you got the malformed url exception though, looks ok.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
try below exmple:
import com.atlassian.jira.event.issue.AbstractIssueEventListener
class JiraLibrary extends AbstractIssueEventListener {
@Override
void issueUpdated (IssueEvent event) {
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.