JIRA Issue Links Report Plugin

Name JIRA Issue Links Report Plugin
Version 1.0
Product Versions 3.6.x - 3.10.x, requires JVM 1.5+
Author(s) Wojciech Seliga
Homepage http://confluence.atlassian.com/display/JIRAEXT/JIRA+Issue+Links+Report+Plugin
Price free
License Apache 2.0
JavaDocs  
IssueTracking http://developer.atlassian.com/jira/browse/ILR
Download JAR jira-issue-links-report-plugin-1.0.jar
Download Source http://svn.atlassian.com/svn/public/contrib/jira/jira-issue-links-report-plugin/

Description/Features

The plugin currently adds new report to JIRA capabilites: Issue Links Matrix.
Features:

  • support for any filter (respects issue ordering) and project
  • full text or abbreviated links name
  • link type color encoding or black-and-white standard output
  • support for many link types simultaneously
  • support for inward and outward links (separetly or togehter)
  • explicit or automatic selection of issues to include in report
  • security configuration for issues is honored - if user does not have access to some issue - the issue will not be included in the report (similarily to links in standard JIRA issue view)
  • self-explanatory legend (I hope)

Screenshots speak louder than words

Installation & System Configuration

  • Just download jar file, copy it to your WEB-INF/lib directory and restart JIRA.
  • Tested on JIRA 3.8 and 3.10 Enterprise running on Tomcat 5.5.x with FF 2 and IE 6.
  • Works only with Java 1.5+ - sorry as C++ veteran I almost could not bear Java prior 1.5... (just kidding, but anyway if there is a strong need to backport it - I may do it)
  • Issue Linking in JIRA administration panel must be switched on

Reading the matrix

In order to conserve the screen space and make non-trivial size matrices still usable, the plugin uses some convention.

  • full issue link names: row to column order, e.g. issues TST-5 (in some row) "is duplicated by" issue TST-4 (in some column)
  • abbreviated issue link names: row to column order + observe arrow icons which illustrate direction (inward, outward)

Small extras:

  • hovering mouse pointer over issue key gives you tooltip with issue summary
  • hovering mouse pointer over abbreviated link symbol gives you full link name

Configuration

Report configuration parameters

described in detail in report configuration screen

Color configuration

To customize colors used to denote various link types, please extract jira-issue-links-report-plugin.properties file from jar, put it into WEB-INF/classes and modify as needed using RGB color encoding. Restart JIRA afterwards.

