Jira plugin not enabling after Jira restart

Sometimes when developing a Jira plugin which creates customfields on installation, it does not enable automatically when Jira app is restarted, the reason being that the code which is used to add the customfields implemented from the class :InitializingBean, maybe with the class :DisposableBean. To remove somethings on plugin disable/uninstall as follows:
Continue Reading →


Creating a Jira plugin which creates screens on installation

Sometimes you want to create a Jira plugin which uses screens on it, but you don’t want to add the screens manually, thus the plugin itself has to install its own screens on installation which it is going to use.

Now in the plugin framework you have a file “atlassian-plugin.xml” which is where you insert modules which are going to be used by the plugin. This line of code:

Continue Reading →


How to create a dashboard in Jira

Ever wondered how to create a dashboard in Jira? You can create your own dashboard or share a dashboard with your team by adding permissions for specific users, groups or project roles to access your dashboard. The first step will be to create a filter. The filter will be specific information you may require. Dashboards work well if you need a specific view or information on a certain project.

Continue Reading →


Jira Plugin Development – Making sense of the Jira Technical Ecosystem

This is the first in a series of articles dealing with Jira plugin development.


Jira is a project tracker web application built by Atlassian in Java, and is used for agile software development by thousands of project teams. Jira can either be used as a hosted application (Jira OnDemand), or can be installed on a local server. Jira OnDemand is ideal for smaller companies that do not want to take on the burden of managing their own server. 



The server requirements for a production system are:
[list_icon color=”blue” type=”icon_arrow”]

  • a Linux, Solaris or Microsoft Server based server
  • a suitable Java platform (JDK or JRE)
  • the Apache Tomcat application server
  • Oracle, My SQL, PostgreSQL or Microsoft SQL Server Database


Most modern browsers are supported on the client side, a minimum screen resolution of 1024 x 768 and Javascript support is required. More details on the specific version requirements can be found on the Jira website.


Architectural Overview

Jira is deployed as a standard Java WAR file, and is built on the following:

[list_icon color=”blue” type=”icon_arrow”]

  • WebWork, a Java web application framework (webwork1 is used)
  • Seraph, used for web authentication
  • Embedded Crowd, used for identity and user management
  • PropertySet, used to store key/value pairs
  • Active Objects, a new Object Relational Mapping layer used by plugins
  • 100s of Java classes, used to implement business logic (core and manager classes)
  • Apache Lucene, used for searching
  • JSP and Velocity, used for view templates
  • Quartz, used for job scheduling
  • OSWorkflow, a workflow API providing a very flexible workflow implementation
  • OFBiz (Apache’s Open for Business Project), open source enterprise automation software


In addition to the above, Atlassian has also introduced a Gadget Javascript Framework that can be used for the development of gadgets.


Plugin Development

The Atlassian Marketplace is the preferred distribution channel for custom plugins, both for free open-source or commercial add-ons. Various plugin modules are supported for functional areas such as reporting, workflows, custom fields, searching, remote access, as well as links and tabs. There are different versions of the Atlassian Jira Plugin Development Platform, each with a specific set of component versions. 

The major components in the platform for Jira Plugin Development are:

[list_icon color=”blue” type=”icon_arrow”]

  • Shared Access Layer (SAL), the API for accessing common services
  • Atlassian User Interface (AUI), set of reusable Javascript and CSS UI components
  • Atlassian Template Renderer (ATR), API for rendering textual content
  • Atlassian Event, library that allows plugins to send and consume internal messages
  • Activity Streams, API for sending and consuming activity streams
  • Gadgets, framework for developing OpenSocial gadgets
  • Universal Plugin Manager (UPM), tool for installing and managing plugins
  • Atlassian REST Plugin Module, create plugins points easily by exposing service and data entities
  • Trusted Apps, protocol for authenticating Atlassian applications
  • Application Links (AppLinks), a module that allows connection to external Atlassian applications
  • OAuth, the Atlassian implementation for accepting and sending authenticated requests
  • Plugin Framework, the framework that executes the plugins and manages available plugin modules
  • Active Objects, an ORM layer used for plugin data storage
  • SpeakEasy, an experimental extension mechanism for plugin prototyping
  • Jira Issue Collector, library for collecting user feedback from any page


