My JIRA instance is using JIRA 6.4.5 with Structure 2.11.0.jira6 and ScriptRunner 3.0.16.
There is a groovy script accessing structure for validating data on a workflow.
This is all working well, but when JIRA is upgraded to
JIRA 7.2.9, Structure 3.5.1, ScriptRunner 4.3.16, the script fails with (I removed all the code except 2 lines of ScriptRunner and 3rd line of Structure, where it fails)
unable to resolve class com.almworks.jira.structure.api.StructureServices @ line 3, column 1. import com.almworks.jira.structure.api.StructureServices ^ 1 error
I placed this script in the Scripts path, but no use.
I feel I'm missing something at a fundamental level, but can't figure out what even after few hours. Any ideas what else can I try?
The Structure 4.1.0 APIs are changed.
1.
com.almworks.jira.structure.api.PermissionLevel is changed to
com.almworks.jira.structure.api.permissions.PermissionLevel
2. StructureServices is now StructureComponents
There is a very similar error that was happening in this post https://community.atlassian.com/t5/Atlassian-Marketplace-questions/ScriptRunner-can-t-find-plugin-module/qaq-p/249144 The versions are not exactly the same as yours, but I think you're seeing the same kind of problem.
In that case it appears that this might be happening due to the way the script is written. I would take a closer look at that post to see the example. In that case, the @examplevalue was defined inside the contructor when it should have been defined outside.
Perhaps if you can post back with your script that generates this error, others in the community might be better able to guide how that script might need to be altered to make this work in the more recent versions of these plugins.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your response.
The given link fails with "Invalid Parameters Specified". Can you repost the link?
The whole script (mostly from Jamie's samples) is below:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.project.version.Version
import com.opensymphony.workflow.InvalidInputException
import com.atlassian.jira.issue.IssueManager
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.almworks.jira.structure.api.StructureServices
import com.almworks.jira.structure.api.StructureException
import com.almworks.jira.structure.api.PermissionLevel
import java.util.ArrayList
import java.util.Collection
import org.apache.log4j.Category
def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
log.setLevel(org.apache.log4j.Level.DEBUG)
// Specify that classes from this plugin should be available to this script
@WithPlugin("com.almworks.jira.structure")
// Inject plugin module
@PluginModule
StructureServices structureServices
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def structureManager = structureServices.getStructureManager()
Issue _issue = issue
Long issueID = _issue.getId() // to be used in Structure
Collection<Version> fixVersions = new ArrayList<Version>()
fixVersions = _issue.getFixVersions()
if (fixVersions.size() != 1)
{
// JIRA 6.3+ Version
throw new InvalidInputException("There can be only one Fix Version for this issue in Planned state.")
//JIRA 5.2+ Version
//invalidInputException = new InvalidInputException("There can be only one Fix Version for this issue in Planned state.")
}
else
{
Version ver = fixVersions.iterator().next()
if ( (! ver.releaseDate) && (structureManager.isIssueInStructure(issueID, 100) ) ) // if fix version doesn't have a release data and is in a Structure instance
{
// JIRA 6.3+ Version
throw new InvalidInputException("This issue is in System SAR structure. So it's FixVersion must have a Release Date.")
//JIRA 5.2+ Version
//invalidInputException = new InvalidInputException("Either change the Fix Version to one with a Release Date or provide a Release Date to the input Fix Version.")
//invalidInputException = new InvalidInputException("This issue is in System SAR structure. So it's FixVersion must have a Release Date.")
}
}
When the above script is executed, I get the errors below on the workflow validator's execution information log:
2017-07-18 07:59:42,963 ERROR [workflow.ScriptWorkflowFunction]: ************************************************************************************* 2017-07-18 07:59:42,963 ERROR [workflow.ScriptWorkflowFunction]: Script function failed on issue: TESTNEWSAR-1697, actionId: 31, file: D:\CustomCodeScripts\Scripts\Groovy\PostFunction\jira1532FixVersionMandatoryOnlyWhenItIsPartofStructure.groovy org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: file:/D:/CustomCodeScripts/Scripts/Groovy/PostFunction/jira1532FixVersionMandatoryOnlyWhenItIsPartofStructure.groovy: 9: unable to resolve class com.almworks.jira.structure.api.StructureServices @ line 9, column 1. import com.almworks.jira.structure.api.StructureServices ^ file:/D:/CustomCodeScripts/Scripts/Groovy/PostFunction/jira1532FixVersionMandatoryOnlyWhenItIsPartofStructure.groovy: 11: unable to resolve class com.almworks.jira.structure.api.PermissionLevel @ line 11, column 1. import com.almworks.jira.structure.api.PermissionLevel ^ file:/D:/CustomCodeScripts/Scripts/Groovy/PostFunction/jira1532FixVersionMandatoryOnlyWhenItIsPartofStructure.groovy: 10: unable to resolve class com.almworks.jira.structure.api.StructureException @ line 10, column 1. import com.almworks.jira.structure.api.StructureException ^ 3 errors
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Not sure why the link added a few characters on the end.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Got moved to other tasks so I'm late by a week here.
I upgraded both plugins to their latest versions as the link above says and pointed the Script Console's RUN to a file in scripts path:
Structure: 4.1.0
Scriprunner: 5.0.14
and JIRA remains same at 7.2.9.
then I re-indexed, restarted but I still get the same error.
Anything else I can try here? The errors are below.
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/D:/JIRA729/scripts/testjira1532.groovy: 7: unable to resolve class com.almworks.jira.structure.api.StructureServices @ line 7, column 1. import com.almworks.jira.structure.api.StructureServices
file:/D:/JIRA729/scripts/testjira1532.groovy: 3: unable to resolve class com.almworks.jira.structure.api.PermissionLevel @ line 3, column 1. import com.almworks.jira.structure.api.PermissionLevel
2 errors
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.