Book Image

JIRA Development Cookbook

Book Image

JIRA Development Cookbook

Overview of this book

JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development.This book is your one-stop resource to master JIRA extension and customization. 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.The book 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, etc and a lot of project planning done on it, 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. Then the book steers towards programming Issues, i.e. creating/editing/deleting issues, creating new issue operations, managing the various other operations available on issues via the JIRA APIs etc. In the latter half of the book, 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.
Table of Contents (19 chapters)
JIRA Development Cookbook
Credits
About the Author
Acknowledgment
About the Reviewers
www.PacktPub.com
Preface
Index

Making changes and re-deploying a plugin


Now that we have deployed the test plugin, it is time to add some proper logic, re-deploy the plugin, and test it. Making the changes and re-deploying a plugin is pretty easy. In this recipe, we will quickly look at how to do this.

How to do it...

You can make changes to the plugin and re-deploy it while the JIRA application is still running. Here is how we do it:

  1. Keep the JIRA application running in the window where we ran atlas-run.

  2. Open a new command window and go to the root plugin folder where your pom.xml resides.

  3. Run atlas-cli.

  4. Wait for the command—Waiting for messages.

  5. Run pi. Pi stands for "plugin install" and this will compile your changes, package the plugin JAR, and install it into the installed-plugins folder.

Now, there is one thing you need to keep an eye on! Not all the plugin modules can be redeployed like this prior to JIRA 4.4. The following is a list of the plugin modules that can be reloaded with pi in JIRA 4.0.x:

  • ComponentImport

  • Gadget

  • ModuleType

  • Resource

  • REST

  • ServletContextListener

  • ServletContextParameter

  • ServletFilter

  • Servlet

  • WebItem

  • WebResource

  • WebSection

If your plugin module is not there in the preceding list or if the changes doesn't seem to be reflected, press Ctrl + C in the command window running atlas-run and re-run the atlas-run command. That will re-deploy the plugin and restart JIRA.

Post JIRA 4.1, SDK supports reloading of more modules, but whether it works or not depends on what the module does internally.

JIRA 4.4+ supports reloading of all the plugin modules.

Debugging in Eclipse

It is also possible to run the plugin in debug mode and point your IDE's remote debugger to it.

Following are the steps to do this in Eclipse:

  1. Use atlas-debug instead of atlas-run.

  2. Once the virtual JIRA is up and running with tour plugin deployed in it, go to Run | Debug Configurations in Eclipse.

  3. Create a new Remote Java Application.

  4. Give a name, keep the defaults, and give the port number as 5005. This is the default debug port on which the virtual JIRA runs.

  5. Happy Debugging!

See also

  • Setting up the development environment

  • Creating a skeleton plugin