Hey there,
after updating Jira to v8.20.2 I was facing several issues in groovy scripts. Think I solved the ComponentManager vs. ComponentAccessor thing but one problem is still there.
List<Map> getArguments()
is throwing the error
cannot assign java.util.list linkedhashmap to java.util.list map
and I have no clue how to solve it
Thank you already so much for your support!
Here is the top part of the code:
package com.onresolve.jira.groovy.jql
import com.atlassian.jira.util.JiraUtils
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.component.pico.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.jql.operand.QueryLiteral
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.jql.query.RangeQueryFactory
import com.atlassian.jira.util.MessageSetImpl
import com.atlassian.query.operand.FunctionOperand
import com.atlassian.query.operator.Operator
import org.apache.log4j.Category
import com.atlassian.jira.util.MessageSet
//import com.atlassian.crowd.embedded.api.User
import com.atlassian.query.clause.TerminalClause
import com.atlassian.jira.jql.query.QueryCreationContext
import com.atlassian.jira.JiraDataType
import com.atlassian.jira.JiraDataTypes
import com.onresolve.jira.groovy.jql.AbstractScriptedJqlFunction
import org.apache.lucene.search.BooleanClause
import org.apache.lucene.search.BooleanQuery
import org.apache.lucene.search.Query
import org.apache.lucene.search.TermQuery
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.security.roles.*
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.project.Project
class UserInProjectRole extends AbstractScriptedJqlFunction implements JqlValuesFunction{
@Override
String getDescription() {
"Returns a set of users that are in the specified role of specified project"
}
@Override
List<Map> getArguments() {
[
["project": "Project Key","optional": false],
["role": "Role X", "optional": false]
]
}
Just cast your map to the type expected by the interface
@Override
List<Map> getArguments() {
[
["project": "Project Key", "optional": false],
["role": "Role X", "optional": false]
] as List<Map>
}
Awesome, thank you so much @PD Sheehan !
Feels like I am a total noob^^
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.