JIRA 5.2 Essentials - Patrick Li - E-Book

JIRA 5.2 Essentials E-Book

Patrick Li

0,0
51,59 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Atlassian's JIRA provides issue tracking and project tracking for software development teams to aid speed of development and quality of code. This book will show you how to develop software more efficiently by planning, designing, and customizing your own JIRA implementation.JIRA is a popular issue tracking product designed for better bug tracking, issue tracking, and project management. JIRA 5.2 Essentials provides a comprehensive guide covering everything you will need to plan, set up, design, customize, and manage your software development projects efficiently and to a professional standard.In this practical book you will learn how to design and implement JIRA for project and issue tracking. You will jump into the installation and design of JIRA before going through the required techniques to effectively manage issues that threaten your software development project.Each chapter builds on the last, taking you through important concepts and techniques such as business processes and workflows, setting up e-mail notifications, field and screen management, and reporting. Using these techniques you will be able to make JIRA adapt to your organization and save time and energy by developing software more efficiently.Newly improved and updated to JIRA 5.2 this book also includes a section about GreenHopper and Agile development with JIRA.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 482

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

JIRA 5.2 Essentials
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Instant Updates on New Packt Books
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Getting Started with JIRA
The JIRA architecture
High-level architecture
Web browsers
Application services
Data storage
The JIRA installation directory
The JIRA home directory
System requirements
Hardware requirements
Software requirements
Operating systems
Java platforms
Databases
Application servers
Installation options
Installing JIRA
Installing Java
Installing MySQL
Prepare MySQL for JIRA
Installing JIRA
Obtaining and installing JIRA
Configuring jira-application.properties
The JIRA setup wizard
Configuring JIRA as a service
Post-installation configurations
Configuring the application server
Configuring HTTPS
Installing the database drivers
Managing the database setup
Summary
2. Project Management
The JIRA hierarchy
Project category
Project
Issue
Field
Project permissions
JIRA Administration
Creating projects
Project interfaces
Project administration
The Summary tab
The Components tab
Creating components
Managing components
Component lead and default assignee
The Versions tab
Creating versions
Managing versions
The Issue Collectors tab
Other tabs
Project Browser
The project category revisited
Browsing a project
The Summary tab
The Issues tab
The Road Map tab
The Change Log tab
The Versions/Components tab
The Source/Reviews tab
The help desk project
Creating a new project category
Creating a new project
Assigning a project to a category
Creating new components
Creating new versions
Putting it together
Summary
3. Issue Management
Understanding issues
What does an issue look like?
Working with issues
Creating an issue
Editing an issue
Deleting an issue
Moving an issue between projects
Casting a vote on an issue
Receiving notifications on an issue
Assigning issues to others
Issue linking
Enabling issue linking
Creating link types
Linking other issues
Linking remote contents
Issue cloning
Time tracking
Enabling time tracking
Specifying original estimates
Logging work
Issues and comments
Adding comments
Managing your comments
Permalinking a comment
Attachments
Enabling attachments in JIRA
Attaching files
Attaching screenshots
Issue types and subtasks
Creating issue types
Deleting issue types
Subtasks
Enabling subtasks
Creating subtasks
Issue type schemes
Creating issue type schemes
The Help Desk project
Creating issue types
Creating an issue type scheme
Putting it together
Summary
4. Field Management
Built-in fields
Custom fields
Custom field types
Simple fields
JIRA specialized fields
Multi-value fields
Searchers
Custom field context
Managing custom fields
Adding a custom field
Editing/deleting a custom field
Configuring a custom field
Adding custom field contexts
Configuring select options
Setting default values
Field configuration
Adding a field configuration
Editing/deleting a field configuration
Copying a field configuration
Managing field configurations
Field description
Field requirement
Field visibility
Field rendering
Screens
Field configuration scheme
Managing field configuration schemes
Adding a field configuration scheme
Editing/deleting a field configuration scheme
Copying a field configuration scheme
Configuring a field configuration scheme
Associating a field configuration scheme with a project
The Help Desk project
Setting up a custom field
Setting up the field configuration
Setting up a field configuration scheme
Putting it together
Summary
5. Screen Management
JIRA and screens
Working with screens
Adding a screen
Editing/deleting a screen
Copying a screen
Configuring screens
Adding a field to a screen
Deleting a field from a screen
Reordering fields on a screen
Using screen tabs
Adding a tab to a screen
Editing/deleting a tab
Reordering tabs
Working with screen schemes
Adding a screen scheme
Editing/deleting a screen scheme
Copying a screen scheme
Configuring a screen scheme
Adding an association
Editing/deleting an association
An issue type screen scheme
Adding an issue type screen scheme
Editing/deleting an issue type screen scheme
Copying an issue type screen scheme
Configuring an issue type screen scheme
Associating issue types to screen schemes
Editing/deleting an association
Activating an issue type screen scheme
The Help Desk project
Setting up screens
Setting up screen schemes
Setting up issue type screen schemes
Putting it together
Summary
6. Workflows and Business Processes
Mapping business processes
Understanding workflows
Managing workflows
Creating a workflow
Editing a workflow
Publishing a draft
Steps and issue statuses
Adding a step to a workflow
Editing a step
Deleting a step
Transitions
Adding a transition between steps
Editing a transition
Deleting a transition
Configuring a transition
Conditions
Adding a condition to transition
Validators
Adding a validator to transition
Post functions
Adding a post function to transition
Using the workflow designer
Deleting a workflow
Copying a workflow
Importing/exporting a workflow
Using the JIRA workflow sharing plugin
Exporting a workflow bundle
Importing a workflow bundle
Using other workflow plugins
JIRA Suite Utilities
JIRA Workflow Toolbox
JIRA Misc Workflow Extensions
JIRA Workflow Enhancer
Workflow schemes
Creating a workflow scheme
Configuring a workflow scheme
Assigning a workflow to an issue type
Editing/deleting an association
Editing a workflow scheme
Deleting a workflow scheme
Copying a workflow scheme
Activating a workflow scheme
The Help Desk project
Setting up an issue status
Setting up workflows
Setting up workflow schemes
Putting it together
Summary
7. E-mails and Notifications
JIRA and e-mail
Mail servers
Working with outgoing mails
Adding an outgoing mail server
Disabling the outgoing mail
Enabling SSL over SMTP
Sending a test mail
Mail queues
Viewing the mail queue
Flushing the mail queue
Manually sending e-mails
Events
Adding a mail template
Adding a custom event
Firing a custom event
Notifications
The notification scheme
Adding a notification scheme
Editing a notification scheme
Deleting a notification scheme
Copying a notification scheme
Managing a notification scheme
Adding a notification
Deleting a notification
Assigning a notification scheme
Troubleshooting notifications
Incoming e-mails
Adding an incoming mail server
Mail handlers
Creating a new issue or adding a comment to an existing issue
Adding a comment with the entire e-mail body
Adding a comment from the non-quoted e-mail body
Creating a new issue from each e-mail message
Adding a comment before a specified marker or separator in the e-mail body
Adding a mail handler
Editing and deleting a mail handler
The Help Desk project
Setting up mail servers
Setting up custom events
Setting up a notification scheme
Setting up notifications
Putting it together
Summary
8. Securing JIRA
User directories
Managing user directories
Connecting to LDAP
Users
User Browser
Adding a user
Enabling public signup
Enabling CAPTCHA
Groups
Group Browser
Adding a group
Editing group membership
Deleting a group
Project roles
Project Role Browser
Adding a project role type
Editing a project role
Deleting a project role
Managing default members
Assigning project role members
JIRA permissions hierarchy
Global permissions
JIRA system administrator versus JIRA administrator
Configuring global permissions
Granting global permissions
Revoking global permissions
Project permissions
Permission schemes
Adding a permission scheme
Editing a permission scheme
Deleting a permission scheme
Copying a permission scheme
Configuring a permission scheme
Granting a permission
Revoking a permission
Applying a permission scheme
Issue security
Issue security scheme
Adding an issue security scheme
Configuring an issue security scheme
Adding a security level
Assigning users to a security level
Setting a default security level
Deleting a security level
Applying an issue security scheme
Troubleshooting permissions
Workflow security
The Help Desk project
Setting up groups
Setting up user group association
Setting up permission schemes
Setting up permissions
Putting it together
Summary
9. Searching, Reporting, and Analysis
Search interface and options in JIRA
Issue navigator
Basic search
Advanced search (JQL)
Quick search
Working with search results
Exporting search results
Customizing the column layout
Sharing search results
Filters
Creating a filter
Managing filters
Editing and sharing a filter
Subscribing to a filter
Deleting a filter
Changing the ownership of a filter
Reports
Generating a report
Dashboard
Managing dashboards
Creating a dashboard
Editing and sharing a dashboard
Deleting a dashboard
Configuring a dashboard
Setting a layout for the dashboard
Gadget
Placing a gadget on the dashboard
Moving a gadget
Editing a gadget
Deleting a gadget
The Help Desk project
Setting up filters
Setting up dashboards
Setting up gadgets
Putting it together
Summary
10. General Administration
Customizing the look and feel
Changing the JIRA logo
Customizing colors
Changing gadget colors
Setting the date/time format
General configurations
Settings
Internationalization
Setting default language
Setting user language
Options
Setting the announcement banner
Backing up and restoring JIRA
Creating an XML backup
Restoring from an XML backup
Searching and indexing
Add-ons
Atlassian Marketplace
Universal Plugin Manager
Finding new add-ons
Managing add-ons
Installing an add-on
Configuring an add-on
Enabling/disabling an add-on
Updating an add-on
Uninstalling an add-on
Viewing the audit log
Enabling the safe mode
Summary
11. Advanced Features
GreenHopper
Getting GreenHopper
Starting with GreenHopper
Scrum
Kanban
Board
Card
Story
Sprint
Epic
Backlog
Working with boards
Creating a new board
Working with Scrum boards
Working with Epics
Working with sprints
Working with Kanban boards
Setting up column constraints
Releasing a version
Setting GreenHopper as the home page
Issue Collector
Setting up an issue collector
Embedding the issue collector
Summary
Index