Some Trivia

Jira is pronounced ‘JEEra’, based on the pronunciation of Kujira, which is Japanese for ‘whale’. Jira is used by companies such as NASA, Cisco, BMW and Facebook to manage their product development teams.


Jira Developer Resources

[list_icon color=”blue” type=”icon_arrow”]



Enhanced by Zemanta

Online Agile Project Management Tools

There are a number of online agile applications to assist with the management of agile software development projects. We’ll focus on agile tools that we’ve used on internal and external projects, namely Jira/Greenhopper, Pivotal Tracker and Trello.

Jira with Greenhopper

Greenhopper Agile tool

At Infoware Studios, we use Jira for all our projects. Jira is built around issues, which are captured, prioritised and assigned to team members. It is arguably the most powerful of the three systems. It allows one to customise workflow steps, manage teams and integrate with git, to name but a few features. 

Greenhopper then adds a wide selection of agile project management capabilities to Jira, for example:

[list_icon color=”blue” type=”icon_arrow”]

  • it can be used for scrum or Kanban projects
  • facilitates the building of a backlog by creating user stories
  • stories can be prioritised in the backlog by dragging and dropping, and estimated with ease
  • team members can visually update progress by moving stories
  • visualise processes across multiple Jira projects on a single board


Jira does not have any free pricing options, and starts at $50 per month. GreenHopper starts at $10 per month (pricing as at time of writing).

Pivotal Tracker

Pivotal Tracker agile toolPivotal Tracker has similar features to Jira/GreenHopper, the most obvious difference is the presentation of stories. It is a great tool for distributed teams, offering real-time collaboration with one of the best overview or dashboard displays. 

Pivotal tracker is free for public projects, individuals, non-profits and academic institutions. Pricing for teams start at $7/month for 3 collaborators (pricing as at time of writing).


trello agile tool

trello agile tool1

Trello has a very simple Kanban interface, making it a great tool for smaller projects and teams. 

It has some nice features for teams, such as voting, notifications and real-time collaboration. The default lists (swimlanes) are set up for Kanban, but one can easily add new lists for customized workflows. 

Trello offers a free version as well, and a single Business Class option for $25/month (pricing as at time of writing).

We recommend Jira with GreenHopper, here is an easy to use comparison tool between GreenHopper and some of the other options, such as Pivotal Tracker, Rally and VersionOne:


 Additional Resources:

[list_icon color=”blue” type=”icon_arrow”]


What others are saying: 

[list_icon color=”blue” type=”icon_arrow”]



Enhanced by Zemanta

Agile Marketing – JIRA project management tool

The agile way

At Infoware Studios, everything we do is managed by using an agile approach, including our marketing department. Not only are we fiercely passionate about agile, but we practise what we preach as well and follow agile principles in all our projects.

As someone who is new to agile, software development and the like, I speak from a non-technical perspective. As the marketer for Infoware Studios, I found that agile was a really productive way of managing and executing tasks and that it could apply to any field or industry, not just software development.

Using JIRA

So we implemented an agile approach in our marketing activities primarily using JIRA, the project and issue tracking software by Atlassian. JIRA is an excellent project management tool that allows you to create high level topics (called Epics), and then create tasks to be actioned under those topics (called Issues). Tasks can be assigned to people in your team. You can then create a weekly (or bi-weekly if you want) to-do list known as a Sprint, where you add all the tasks that need to be actioned in this time frame.  You then move the tasks, based on your activity, through the To-Do, In Progress and Done columns. Columns can be added, removed and renamed, so they don’t need to necessarily be the same as those mentioned. JIRA also allows you to draw reports and include more than one project on your overall view.

JIRA has much more functionality than the above basics and is often used in software development. However, for someone in a non-IT related field, it works perfectly for project management and can help you increase your productivity and manage your time, as well as creating visibility on the work that you do.

Find out more

