Free Sample
+ Collection

JIRA 5.x Development Cookbook

Jobin Kuruvilla

This book is your one-stop resource for mastering JIRA extensions and customizations
RRP $35.99
RRP $59.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781782169086
Paperback512 pages

About This Book

  • Extend and customize JIRA; work with custom fields, workflows, reports, gadgets, JQL functions, plugins, and more
  • Customize the look and feel of your JIRA user interface by adding new tabs, web items and sections, drop down menus, and more
  • Master JQL (JIRA Query Language) that enables advanced searching capabilities through which users can search for issues in their JIRA instance and then exploit all the capabilities of the issue navigator

Who This Book Is For

If you are a JIRA developer or project manager who wants to fully exploit the exciting capabilities of JIRA, then this is the perfect book for you.

Table of Contents

Chapter 1: Plugin Development Process
Setting up the development environment
Creating a skeleton plugin
Adding plugin modules
Deploying a JIRA plugin
Making changes to and redeploying a plugin
Using FastDev for plugin development
Testing and debugging
Chapter 2: Understanding the Plugin Framework
Architecture explained
Types of plugin modules
Working with the Plugins1 and Plugins2 versions
JIRA system plugins
Stable and core APIs
Modifying Atlassian bundled plugins
Converting plugins from v1 to v2
Adding resources into plugins
Adding web resources into plugins
Building JIRA from source
Adding new webwork actions to JIRA
Extending a webwork action in JIRA
Capturing plugin installation/uninstallation events
Chapter 3: Working with Custom Fields
Writing a simple custom field
Custom field searchers
Dealing with custom fields on an issue
Programming custom field options
Overriding validation of custom fields
Customizing the change log value
Migrating from one custom field type to another
Making custom fields sortable
Displaying custom fields on subtask columns
User and date fields
Adding custom fields to notification mails
Adding help text for a custom field
Removing the "none" option from a select field
Making the custom field project importable
Changing the size of a text area custom field
Chapter 4: Programming Workflows
Writing a workflow condition
Writing a workflow validator
Writing a workflow post function
Editing an active workflow
Making an issue editable/non-editable based on workflow status
Including/excluding resolutions for specific transitions
Permissions based on workflow status
Internationalization in workflow transitions
Obtaining available workflow actions programmatically
Programmatically progressing on workflows
Obtaining workflow history from the database
Reordering workflow actions in JIRA
Creating common transitions in workflows
Creating global transitions in workflows
Jelly escalation
Chapter 5: Gadgets and Reporting in JIRA
Writing a JIRA report
Reports in an Excel format
Data validation in JIRA reports
Restricting access to reports
Object-configurable parameters for reports
Creating a pie chart in JIRA
Writing JIRA 4 gadgets
Invoking REST services from gadgets
Configuring user preferences in gadgets
Accessing gadgets outside of JIRA
Chapter 6: The Power of JIRA Searching
Writing a JQL function
Sanitizing JQL functions
Adding a search request view
Smart querying using quick search
Searching in plugins
Parsing JQL queries in plugins
Linking directly to search queries
Index and de-index programmatically
Managing filters programmatically
Subscribing to a filter
Chapter 7: Programming Issues
Creating an issue from a plugin
Creating subtasks on an issue
Updating an issue
Deleting an issue
Adding new issue operations
Conditions on issue operations
Working with attachments
Time tracking and worklog management
Working with comments on issues
Programming change logs
Programming issue links
Discarding fields while cloning
JavaScript tricks on issue fields
Creating issues and comments from an e-mail
Chapter 8: Customizing the UI
Changing the basic look and feel
Adding new web sections in the UI
Adding new web items in the UI
Use of decorators
Adding conditions for web fragments
Creating new Velocity context for web fragments
Adding a new drop-down menu on the top navigation bar
Dynamic creation of web items
Adding new tabs in the View Issue screen
Adding new tabs in the Browse Project screen
Creating the project tab panel using fragments
Adding new tabs in the Browse Version screen
Adding new tabs in the Browse Component screen
Adding issue link renderers
Extending a webwork action to add UI elements
Displaying dynamic notifications/warnings on issues
Re-ordering issue operations in the View Issue page
Re-ordering fields in the View Issue page
Chapter 9: Remote Access to JIRA
Writing a Java client for the REST API
Creating a SOAP client
Writing a Java XML-RPC client
Working with issues
Working with attachments
Remote time tracking
Working with comments
Remote user and group management
Progressing an issue in a workflow
Managing versions
Managing components
Remote administration methods
Exposing services and data entities as REST APIs
Deploying a SOAP service in JIRA
Deploying an XML-RPC service within JIRA
Chapter 10: Dealing with the JIRA Database
Extending the JIRA database with a custom schema
Accessing database entities from plugins
Persisting plugin information in the JIRA database
Using Active Objects to store data
Accessing the JIRA configuration properties
Getting a database connection for JDBC calls
Migrating a custom field from one type to another
Retrieving issue information from a database
Retrieving custom field details from a database
Retrieving permissions on issues from a database
Retrieving workflow details from a database
Updating the issue status in a database
Retrieving users and groups from a database
Dealing with change history in a database
Chapter 11: Useful Recipes
Writing a service in JIRA
Adding configurable parameters to a service
Writing scheduled tasks in JIRA
Writing listeners in JIRA
Customizing e-mail content
Redirecting to a different page in webwork actions
Adding custom behavior for user details
Deploying a servlet in JIRA
Adding shared parameters to the servlet context
Writing a servlet context listener
Using filters to intercept queries in JIRA
Adding and importing components in JIRA
Adding new module types to JIRA
Enabling access logs in JIRA
Enabling SQL logging in JIRA
Overriding JIRA's default components in plugins
Internationalization in webwork plugins
Sharing common libraries across v2 plugins
Operations using direct HTML links