JIRA 5.2 Essentials

JIRA 5.2 Essentials

Copyright © 2013 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: April 2013

Production Reference: 1090413

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78217-999-3

www.packtpub.com

Cover Image by Jarek Blaminsky (<[email protected]>)

Credits

Author

Patrick Li

Reviewers

Peter Callies

Sergey Markovich

Acquisition Editor

Andrew Duckworth

Lead Technical Editor

Sweny Sukumaran

Technical Editors

Lubna Shaikh

Jalasha D'costa

Project Coordinator

Shiksha Chaturvedi

Proofreader

Ting Baker

Indexer

Monica Ajmera Mehta

Graphics

Sheetal Alute

Aditi Gajjar

Production Coordinator

Shantanu Zagade

Cover Work

Shantanu Zagade

About the Author

Patrick Li is the co-founder and senior engineer of AppFusions. AppFusions is the leading Atlassian partner, specializing in integration solutions with many enterprise applications and platforms, including IBM Connections, Jive, Google Apps, Box, SugarCRM, and more.

He has worked in the Atlassian ecosystem for over five years, developing products and solutions for the Atlassian platform, and providing expert consulting services. He is one of the top contributors to the Atlassian community, providing answers and suggestions on the Atlassian user forum.

He has extensive experience in designing and deploying Atlassian solutions from the ground up, and customizing existing deployments for clients across verticals such as healthcare, software engineering, financial services, and government agencies.