Infoware Studios offers JIRA training for those who are interested in utilising this agile tool within your own businesses. Feel free to contact us if you are keen.


Enhanced by Zemanta


Permissions and Security

What is an issue ‘security level’?

Issue security levels allow you to control who can see individual issues within a project.

A security level’s members may consist of:

[list_icon color=”blue” type=”icon_arrow”]

  • Individual users
  • Groups
  • Project roles
  • Issue roles such as ‘Reporter’, ‘Project Lead’, and ‘Current Assignee’
  • ‘Anyone’ (eg. to allow anonymous access)
  • A (multi-)user picker custom field.
  • A (multi-)group picker custom field.


Here is a list the different global permissions and the functions they secure:

[list_icon color=”blue” type=”icon_arrow”]

  • JIRA System Administrators – Permission to perform all JIRA administration functions.
  • JIRA Administrators – Permission to perform most JIRA administration functions. A user with JIRA Administrators will be able to log in to JIRA without the JIRA Users permission, but may not be able to perform all regular user functions (e.g. edit their profile) unless they also belong to a group that has the JIRA Users permission.
  • JIRA Users – Permission to log in to JIRA.
  • Browse Users – Permission to view a list of all JIRA user names and group names.


Creating an issue security scheme

1. Depending on the Jira version, Choose Issues > Issue Security Schemes to open the ‘Issue Security Schemes’ page, which lists all the issue security schemes currently available in your JIRA installation.

JIRA permissions and security - admin

2. Click the Add Issue Security Scheme button

JIRA permissions and security - security schemes

3. In the Add Issue Security Scheme form, enter a name for the issue security scheme, and a short description of the scheme. Then click the Add button.

4. You will return to the Issue Security Schemes page, which now contains the newly added scheme.

JIRA permissions and security - issue security schemes

Adding a security level to an issue security scheme

[list_icon color=”blue” type=”icon_arrow”]

  • Choose Issues > Issue Security Schemes to open the ‘Issue Security Schemes’ page.
  • Click the name of any scheme, or the link Security Levels (in the Operations column) to open the Edit Issue Security Levels page.
  • In the Add Security Level box, enter a name and description for your new security level and then click Add Security Level.


Setting the Default Security Level for an issue security scheme

You can choose to specify a Default Security Level for your issue security scheme.

The Default Security Level is used when issues are created. If the reporter of an issue does not have the permission ‘Set Issue Security’, then the issue’s security level will be set to the Default Security Level. If the project’s issue security scheme does not have a Default Security Level, then the issue’s security level will be set to ‘None’. (A security level of ‘None’ means that anybody can see the issue.)

1. Choose Issues > Issue Security Schemes to open the ‘Issue Security Schemes’ page.

2. Click the name of any scheme or the link Security Levels to open the Edit Issue Security Levels page.

[list_icon color=”blue” type=”icon_arrow”]

  • To set the ‘default’ security level for an issue security scheme, locate the appropriate Security Level and click its Default link (in the Operations column).
  • To remove the ‘default’ security level from an issue security scheme, click the ‘Change default security level to “None”‘ link (near the top of the page).


Adding users/groups/project roles to a security level

[list_icon color=”blue” type=”icon_arrow”]

  • Choose Issues > Issue Security Schemes to open the ‘Issue Security Schemes’ page.
  • Click the name of any scheme or the link Security Levels to open the Edit Issue Security Levels page.
  • Locate the appropriate security level and click its Add link (in the Operations column), which opens the Add User/Group/Project Role to Issue Security Level page.
  • Select the appropriate user, group or project role, then click the Add button.
  • Repeat steps 4 and 5 until all appropriate users and/or groups and/or project roles have been added to the security level.


Assigning an issue security scheme to a project

1. Choose Projects > Projects to open the ‘Projects’ page. Select the name of the project of interest. The Project Summary page is displayed.

JIRA permissions and security - projects

2. In the Permissions section of the Project Summary page, click the link corresponding to the Issues label to open the Associate Issue Security Scheme to Project page. This will either be the name of the project’s current issue security scheme, or the word None.

