Getting Started with JIRA 4

Exclusive offer: get 50% off this eBook here
JIRA 4 Essentials

JIRA 4 Essentials — Save 50%

Track bugs and issues and manage your software development projects with this JIRA book and eBook

£22.99    £11.50
by Patrick Li | May 2011 | Enterprise Articles Java

When Atlassian first started, they made the decision to create a software that would be inexpensive, fun for the user, and would take minutes to install. Thanks to this philosophy, the installation process of JIRA is relatively simple and straightforward. In this article, 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 we have, including application servers, databases, and distribution choices. Finally, we will get our hands dirty by installing our very own JIRA application from scratch.

By the end of this article by Patrick Li, author of JIRA 4 Essentials, you will have learned about:

  • The overall architecture of JIRA
  • Platforms and applications supported by JIRA
  • Installing JIRA and all of the required software
  • Configuring database connections

 

JIRA 4 Essentials

JIRA 4 Essentials

Track bugs and issues and manage your software development projects with JIRA

        Read more about this book      

(For more resources on this subject, see here.)

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 http://confluence.atlassian.com/display/JIRA/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 first glance. For this reason, we have summarized a high level overview that highlights the most important components in the architecture.

Getting Started with JIRA 4

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 version 4.1, JIRA has undergone some major changes to its user interface. New JIRA interface is now more interactive and dynamic. However, this means a newer version of web browsers will be required to take full advantage of all the functions provided with the new UI. Internet Explorer 6, for example, is no longer fully compatible.

The following table summarizes the browser requirements for JIRA.

Getting Started with JIRA 4

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. Other services, such as REST/Web Service, provide integration points to other applications, and OSGi service provides the base plugin 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 on the file system. The underlying relational database used is transparent to the users and you can migrate from one database to another with ease.

JIRA installation directory

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

JIRA home directory

This 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 JIRA Home, and each JIRA Home 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 we will be referring to this directory as JIRA_HOME.

It is recommended that JIRA Home is be created separately from the 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.

Getting Started with JIRA 4

When JIRA is running, this directory is locked, when JIRA shuts down, it will be unlocked. This locking mechanism prevents multiple JIRA instances from reading/writing to the same JIRA Home directory and causing data corruption.

Installation options

JIRA is a Java-based web application developed using many open standards and libraries. Hence it is able to run on many operating systems, relational databases, and application servers. We will take a closer look at each of the components and options you have, and help you to make an informed decision.

Standalone and WAR-EAR distributions

First of all, we need to decide on the distribution. JIRA comes in two distributions:

  • Standalone bundled with Apache Tomcat
  • WAR-EAR

Fundamentally, there are no differences between the two distributions. The standalone distribution comes with Apache Tomcat, which means you do not have to spend time on deployment efforts that are usually required by Java web applications. The standalone distribution also comes with an embedded in-memory database that can be used for evaluation purposes.

If you would like to deploy JIRA onto an existing application server, such as IBM WebSphere, the WAR-EAR distribution is for you. Due to the differences that exist between different application servers, when you download the WAREAR distribution, you are required to build the final deployment artifact with the provided build script file for your application server. Once the artifact is built, you can deploy JIRA just like any other Java web application.

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, Linux, and MacOS. With Windows, Atlassian provides a wizard-driven installation package that simplifies the installation process (only available for standalone distribution). Other than that, there are minimal differences when it comes to installing, configuring, and maintaining JIRA on the different operating systems.

If you do not have any preferences and would like to keep the initial cost down, Linux is a good choice.

Databases

JIRA stores all its data in a relational database. While you can run JIRA with an inmemory database such as HSQLDB, 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 are running Windows as your operating system, you probably want to go with Microsoft SQL Server. On the other hand, if you are running Linux, then you should consider Oracle (if you already have a license), MySQL, or PostgreSQL.

The following is a table summarizing 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.

Getting Started with JIRA 4

Application Servers