I would like to thank my wife, Katherine, who supported and encouraged me along the way, especially during my relocation to San Francisco from Sydney. I would also like to thank all the reviewers for their valuable feedback, and also the publishers/coordinators, for their help in making this happen.

About the Reviewers

Peter Callies has been developing software and leading teams for over 20 years. He is currently an Agile coach, helping teams and enterprises maximize their value in their product development systems.

He has been using JIRA for three years to help manage traditional projects, plan and track work for Scrum teams, and visualize flow with Kanban.

Peter can be found on Twitter (@pcallies) and LinkedIn (http://www.linkedin.com/in/petercallies).

Sergey Markovich is currently a cofounder of Plugenta Labs, a company focusing on the development of add-ons for enterprise software, and an independent Atlassian JIRA and Confluence contractor.

In the past, he was a code wizard in several multinational corporations and startups and is a computer science bachelor.

I want to thank my wife for her constant support in all my plans and activities and putting up with me while I work late hours.

I also want to say warm words to everybody involved with Plugenta Labs. It's a real pleasure to work with them as I keep learning from them every day.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books. 

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Instant Updates on New Packt Books

Get notified! Find out when new books are published by following @PacktEnterprise on Twitter, or the Packt Enterprise Facebook page.

Preface

JIRA 5 was unveiled during the Atlassian Summit in 2011, the annual conference event that brings together users, partners, and experts around the world. It was at this time that we were given the first glimpse of the advancements and new direction that Atlassian is taking JIRA, the world's most popular issue-tracking software. Fast forward to 2012, and Atlassian announced its JIRA Enterprise offering and shortly after, JIRA 5.1, another monumental milestone for this amazing software. With this new release, Atlassian took JIRA to the next level, transforming it from a single software package into a complete platform that supports agile practices through plugins such GreenHopper and Bonfire, adding social aspects through features such as sharing and mentions, and a much improved user experience from the interface down to its core performance.

While JIRA 5 introduces numerous new features and enhancements, some of the more prominent changes for the old-time users are on the newly improved user interface designs. For this reason, we will assume nothing, and introduce JIRA fresh from the perspective of JIRA 5.

Packed with real-life examples and step-by-step instructions, this book will help you become a JIRA expert.

What this book covers

This book is organized into eleven chapters. Chapter 1, Getting Started with JIRA, starts with setting up your own JIRA, and the subsequent chapters will introduce the key features and concepts. With each chapter, you will learn important concepts such as business processes, workflows, e-mails, and notifications, and you will have the opportunity to put your newly acquired knowledge into practice by following a live JIRA sample implementation.

Chapter 1, Getting Started with JIRA, serves as a starting point for the book and aims to guide you through setting up a local copy of the JIRA application that will be used throughout the book. For seasoned JIRA experts, this will both refresh your knowledge and also introduce you to the new changes in JIRA 5. By the end of the chapter, you should have a running JIRA application.

Chapter 2, Project Management, covers how to set up projects and project-related administration tasks in JIRA. The concept of schemes will also be introduced, as it is the core concept in JIRA administration.

Chapter 3, Issue Management, covers everything related to issue creation and operations that can be performed on an issue (excluding workflow transitions). Furthermore, this chapter will gently touch on the various aspects of issues, as they are the focal point of JIRA. This chapter will also serve as an opportunity to show and allow you to set up dummy data that will be used by the sample project.

Chapter 4, Field Management, covers how JIRA collects data through the use of fields and how to expand on this ability through the use of custom fields. The chapter will then continue with the various behaviors that can be configured for fields.

Chapter 5, Screen Management, builds on the preceding chapter and explores the concept of screens and how users can create and manage their own screens. This chapter will tie in with all the previous chapters to show the power behind JIRA's screen design capabilities.

Chapter 6, Workflows and Business Processes, explores the most powerful feature offered by JIRA, workflows. The concept of issue life cycle will be introduced and various aspects of workflows explained. This chapter will also explore the relationship between workflows and other JIRA aspects previously covered, such as screens. The concept of JIRA extensions will also be briefly touched on in the sample project, using some popular free extensions.

Chapter 7, E-mails and Notifications, focuses on how to get automatic e-mail notifications from JIRA and explores the different settings that can be applied. This is a very important and powerful feature of JIRA and also a critical part of the example project for this book. This chapter will also tie in with the workflow chapter and explain in detail how JIRA manages its notification mechanism.

Chapter 8, Securing JIRA, focuses on the different security control features offered by JIRA. As this topic affects all aspects of JIRA, all previous topics will be touched on, explaining how security can be applied to each. We will also cover LDAP integration where you can hook up your JIRA with an existing LDAP system for user management.

Chapter 9, Searching, Reporting, and Analysis, will focus on how data captured in JIRA can be retrieved to provide various types of reporting features. We will also introduce the new search features introduced in JIRA 5.

Chapter 10, General Administration, covers other administration features offered by JIRA, including using add-ons and the Atlassian Marketplace. These features often do not form the backbone of a JIRA installation but can be very useful when used properly.

Chapter 11, Advanced Features, covers advanced features that can help to change your JIRA into more than just a traditional issue-tracking system. We will look at how you can run agile projects with JIRA through the use of GreenHopper, and turn JIRA into an effective feedback collection system.

What you need for this book

The installation package used in this book will be the Windows Installer standalone distribution, which you can get directly from Atlassian at http://www.atlassian.com/software/jira/download.

At the time of writing, the latest version of JIRA is 5.2.5.

You will also need additional software, including Java SDK, which you can get from http://java.sun.com/javase/downloads and MySQL, which you can get from http://dev.mysql.com/downloads.

Who this book is for

If you want to get started with JIRA and learn how to install, use, and manage your instances, then this is the perfect book for you.

You will need to be familiar with the basic computer operations, specifically the system on which you will use JIRA, and software project management. For the first chapter, it's assumed that you are familiar with the operating system you are going to install JIRA on.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "we will be referring to this directory as JIRA_INSTALL."

A block of code is set as follows:

<security-constraint> <web-resource-collection> <web-resource-name>all-except-attachments</web-resource-name> <url-pattern>*.js</url-pattern> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspa</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>/browse/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>

Any command-line input or output is written as follows:

mysql –u root -p

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Click on Next on the welcome screen."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Getting Started with JIRA

JIRA has always been a fun to use and easy to install software, and JIRA 5 is no different. In fact, JIRA 5 has improved on its predecessors by providing a more polished and powerful installation wizard, eliminating some of the old installation steps where users had to manually edit configuration files in a text editor.

In this chapter, we will start with a high-level view of JIRA, looking at each of the components that make up the overall application. We will then examine the various deployment options, system requirements for JIRA 5, and platforms/software that are supported. Finally, we will get our hands dirty by installing our very own JIRA 5 from scratch, with the newly improved installation wizard. In the end, we will also cover some post installation steps, such as setting up SSL to secure your new instance.

By the end of this chapter, you will have learned about the following:

The overall architecture of JIRAThe basic hardware and software requirements to deploy and run JIRAPlatforms and applications supported by JIRAInstalling JIRA and all of the required softwarePost-installation configuration options to customize your JIRA

The JIRA architecture

Installing JIRA is simple and straightforward. However, it is important for you to understand the components that make up the overall architecture of JIRA and the installation options available. This will help you make an informed decision and be better prepared for future maintenance and troubleshooting.

High-level architecture

Atlassian provides a comprehensive overview of the JIRA architecture at https://developer.atlassian.com/display/JIRADEV/JIRA+Architectural+Overview. However, for day-to-day administration and usage of JIRA, we do not need to go into details; the information provided can be overwhelming at the first glance. For this reason, we have summarized a high-level overview that highlights the most important components in the architecture:

Web browsers

JIRA is a web application, so there is no need for users to install anything on their machine. All they need is a web browser that is compatible with JIRA. Since JIRA 4, JIRA has made some major changes to its user interface, and JIRA 5 has continued to improve upon this to deliver a more responsive user experience. As a result, some of the older browsers are no longer supported. The following table summarizes the browser requirements for JIRA:

Browsers

Compatibility

Microsoft Internet Explorer

8.0, 9.0 (Compatibility View is not supported)

10 is not supported

Mozilla Firefox

Latest stable versions

Safari

Latest stable versions

Google Chrome

Latest stable versions

Application services

The application services layer contains all the functions and services provided by JIRA. These services include various business functions, such as workflow and notification, which will be discussed in depth in Chapter 6, Workflows and Business Processes and Chapter 7, E-mails and Notifications, respectively. Other services, such as REST/Web Service, provide integration points to other applications, and the OSGi service provides the base add-on framework to extend JIRA's functionalities.

Data storage

The data storage layer stores persistent data in several places within JIRA. Most business data, such as issues and projects, are stored in a relational database. Contents such as uploaded attachments and search indexes are stored in the filesystem, in the JIRA_HOME directory, which we will talk about in the next section. The underlying relational database used is transparent to the users and you can migrate from one database to another with ease.

The JIRA installation directory

The JIRA installation directory is where you install JIRA. It contains all the executable and configuration files of the application. JIRA does not modify the contents of the files in this directory during runtime, nor does it store any data inside; the directory is used primarily for execution. For the remainder of the book, we will be referring to this directory as JIRA_INSTALL.

The JIRA home directory

The JIRA home directory contains key data files that are specific to each JIRA instance. There is a one-to-one relationship between JIRA and this directory. This means each JIRA instance must and can have only one home directory, and each directory can serve only one JIRA instance. In the old days, this directory was sometimes called the data directory. It has now been standardized as the JIRA Home. It is for this reason that for the rest of the book we will be referring to this directory as JIRA_HOME.

It is recommended that JIRA_HOME be created separately from JIRA installation. This separation of data and application makes tasks, such as maintenance and future upgrades, an easier process.

Within JIRA_HOME, there are several subdirectories that contain vital data:

Directory

Description

data

This directory contains data that is not stored in the database. For example, uploaded attachment files.

export

This directory contains the automated backup archives created by JIRA. This is different from a manual export executed by a user; manual exports require the user to specify where to store the archive.

import

This directory contains the backups that can be imported. JIRA will only load the backup files from this directory.

log

This directory contains the JIRA logs.

plugins

This directory is where the installed add-ons are stored. In the previous versions of JIRA, add-ons were installed by copying the add-on files to this directory manually, but in JIRA 5, you will no longer need to do this, unless specifically instructed to do so. Add-ons will be discussed further in later chapters.

caches

This directory contains cache data that JIRA uses to improve its performance at runtime. For example, search indexes are stored in this directory.

tmp

This directory contains temporary files created at runtime, such as file uploads

When JIRA runs, this directory gets locked, when JIRA shuts down, it gets unlocked. This locking mechanism prevents multiple JIRA instances from reading/writing to the same JIRA_HOME directory and causing data corruption.

JIRA locks the JIRA_HOME directory by writing a temporary file called jira-home.lock into the root of the directory, and during shutdown, it will be removed. However, sometimes JIRA may fail to remove this file, such as during an ungraceful shutdown. In these cases, you can manually remove this locked file to unlock the directory, so that you can start up JIRA again.

Tip

You can manually remove the locked file to unlock the JIRA_HOME directory if JIRA fails to clean it up during shutdown.

System requirements

Just like any software applications, there is a set of base requirements that need to be met before you can install and run JIRA, so it is important for you to be familiar with these requirements so you can plan out your deployment successfully. Note that these requirements are for a behind-the-firewall deployment. Atlassian also offers a SaaS based alternative called Atlassian OnDemand http://www.atlassian.com/software/ondemand/overview.

Hardware requirements

For evaluation purposes, where there will only be a small number of users, JIRA will run happily on a normal workstation computer that has a 1.5 GHz processor and 256 MB to 512 MB of RAM. As a matter of fact, many organizations start their JIRA from a simple desktop and eventually migrate onto a proper server hardware.

For production deployment, as most applications, it is recommended that you run JIRA on its own dedicated server. There are many factors that you should consider when deciding how much resource to allocate to JIRA, and also keep in mind how JIRA will scale and grow. When deciding on your hardware needs, you should consider the following:

Number of users in the systemNumber of issues and projects in the systemNumber of concurrent users, especially during peak hours

It can be difficult at times to estimate these figures, so as a reference, a server running with 2.0+ GHz of dual/quad CPU and 1 GB of RAM will be sufficient for most instances with around 200 users. Starting with JIRA 5.1, JIRA has significantly improved its performance and scalability, especially for large deployments. It is now able to handle more than 250 thousand issues with ease.

Officially, JIRA only supports x86 hardware and 64 bit derivatives of it. When running JIRA on a 64 bit system, you will be able to allocate more than 4 Gb of memory to JIRA, a limit if you are using a 32 bit system. So, if you are planning to deploy a large instance, it is recommended that you use 64 bit.

Software requirements

JIRA has four requirements when it comes to software. It needs to run on top of an operating system, and a Java environment. It needs an application server to host and serve its contents, and a database to store all of its data. In the following sections, we will discuss each of these components and the options that you have to install and run JIRA with.

Operating systems

JIRA supports most of the major operating systems, so the choice of which operating system to run JIRA on becomes a matter of expertise, comfort, and in most cases, existing organization IT infrastructure and requirements.

The operating systems supported by Atlassian are Windows and Linux. There is a distribution for Mac OSX, however, it is not officially supported. With both Windows and Linux, Atlassian provides an executable installer wizard package that bundles all the necessary components to simplify the installation process (only available for standalone distribution).

There are minimal differences when it comes to installing, configuring, and maintaining JIRA on different operating systems. So, if you do not have any preferences and would like to keep the initial cost down, Linux is a good choice.

Java platforms

JIRA is a Java-based web application, so it needs to have a Java environment installed. This can be a Java Development Kit (JDK) or a Java Runtime Environment (JRE). The executable installer that comes with Windows or Linux contains the necessary files and will install and configure the JRE for you. However, if you want to use the archive distributions, you will need to make sure that you have the required Java environment installed and configured.

JIRA 5 supports Java 6 or 1.6, from update 18 and above. If you run JIRA on an unsupported Java version, including its patch version, you may run into unexpected errors.

Java platforms

Support status

Oracle JDK/JRE

1.6 (update 18 or higher is required, update 24 or higher is recommended).

1.7 is supported starting with JIRA 5.2.

Databases

JIRA stores all its data in a relational database. While you can run JIRA with HSQLDB, the in-memory database that comes bundled with JIRA, it is prone to data corruption. For this reason, it is important that you use an enterprise database for production systems.

Most relational databases available in the market today are supported by JIRA, and there are no differences when you install and configure JIRA. Just like operating systems, your choice of database will come down to your IT staff's expertise, experience, and established corporate standards. If you run Windows as your operating system, then you might probably want to go with Microsoft SQL Server. On the other hand, if you run Linux, then you should consider Oracle (if you already have a license), MySQL, or PostgreSQL.

The following table summarizes the list of databases that are currently supported by JIRA. It is worth mentioning that both MySQL and PostgreSQL are open source products, so they are excellent options if you are looking to minimize your initial investments:

Database

Support status

MySQL

MySQL 5.x (excluding 5.0)

Requires JDBC Connector/J 5.1

PostgreSQL

PostgreSQL 8.3, 8.4

Requires PostgreSQL Driver 8.4.x

Microsoft SQL Server

SQL Server 2008

SQL Server 2005

Requires JTDS 1.2.4 driver

Oracle

Oracle 11g

Requires Oracle 11.2.x driver

HSQLDB

Bundled with standalone distribution

Take a special note of the driver requirements on each database, as some drivers that come bundled with the database vendor are not supported. If you are using the standalone distributions, the necessary drivers are included with JIRA.

Application servers

Unlike the previous versions of JIRA, JIRA 5 officially only supports Apache Tomcat as the application server. While it is possible to deploy JIRA into other application servers, you will be doing this at your own risk.

The following table shows the versions of Tomcat that are supported by JIRA 5:

Application server

Support status

Apache Tomcat

Tomcat 5.5.27 – 5.5.29

Tomcat 6.0.32

Tomcat 7.0.29 is supported starting JIRA 5.2

Installation options

JIRA comes in two distributions, the standalone and WAR distributions. Fundamentally, there are no differences between them. The major difference is that the standalone distribution comes bundled with Apache Tomcat, an in-memory database, and Java if you use the executable installer version.

As you can see, the standalone distribution comes with everything required to get JIRA installed. As mentioned earlier, the standalone distribution comes in two flavors, an executable installer and a ZIP archive. The executable installer provides a wizard-driven interface that will walk you through the entire installation process. It even comes with a Java installer to save you some time. The ZIP archive flavor contains everything except for a Java installer, which means you will have to install Java yourself. You will also need to perform some post-installation steps manually, such as install JIRA as a service. However, you do get the advantage of learning what really goes on under the hood.

The WAR distribution is for more advanced users who are familiar with the Java EE application deployment model. With the WAR distribution, you have to make the necessary changes to the configuration files, build your own deployable JIRA, and then deploy it to an application server; in this case, Tomcat. The advantage of using the WAR distribution is that it is very easy for you to version and control all the changes you make to the standard distribution files, which makes future upgrades much easier.

Post-installation configurations

The post-installation configuration steps are optional depending on your needs and environment. If you set up JIRA for evaluation purposes, you probably do not need to perform any of the following steps, but it is always a good practice to be familiar with these as a reference:

Configuring the application server

In both standalone and WAR distributions, you can configure some of the applications server settings, such as context path and port number. This is useful, for example, if you have multiple servers running on the same machine, then they can co-exist by listening on different port numbers. If JIRA is the only application running on your machine, then you may choose not to make any changes. Another reason you might want to change the port number to a standard port such as 80 instead of 8080, is so that you will not need to type in the port number as a part of the URL.

To configure the settings, locate and open the server.xml file in a text editor. The file can be found in the JIRA_INSTALL/conf directory:

<Server port="8005" shutdown="SHUTDOWN"> … … … … <Connector port="8080" protocol="HTTP/1.1"> … … … … <Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">

Let's examine the relevant contents in this file:

Line 1: This line specifies the port for command to shutdown JIRA/Tomcat. By default, it is port 8005. If you already have an application that is running on that port (usually another Tomcat instance), you need to change this to a different port.Line 2: This line specifies which port JIRA/Tomcat will be running on. By default, it is port 8080. If you already have an application that is running on that port, or if the port is unavailable for some reason, you need to change it to another available port.Line 3: This line allows you to specify the context that JIRA will be running under. By default, the value is empty, which means JIRA will be accessible through the URL of http://hostname:portnumber. If you decide to specify a context, the URL will be http://hostname:portnumber/context. In our example here, JIRA will be accessible through the URL of http://localhost:8080/jira.

Configuring HTTPS

By default, JIRA runs with standard, non-encrypted HTTP protocol. This is acceptable if you are running JIRA in a secured environment, such as an internal network. However, if you plan to open up access to JIRA over the Internet, you will need to tighten up security by encrypting sensitive data, such as usernames and passwords that are being sent, by enabling HTTPS (HTTP over SSL).

For a standalone installation, you will need to perform the following tasks:

Obtain and install a certificationEnable HTTPS on your application server (Tomcat)Redirect traffic to HTTPS

First, you need to get a digital certificate. This can be from a certification authority such as VeriSign (CA certificate), or a self-signed certificate generated by you. CA certificate will not only encrypt data for you, but also identify your copy of JIRA to users. A self-signed certificate is useful when you do not have a valid CA certificate and you are only interested in setting up HTTPS for encryption. Since a self-signed certificate is not signed by a Certification Authority, it is unable to identify your site to the public, and users will be prompted with a warning that the site is untrusted when they first visit it. However, for evaluation purposes, a self-signed certificate will suffice until you can get a proper CA certificate.

For the purpose of this exercise, we will create a self-signed certificate to illustrate the complete process. If you have a CA certificate, you can skip the following steps.

Java comes with a handy tool for certificate management called keytool, which can be found in the JAVA_HOME\lib directory. To generate a self-signed certificate, run the following commands from a command prompt:

keytool –genkey –alias tomcat –keyalg RSAkeytool –export –alias tomcat –file file.cer

This will create a keystore (if one does not already exist) and export the self-signed certificate (file.cer). When you run the first command, you will be asked to set the password for the keystore and Tomcat. You need to use the same password for both. The default password is changeit. You can specify a different password of your choice, but you then have to let JIRA/Tomcat know, as we will see later.

Now that you have your certificate ready, you need to import it into your trust store for Tomcat to use. Again, you will use the keytool application in Java:

keytool –import –alias tomcat –file file.cer JAVA_HOME\jre\lib\security\cacerts

This will import the certificate into your trust store, which can be used by JIRA/Tomcat to set up HTTPS.

To enable HTTPS on Tomcat, open the server.xml file in a text editor from the JIRA_INSTALL/conf directory. Locate the following configuration snippet:

<Connector port="8443" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"/>

This enables HTTPS for JIRA/Tomcat on port 8443. If you have selected a different password for your keystore, you will have to add the following line to the end of the preceding snippet, before the closing tag:

keystorePass="<password value>"

The last step is to set up JIRA so that it automatically redirects from a non-HTTP request to an HTTPS request. Find and open the web.xml file in the JIRA_INSTALL/atlassian-jira/WEB-INF directory, and add the following snippet to the end of the file, before the closing </web-app> tag:

<security-constraint> <web-resource-collection> <web-resource-name>all-except-attachments</web-resource-name> <url-pattern>*.js</url-pattern> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspa</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>/browse/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>

Now, when you access JIRA with a normal HTTP URL, such as http://localhost:8080/jira, you will be automatically redirected to its HTTPS equivalent, https://localhost:8443/jira.

Installing the database drivers

With the standalone distributions, JIRA comes bundled with the necessary database drivers for all the supported database systems. However, if you are using the WAR distribution or if for some reason, the database driver gets corrupted, you will need to manually obtain and install the driver.

To install a database driver, simply perform the following steps:

Obtain the database driver from the vendor.Copy the driver (usually a JAR file) into your JIRA_INSTALL/lib directory.Restart JIRA so the driver can be properly loaded.

Managing the database setup

As we have already seen, the JIRA setup wizard takes care of setting up the database connection for us during the installation process. However, there will be times when you will need to make changes to this. The database name or user credentials may have changed, or there may be a need to use a different database altogether.