JIRA permissions and security - permissions

3. Select the issue security scheme that you want to associate with this project.

JIRA permissions and security -associate scheme

4. If there are no previously secured issues (or if the project did not previously have an issue security scheme), skip the next step.

5. If there are any previously secured issues, select a new security level to replace each old level. All issues with the security level from the old scheme will now have the security level from the new scheme. You can choose ‘None’ if you want the security to be removed from all previously secured issues.

6. Click the ‘Associate‘ button to associate the project with the issue security scheme.

JIRA permissions and security -associate security

Deleting an issue security scheme

1. Choose Issues > Issue Security Schemes to open the ‘Issue Security Schemes’ page, which lists all the issue security schemes currently available in your JIRA installation.

2. Click the Delete link (in the Operations column) for the scheme that you want to delete. You cannot delete an issue security scheme if it is associated with a project. To do so, you must first remove any associations between the issue security scheme and projects in your JIRA installation.


Enhanced by Zemanta

Agile Tool Support: JIRA System Administrator Guide – JIRA Workflows

JIRA Training

As part of our JIRA training modules, we have developed instruction guides to assist users when making use of JIRA as an Agile tool. In this blog series, we will be providing tutorials for JIRA System Administrators on how to perform certain functions in JIRA. Part 1 deals with the Issues and Fields elements in JIRA. In Part 2, we take a look at JIRA Workflows.

JIRA Workflows

A JIRA workflow is the set of steps (or statuses) and transitions that an issue goes through during its lifecycle. Workflows typically represent business processes.

JIRA ships with a built-in workflow called ‘jira’. This workflow, also known as the ‘system workflow’ cannot be edited, but you can customise the issue lifecycle by initially copying the system workflow or creating new workflows from scratch. Each workflow can be associated with particular projects and (optionally) particular issue type(s), via a workflow scheme.

JIRA’s system workflow

JIRA Workflows system

JIRA workflows consist of steps and transitions:

step represents a workflow’s current status for an issue. An issue can exist in one step only at any point in time. Each workflow step corresponds to a linked status. When an issue is moved into a particular step, its status field is updated to the value of the step’s linked status. In the diagram above, the blue boxes represent steps/statuses.

transition is a link between two steps. A transition allows an issue to move from one step to another step. For an issue to be able to progress from one particular step to another, a transition must exist that links those two steps. Note that a transition is a one-way link, so if an issue needs to move back and forth between two steps, two transitions need to be created.

About ‘Open’ and ‘Closed’ issues

Within JIRA an issue is determined to be Open or Closed based on the value of its Resolution field not its Status field.

[list_icon color=”blue” type=”icon_arrow”]

  • An issue is determined to be Open if its Resolution field has not been set.
  • An issue is determined to be Closed if its Resolution field has a value (e.g. FixedCannot Reproduce).


This is true regardless of the current value of the issue’s Status field (OpenIn Progress, etc).

So if you need your workflow to force an issue to be Open or Closed, you will need to set the issue’s Resolution field during a transition. There are two ways to do this:

[list_icon color=”blue” type=”icon_arrow”]

  • Set the Resolution field automatically via a post function.
  • Prompt the user to choose a Resolution via a screen.



Adding a new status

Select Administration > Issues > Statuses to open the View Statuses page, which lists all statuses, along with a form underneath to add a new status.

JIRA Workflows - view statuses

Complete the Add New Status form towards the end of the page. The View Statuses page can be used to edit and delete Statuses.

Adding a new workflow

Select Administration > Issues > Workflows to open the Workflows page, which shows a list of all existing workflows in your system.

JIRA Workflows - existing workflows

Create a new workflow in JIRA using either of the following methods:

1. Create a ‘blank’ workflow by first clicking the Add Workflow button and in the resulting Add Workflow dialog box:

[list_icon color=”blue” type=”icon_arrow”]

  • Type a Name (usually 2-3 words) to identify your new workflow.
  • (Optional) Type a detailed Description of your new workflow.
  • Click the Add button. The workflow will open in edit mode, showing your new workflow containing a step called Open. If you are viewing your workflow inDiagram edit mode, you will see which has an incoming transition called Create.