As we saw earlier, JIRA requires a JavaEE compatible application server. With the WAR-EAR distribution, you can deploy JIRA onto any supported application server. With the standalone distribution, Apache Tomcat comes bundled and you do not need to do anything extra for deployment.

All the application servers support both Windows and Linux, so unlike databases, you are not affected by which operating system you are running. Apache Tomcat is an open source product and comes bundled with JIRA in standalone. If you do have any preferences, Tomcat will be your best option as it is the least demanding.

The following is a table summarizing the list of supported application servers. Please note that JBoss is no longer supported.

Getting Started with JIRA 4

JIRA 4 Essentials Track bugs and issues and manage your software development projects with this JIRA book and eBook
Published: May 2011
eBook Price: £22.99
Book Price: £36.99
See more
Select your format and quantity:
        Read more about this book      

(For more resources on this subject, see here.)

Installing JIRA

Now that we have a good understanding of the overall architecture of JIRA and the various installation options, we are ready to install our own JIRA deployment.

In the following exercise, we will be installing and configuring a fresh JIRA instance that will be ready for production. We will be basing our installation on a Windows platform. If you are planning to use a different platform, please refer to the vendor documentation on installing the required softwares for your platform.

In this exercise, we will:

  1. Install a fresh instance of JIRA.
  2. Configure JIRA to an enterprise relational database.
  3. Configure JIRA as a service so it will start automatically with the system.

We can continue to use this JIRA instance to build up a help desk implementation.

For our implementation, we will be using:

  • JIRA standalone distribution 4.2
  • MySQL 5
  • Java Development Kit 6
  • Microsoft Windows XP

Installing Java

JIRA requires Java Development Kit (JDK) version 6 update 10 or higher to run. It is important to note that some systems come with Java Runtime Environment (JRE), which is different and insufficient to run JIRA. If you already have a JDK installed, you can skip this section.

To install JDK onto your system, simply carry out the following steps:

  1. Download the latest JDK from http://java.sun.com/javase/downloads.

    At the time of writing, the latest version is JDK 6 Update 21.

  2. Double-click on the downloaded installation file to start the installation wizard.
  3. Select where you would like to install Java, or you can simply accept the default values. The location where you install JDK will be referred to as JAVA_HOME
  4. Create a new environmental variable named JAVA_HOME with the value of where you installed Java.

    Getting Started with JIRA 4

  5. Test the installation by typing the following command in a new command prompt:

    java version

    This will display the version of Java installed.

Installing MySQL

The next step is to prepare an enterprise database for our JIRA installation.

To install MySQL, simply follow the steps below:

  1. Download MySQL from: http://dev.mysql.com/downloads.

    At the time of writing, the latest version of MySQL is 5.1.48.

  2. Double-click on the downloaded installation file to start the installation wizard.
  3. Click on Next on the welcome screen.
  4. Select the Typical setup option on the next screen. If you are an experienced database administrator, you can choose to customize your installation. Otherwise, just accept the default values for all subsequent screens.
  5. Once the installation is completed, make sure you check the Configure MySQL Server now option and click on Finish. This will bring up the MySQL configuration wizard.

    Getting Started with JIRA 4

  6. From the MySQL configuration wizard, select Standard Configuration.
  7. Check both the Install As Windows Service and Include Bin Directory in Windows PATH options on the next screen. This will make MySQL startup when the system starts up and also allow you to run the MySQL command line tools directly.

    Getting Started with JIRA 4

  8. Configure the MySQL root user password. The username will be root.
  9. Click on Execute on the next screen and MySQL will start applying the configuration options.

Configuring MySQL

