ScriptRunner is a collection of powerful but easy-to-use workflow functions, JQL functions, listeners and services. Either augment the ones provided with Groovy, or write your own. You may never need to write your own Java plugin again.
Built-in admin and maintenance scripts and JQL functions
ScriptRunner for Jira includes a long list of extremely powerful JQL functions that are ready to use. For example, query for parent tasks on attributes of their subtasks, find all issues that are blocked by unresolved bugs.
Start using scripted fields
Create your own calculated custom fields with Groovy, the simple scripting language. You may never need to learn Maven.
Define custom field behaviours
The behaviours plugin allows an administrator to create one more or behaviours. A behaviour defines how fields behave for issues in a given project/issue context. Some examples of behaviours include:
Making a field mandatory depending on other data entered in to the form
Making a field read-only dependent on user role or group
Doing server-side validation of field data, before the form is submitted
Setting a field value dependent on other form data