2. Copy an existing workflow (useful if your new workflow can created by applying modifications to an existing workflow), by clicking the Copy link next to the existing workflow and in the resulting Copy Workflow dialog box:

[list_icon color=”blue” type=”icon_arrow”]

  • Type a Workflow Name (usually 2-3 words) to identify your new workflow.
  • (Optional) Type a detailed Description of your new workflow.
  • Click the Copy button. The workflow will open in edit mode, showing the layout of your copied workflow.


To access inactive workflows, click the Inactive list heading to expand the list of inactive workflows.

Once you have created your new workflow (especially if you created a ‘blank’ workflow) you may want to customise it by adding and/or editing steps and transitions as we discussed earlier.

When you have finished customising your new workflow it must be activated by following this steps:

[list_icon color=”blue” type=”icon_arrow”]

  • Create a workflow scheme that references your workflow and optionally associate it with the relevant issue type(s).
  • Associate the workflow scheme with the relevant project(s).




Enhanced by Zemanta

Agile Tool Support: JIRA System Administrator Guide – Issues and Fields

JIRA Training

As part of our JIRA training modules, we have developed instruction guides to assist users when making use of JIRA as an Agile tool. In this blog series, we will be providing tutorials for JIRA System Administrators on how to perform certain functions in JIRA, starting with the Issues and Fields elements in JIRA.

Issues Types in JIRA

Everyone’s needs are different and so JIRA also allows you to add, edit and delete your own custom issue types. You can also control the set of available issue types for each project by Associating Issue Types with Projects.

Creating an issue type

Step 1: Log in as a user with the JIRA Administrators.

Step 2: Select Administration > Issues > Issue Types to open the Issue Types page, which lists all issue types.

Issue Types 1
Different JIRA issue Types

Step 3: Click the Add Issue Type button to open the Add New Issue Type dialog box

Add new Issue type in JIRA

Step 4: Add New Issue Type and click the add button. You can Delete or Edit by going to Administration > Issues > Issue Types to open the Issue Types page and click the Edit link.

Fields in JIRA

JIRA enables you to add custom fields in addition to the built-in fields and you could choose to create this field as a Free Text Field, in which users can type whatever they wish, or as a Select List, which will force users to select from a list of pre-defined options.

To create a new field, associate it with a context, and add it to a screen:

Step 1: Select Administration > Issues > Fields > Custom Fields (tab) to open the Custom Fields page.

Step 2: Click the Add Custom Field button.

JIRA Fields Create Custom field in JIRA

Step 3: Select the appropriate type of field for your custom field, in this instance we will choose Text Field.

Step 4: Click the Next button to open the Create Custom Field – Details (Step 2 of 2) page.

Create Custom field in JIRA 2

Step 5: The Field Name will appear as the custom field’s title in both entering and retrieving information on issues, whereas the Field Description is displayed beneath the data entry field when entering new issues and editing existing issues, but not when browsing issues.

Step 6: Select an appropriate Search Template (see above). Pre-configured search templates are available for each shipped custom field type. A description of each search template will appear next to the select list when you select one.

Step 7: Select one or any number of ‘Issue Types‘ to which this custom field will be available. Alternatively, select ‘Any issue type‘ to make the custom field available to all Issue Types. You can change this in the future if you need to.

Step 8: Select the applicable context, that is, the ‘Project(s)‘ to which the custom field will be available. Alternatively, select ‘Global context‘ to make the custom field available to all projects. Click the ‘Finish‘ button.

Step 9: This will bring you to the screen association page. Select a screen, or screen tab, on which to display your newly created custom field. You must associate a field with a screen before it will be displayed. New fields will be added to the end of a tab and click on update.

Associating fields in JIRA

Newly created custom field will be displayed in a summary of all custom fields in your JIRA system. You can edit, delete or configure custom fields here.

Summary of custom fields in JIRA


Related articles

Enhanced by Zemanta