Now that we have MySQL installed, it is time to create a database for JIRA.

  1. Start a new command prompt.
  2. Issue the command below to connect to MySQL:

    mysql -u root -p

  3. When prompted for password, enter the password you chose during configuration. This will bring up the interactive shell for MySQL.
  4. Issue the command below to create a database:

    create database jiradb character set utf8;

  5. Here we are creating a database called jiradb. You can name the database to anything you like. As we will see later in this article, this name will be referenced when we connect JIRA to MySQL. We have also set the database to use UTF8 character encoding, as this is a requirement for JIRA. You need to ensure that the database is using the InnoDB storage engine to avoid data corruption.
  6. Issue the following command:

    grant all on jiradb.* to 'jirauser'@'localhost' identified by
    'jirauser';

  7. Here we are doing several things. First, we have created a user called jirauser and assigned the password jirauser to the user. You can, change the username and password to something else.
  8. We have also granted all privileges to the user for the database jiradb we have just created so the user can perform database operations such as create/drop tables, and insert/delete data. If you have named your database to something other than jiradb in step 3, make sure you change the command so it uses your database name.
  9. This allows us to control the fact that only authorized users (specified in the preceding command) are able to access the JIRA database to ensure data security and integrity.
  10. To verify our setup, exit the current interactive session by issuing the following command:

    quit;

  11. Start a new interactive session with our newly created user:

    mysql -u jirauser -p

  12. You will be prompted for jirauser's password, which we have set up in our previous command as jirauser.
  13. Issue the command:

    show databases;

  14. This will list all the databases that are currently accessible by the logged in user. You should see jiradb amongst the list of databases.
  15. Examine the jiradb database by issuing the following commands:

    use jiradb;
    show tables;

  16. The first command connects us to the jiradb database, so all of our subsequent commands will be executed against the correct database.
  17. The second command lists all the tables that exist in the jiradb database. Right now, the list should be empty since tables have been created for JIRA now, but don't worry—as soon as we connect to JIRA, all the tables will automatically be created.

Installing JIRA

With the JDK and database prepared, we can now move on to install JIRA.

Configuring JIRA application properties

  1. Download Atlassian JIRA from http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa.
    The Atlassian website will detect the operating system you are using and automatically suggest the installation package for you to download. If you intend to install JIRA on a different operating system than the one you are currently on, make sure you select the correct operating system package.
  2. As mentioned earlier, with Windows, there is a Windows installer package and self-extracting ZIP package. For the purpose of our exercise, we will be using the self-extracting option as this will provide us with an insight of the steps usually hidden by installation programs To access the ZIP option, click on the Show all link to the right-hand side.
  3. Unzip the downloaded file to your intended JIRA_INSTALL directory.
  4. Open JIRA_INSTALL\atlassian-jira\WEB-INF\classes\jiraapplication.properties file in a text editor.
  5. Locate the following line:

    #jira.home =

  6. Fill in the full path to your JIRA_HOME directory and save the file.

    jira.home = C:/JIRA_HOME

  7. Make sure that you remove the # at the front and use forward slashes (/) instead of backward slashes (\).

Configuring JIRA application settings (optional)

With the standalone distribution, we can also configure some of the applications server settings such as context path and port number. This is useful, for example, if you have multiple web servers running on the same machine, 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. For our exercise, we will set a context path for our JIRA.

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 can 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 can 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 value for the context, like in our example here, JIRA will be accessible through the URL of http://hostname:portnumber/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, we will need to perform the following tasks:

  • Obtain and install a certification
  • Enable HTTPS on our application server (Tomcat)
  • Redirect traffic to HTTPS

First, we 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 step.

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 RSA
keytool -export -alias tomcat -file file.cer