Potential usage:

  • tracability matrix (e.g. columns are requirements or stories, rows are detailed requirements or concrete tasks which implement them)
  • stakeholder management matrix (stakeholders are maintained as "issues" and linked to issues they request - in this way it is also possible
    to protect privacy of stakholders (important in some companies): stakeholders can be kept in a separate project with different permissions scheme and whereas any user
    can view and comment on any requirement, the users cannot who is the requestor (or requestors) of given issues
  • QA coverage matrix (tests are linked to issues/requirements/bugs)
  • general helper for keeping issues clean and consistent in JIRA (e.g. easier visual detection of dependent issues)

Support, troubleshooting, ideas and suggestions

Please do not post your comments to this page, as it quickly will become unmantainable and unreadable.
Please use JIRA project for suggesting improvements or reporting any bugs.
For support or general discussion (including troubleshooting) please use JIRA User Forum

Performance and some technical details:

  • the matrix is built in memory-conserving way - that is the memory complexity is lineary propotional to the number of depicted links between issues and does not depend on the number of issues themselves (in X and Y axis)
  • in typical projects with sparse linking - very fast (miliseconds to generate whole matrix for 10 - 20 issues x 100 issues)
  • in artificially generated set of issues with quite dense linking - about 10 seconds to generate matrix 220 x 220 issues. I wonder if such big matrix is of any use (for human being at least)...
  • with matrices bigger than about 250 x 500 issues with my JIRA installation I encounter "Out of heap memory" problem, which is not caused by the matrix generation itself, but rather by velocity template processing by JIRA (which is somewhat astonishing as HTML for matrix 250 x 500 consumes about 15 - 20 MB). Anyway with such big matrices (and generated HTML) FireFox 2.x becomes unresponsively sluggish and only Internet Explorer suprisingly stays vigorous.

Further ideas for improvement (let me know if they make sense or not and drop your own thoughts)

  • fast deletion of existing issue links (the best AJAX based) by clicking on a matrix cell
  • fast addition of new issue links (the best AJAX based) by clicking on a matrix cell
  • Excel output
  • bulk operations on whole column or row (i.e. on all issues having given type of link with given issue)
  • creation of graphical issue links dependency map (see http://jira.atlassian.com/browse/JRA-2544)
  • portlet offering the same functionality

Note to administrators and developers

I've built this plugin in Test Driven way. So most of backend code is covered by unit tests (HTML rendering part was left uncovered).
Unfortunately I could not test everything in full isolation from core JIRA components (e.g. as some importent JIRA components - like issue or generic value are just classes and not interfaces).
That is why I also prepared some unit tests working together with JIRA and started when the plugin is asked for generating report.
You can switch on this unit tests (will be launched only once - before the first generated report) by setting the following environmental variable TEST_ISSUE_LINKS_REPORT before you start your web app server
(e.g. on Unix machines)

export TEST_ISSUE_LINKS_REPORT=true

Unit tests results will be directed to standard output. Please make sure you have junit.jar in your classpath (WEB-INF/lib).
You may use this functionality to check if plugin works on certain JIRA version (e.g. before upgrading, in test environment).
You should not use launch this unit tests in production as the tests create temporary project, link types, a lot of issues, etc.
In case of some nasty problem you may end up with some rubbish in your JIRA instance...
If anybody knows how to write decent automatic integration or non-trivial unit tests with JIRA - I would be happy to learn.

Version History

Version JIRA changes
1.0 3.6.x - 3.10.x initial release

Open Issues

Atlassian Developer Network JIRA (4 issues)
T Key Summary Reporter Status
New Feature ILR-1 showing indirect links Serdar Sultanoglu Open
New Feature ILR-2 Excel export would be great Bernhard Riegel Open
New Feature ILR-3 summary instead of issue-keys in column/row headers to make the matrix "human readable" Bernhard Riegel Open
New Feature ILR-4 Bulk link : An issue should be allowed to be linked to multiple issues in one shot or vice a versa Vishwajeet Singh Open

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Sep 06, 2007

    tina zhang says:

    Hi folks,     on which JVM did you test on? i get the following e...

    Hi folks,

        on which JVM did you test on? i get the following error message, when jira was trying to load the plugin. We are using JDK is 1.5.0_10, and my JIRA version is Enterprise Edition 3.10.1

    JIRA Issue Links Report Plugin

    Description: Issue Links Report
    *Vendor:*Wojciech Seliga
    Plugin Version: 1.0
    Jira Versions: 3.6 - 4.0

    Issue Links Matrix (issue-links-matrix-report)
    i18n description
    *Error:*There was a problem loading the descriptor for module 'report' in plugin 'JIRA Issue Links Report Plugin'. Class version is incompatible with current JVM: org.issuelinksreport.IssueLinksMatrixReport

    1. Sep 06, 2007

      Wojciech Seliga says:

      I tested in with Sun Java 1.5 (1.5.003b07) and 1.6 (1.6.002b06)on Windows and Li...

      I tested in with Sun Java 1.5 (1.5.0_03-b07) and 1.6 (1.6.0_02-b06)on Windows and Linux.

      I've double checked org.issuelinksreport.IssueLinksMatrixReport.class file in downloadable jar and it its version is 1.5 (00 00 00 31 hexadecimally in class file header).

      Could you check if you really use JVM 1.5?

      Let me know,

      Wojtek 

      1. Sep 07, 2007

        tina zhang says:

        yes, you will see the following message: Microsoft Windows XP \Version 5.1.2600\...

        yes, you will see the following message:

        Microsoft Windows XP [Version 5.1.2600]
        (C) Copyright 1985-2001 Microsoft Corp.

        C:\Documents and Settings\Administrator>java -version
        java version "1.5.0_10"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
        Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)

        C:\Documents and Settings\Administrator>

        1. Sep 07, 2007

          Wojciech Seliga says:

          Do you use JIRA standalone? Please check your JAVAHOME variable before you start...

          Do you use JIRA standalone? Please check your JAVA_HOME variable before you start Tomcat. You may have several JVMs installed on your machine.

          Maybe the jar you've downloaded is corrupted???

          I would also appreciate log output (showing the exception which occurred during plugin initialization).

          Regards,

          Wojtek 

          1. Sep 07, 2007

            tina zhang says:

            yes, I use JIRA standalone, and I have installed two version JDKs:1.4.207 and 1....

            yes, I use JIRA standalone, and I have installed two version JDKs:1.4.2_07 and 1.5.0_10, but I set JAVA_HOME  1.5.0_10. Do you mean I should to uninstall 1.4.0_07 and keep only one JDK?

             Maybe the jar you've downloaded is corrupted???-----you mean the plugin jar I downloaded is corrupted?

            Please tell me how I should do, thank you!! 

            1. Sep 07, 2007

              Wojciech Seliga says:

              No normally you can have any number of JDKs on your machine. Just if you use JIR...

              No - normally you can have any number of JDK-s on your machine. Just if you use JIRA standalone - before you start it, type "set JAVA_HOME=<path to your JDK 1.5.x>" and then lunch Tomcat (bin\startup.bat for Windows).

              Please also try one more time to download the jar and verify it (e.g. with winzip or something similar).

              Please make sure that after starting JIRA you have something like:

              If you encounter issues starting up JIRA Standalone Edition, please see the Troubleshooting guide at http://confluence.atlassian
              .com/display/JIRA/Installation+Troubleshooting+Guide
              Using CATALINA_BASE: C:\dev\JIRA-Enterprise-3.8
              Using CATALINA_HOME: C:\dev\JIRA-Enterprise-3.8
              Using CATALINA_TMPDIR: C:\dev\JIRA-Enterprise-3.8\temp
              Using JRE_HOME: J:\ - here the path to your JDK 1.5+ should point

              I've also asked you for full trace log from your JIRA startup process. 

              Best regards,

              Wojtek 

            2. Sep 07, 2007

              Wojciech Seliga says:

              Or there is the simplest way: in JIRA go into administration section and check S...

              Or there is the simplest way: in JIRA go into administration section and check System Info. There is JVM version there...


              Wojtek

          2. Sep 09, 2007

            tina zhang says:

            Yes, I use JIRA standalone, and I have installed two version JDK: 1.4.207 and 1....

            Yes, I use JIRA standalone, and I have installed two version JDK: 1.4.2_07 and 1.5.0_10, but I set JAVA_HOME with 1.5.0.10. Do you mean I should uninstall 1.4.2_07 JDK?

            Maybe the jar you've downloaded is corrupted???------ you mean the plugin jar that I downloaded is corrupted?

            Please tell me how I should do, thank you!! 

  2. Oct 16, 2007

    Anton Emelianov says:

    Hi Wojtek, I run your plugin with approximately 80 by 55 matrix.&nbsp; It is ve...

    Hi Wojtek,

    I run your plug-in with approximately 80 by 55 matrix.  It is very useful. But there are very few issues that are linked together and user (me) has to do a lot of scrolling up-down-left-right to see them all. I was wondering if it is possible to generate matrix that filters issues out that don't have any links.

    Thanks,

    Anton  

    1. Oct 17, 2007

      Wojciech Seliga says:

      Hi Anton, The only thing the current version can help you in is "Auto" setting ...

      Hi Anton,

      The only thing the current version can help you in is "Auto" setting for X and Y axis.

      However your suggestion to add capability to filter out all rows/columns without any link seems very reasonable. I will try to implement it soon.

      Regards,

      Wojtek

  3. Apr 01

  4. Apr 01

    Serdar Sultanoğlu says:

    Hi Wojciech&nbsp; Is this project is currently active? I am plannig to use it bu...

    Hi Wojciech 

    Is this project is currently active? I am plannig to use it but i think i find a bug. Do you want me to report it?

    Regards,

    Serdar 

    1. Apr 02

      Wojciech Seliga says:

      Hi Serdar, In last couple of months I could not find time to implement new featu...

      Hi Serdar,

      In last couple of months I could not find time to implement new features. Hopefully I will soon.

      Sure, let report the bug, but use JIRA for that: http://developer.atlassian.com/jira/browse/ILR\\

      Cheers,

      Wojtek 

  5. Apr 21

    asukataozi says:

    Hi, I used Jira enterprise3.11standalone,and When I used your plugin to create a...

    Hi,

    I used Jira enterprise-3.11-standalone,and When I used your plugin to create an Issue Link Report,it seemed to no Issues Link Types for me to choose and my sceeen was different from yours!

    Could tell me why?Thanks~~! Unable to render embedded object: File (My Screen) not found.

    And errors occured in the log:

    2008-04-21 17:04:28,312 http-8080-Processor24 WARN [velocity] org.apache.velocit
    y.runtime.exception.ReferenceException: reference : template = templates/issue-l
    inks-report/issue-links-report.vm [line 142,column 99] : $yIssue.getSummary() is
     not a valid reference.
            at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTRefere
    nce.java:277)
            at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java
    :55)

    1. Apr 22

      Wojtek Seliga says:

      Hello, Unfortunately I am not able to see the picture I believe you intended to ...

      Hello,

      Unfortunately I am not able to see the picture I believe you intended to attach.

      So I am guessing here.

      Have you switched on issue linking in JIRA?

      Have you defined at least one issue link type?

      Cheers,

      Wojtek