What You Will Learn

  • Create and deploy your own JIRA plugins
  • Deal with custom fields on an issue and program custom field options
  • Program and customize workflows to transform JIRA into a user friendly system
  • Put together reports that show statistics for particular people, projects, versions, or other fields within issues
  • Simplify reporting by writing your own JIRA gadgets, which can be added into a user's dashboard
  • Create, edit, and delete issues
  • Master database handling in JIRA --retrieve issue information from the database, extend the database, retrieve custom field details from the database, access database entities from plugins, and more
  • Communicate with JIRA via the REST, SOAP, or XML/RPC interfaces

In Detail

JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development.

"JIRA 5.x Development Cookbook" is a one stop resource to master extensions and customizations in JIRA. You will learn how to create your own JIRA plugins, customize the look and feel of your JIRA UI, work with workflows, issues, custom fields, and much more.

"JIRA 5.x Development Cookbook" starts with recipes on simplifying the plugin development process followed by a complete chapter dedicated to the plugin framework to master plugins in JIRA.

Then we will move on to writing custom field plugins to create new field types or custom searchers. We then learn how to program and customize workflows to transform JIRA into a user friendly system.

Reporting support in an application like JIRA is inevitable! With so much data spanning across different projects, issues, and so on, and a lot of planning done for the project, we will cover how to work on reports and gadgets to get customized data according to our needs.

We will then look at customizing the various searching aspects of JIRA such as JQL, searching in plugins, managing filters, and so on.

"JIRA 5.x Development Cookbook" steers towards programming issues, such as creating, editing, and deleting issues, creating new issue operations, managing the various other operations available on issues via the JIRA APIs, and so on.

In the latter half of "JIRA 5.x Development Cookbook", you will learn how to customize JIRA by adding new tabs, menus, and web items, communicate with JIRA via the REST, SOAP or XML/RPC interfaces, and work with the JIRA database.

The book ends with a chapter on useful and general JIRA recipes.


Read More