This will create a key store (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 we have our certificate ready, we need to import it into our trust store for Tomcat to use. Again, we will use the keytool application from Java.

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

This will import the certificate into our 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 it will automatically redirect from a non-HTTP request to a HTTPS request. Find and open the file I 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.

JIRA 4 Essentials Track bugs and issues and manage your software development projects with this JIRA book and eBook
Published: May 2011
eBook Price: £22.99
Book Price: £36.99
See more
Select your format and quantity:
        Read more about this book      

(For more resources on this subject, see here.)

Installing database drivers (optional)

Normally, database drivers need to be installed manually for applications to be able to connect to databases. Depending on the database you are using, JIRA may require drivers that are different from the ones that come bundled with some application servers.

Getting Started with JIRA 4

If you are using PostgreSQL or MySQL, as in our case, then you are lucky as the standalone distribution comes with the drivers for both. However, if you are using a different database such Oracle, you will need to obtain the driver from the vendor (usually downloadable from vendor's website). It is important that you get the driver for your specific database version; otherwise you will experience unexpected behaviors during and/or after installation.

To install a database driver (if you are not using MySQL), simply follow the steps below:

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

Configuring the database connection manual

With the standalone distribution, there are two options to configure database connections. The first option is to configure the setting manually, while the second option is to use an Atlassian-provided GUI tool. Since the second option is not available for WAR-EAR installations, we will be using the first manual option. This will also provide the base knowledge that will be very valuable for future maintenance and troubleshooting.

The first step is to let our application server (Tomcat) know which database to select and how to connect to it. To do so, locate and open the server.xml file in a text editor. The file can be found in the JIRA_INSTALL/conf directory.

<Context path="" docBase="${catalina.home}/atlassian-jira"
reloadable="false" useHttpOnly="true">
<Resource name="jdbc/JiraDS" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jiradb?useUnicode=
true&amp;characterEncoding=UTF8"
username="jirauser"
password="jirauser"
minEvictableIdleTimeMillis="4000" - DELETE
timeBetweenEvictionRunsMillis="5000" - DELETE
maxActive="20"
validationQuery="select 1"/>

Let's examine the relevant contents in this file.

Line 1: This line defines the database driver class. For MySQL, the class is com.mysql.jdbc.Driver. Other databases will have different driver classes.

Line 2: This line defines the connection URL to the database. The URL is database-specific, so databases other than MySQL will have a slightly different syntax. Note how we add jiradb as part of the URL. This tells JIRA to connect to a database with the name jiradb, which we created earlier. If you named your database differently, make sure you change the name in the code. For MySQL, it is important to note the two additional attributes used here, useUnicode=true and characterEncoding=UTF8. This tells JIRA to use UTF8 encoding when writing data to the database.

Line 3 and 4: These two lines specify the username and password which JIRA will use to connect to the database. Replace the credentials to the ones you have setup.

Line 5 and 6: These two lines are used by the in-memory database. Since we are not using an in memory database, they need to be deleted. Otherwise we will experience performance issues.

Line 7: This line contains a simple statement to verify our database connectivity.

The second step is to tell JIRA which database we are using. To do so, locate and open the entityengine.xml file in a text editor. The file can be found in the JIRA_INSTALL/atlassian-jira/WEB-INF/classes directory.

<datasource name="defaultDS" field-type-name="mysql"
schema-name="PUBLIC" - DELETE
helper-class="org.ofbiz.core.entity.GenericHelperDAO"
check-on-start="true"
use-foreign-keys="false"

Let's examine the relevant contents in this file.

Line 1: This line tells JIRA what type of database we are using. In our case, we are using MySQL, so we put in the value mysql.

Line 2: This line tells JIRA about the database schema information. Since MySQL does not use this, we need to delete this line.

Configuring the database connection (GUI)

That's all that is required to configure JIRA's database connectivity. Since we have configured this the manual way, it is time for us to take a look at the second option with the GUI interface. We can also use this opportunity to validate our configuration settings.

The tool is called JIRA Configuration Tool, a utility application that comes bundled with JIRA. You can find the application in the JIRA_INSTALL/bin directory, called config.bat. Double-click on the file to start the application.

Click on the Database tab once the application starts up. You should be able to see all the configuration options are populated with the settings we have just configured.

Getting Started with JIRA 4

To verify that our settings are correct, make sure that the database is running and click on the Test Connection button. If everything is correct, we should see a confirmation message as shown in the following screenshot. From now on, you can use this utility application to update database configurations for JIRA, and you will know what files are being touched when changes occur.

Getting Started with JIRA 4

Configuring JIRA as a Windows service

Under Windows, JIRA can be configured to run as a Windows service, thus starting up automatically when the operating system reboots in events such as hardware upgrades and system patching.

To configure JIRA as a Windows service, simply follow the steps below:

  1. Start a new command prompt and browse to the JIRA_INSTALL/bin directory.
  2. Run the following command:

    service.bat install JIRA

  3. This will install JIRA as a Windows service. The name of the service will be Atlassian JIRA, followed by the name you supplied after the install command. So in our example, the name of the service will be Atlassian JIRA JIRA.
  4. Verify the configuration by going to Settings | Administrative Tools | Services.

Getting Started with JIRA 4

You can now start/stop/restart JIRA from the Windows services panel. You can also set JIRA to start automatically.

Starting JIRA

Once the server is up and running, you can access JIRA from your Internet browser. The URL to your JIRA is http://hostname:portnumber/contextPath. In our example, the URL is http://localhost:8080/jira. You should be welcomed with the JIRA Setup Wizard. On some servers, the firewall will block the default port 8080. If this is the case, you will need to either change the port number to one that is not blocked (for example, 80) or configure your firewall to allow HTTP traffic through port 8080.

On the first page of the wizard, you need to specify a few properties for your JIRA instance.

Getting Started with JIRA 4

You will need to provide a valid license key for your JIRA instance. If you have already obtained a license from Atlassian, you can cut and paste it into the License Key text box. If you do not have a license, you can generate an evaluation license by clicking on the Generate an Evaluation Key link at the bottom. An evaluation license allows you to use JIRA with its full features for three months. Once you have filled in the required properties, click on Next to move onto page two.

On the second screen, you will be setting up the administrator account for JIRA. It is important that you keep the account details somewhere safe and do not lose the password. Since JIRA only stores the hashed value of the password instead of the actual password itself, you will not be able to retrieve it. However, there are methods for you to reset the password if you do lose it. Fill in the administrator account details and click on Next to move on to the last step.

On the final screen, you can set up your e-mail server details. JIRA will be using the information configured here to send out notification e-mails. Notification is a very powerful feature in JIRA and one of the primary methods for JIRA to communicate with the users. If you do not have your e-mail server information handy, do not worry, we can skip this step now by clicking on Disable Email Notifications. JIRA allows you to change your e-mail server settings at any time. After you have filled in the e-mail server details, click on Finish to complete the setup wizard.

Congratulations! You have successfully completed your JIRA setup. Click on log in to JIRA and log in with the administrator account we have just set up, and you are now using your own copy of JIRA!

Summary

JIRA is a powerful and yet simple application, as reflected by its straightforward installation procedures. You have a wide variety of options to choose how you would like to install and configure your copy. You can mix and match different aspects such as operating system, database, and application server to best suit your requirements. The best part is that you can have a setup that comprises entirely of open source software that will bring down your cost and provide you with a reliable infrastructure at the same time.


Further resources on this subject:


About the Author :


Patrick Li

Patrick Li is the cofounder 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 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 is extensively experienced 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.

Books From Packt


Firebug 1.5: Editing, Debugging, and Monitoring Web Pages
Firebug 1.5: Editing, Debugging, and Monitoring Web Pages

Java EE 6 with GlassFish 3 Application Server
Java EE 6 with GlassFish 3 Application Server

Oracle Identity and Access Manager 11g for Administrators: RAW
Oracle Identity and Access Manager 11g for Administrators: RAW

Managing Software Development with Trac and Subversion
Managing Software Development with Trac and Subversion

Least Privilege Security for Windows 7, Vista and XP
Least Privilege Security for Windows 7, Vista and XP

Tomcat 6 Developer's Guide
Tomcat 6 Developer's Guide

MySQL Admin Cookbook
MySQL Admin Cookbook

Microsoft SQL Azure Enterprise Application Development
Microsoft SQL Azure Enterprise Application Development


Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software