SlideShare a Scribd company logo
JIRA Development 
What is JIRA? What can we do with it? 
#Sperasoft_Talks:
Intro: what is JIRA? 
Custom system over JIRA in comparison 
JIRA plugin development 
Plugin module types 
Plugin module description 
Interesting problems: 
Configuration migration 
Building data model scheme in JIRA 
Agenda
What is JIRA? 
bugtracker 
What does JIRA have? 
issues 
workflows 
user management 
security 
great configuration & customization ability 
Intro
What does custom System have? 
entities 
workflows 
user management 
security 
reports 
other systems integration 
Intro (cont’d)
Habitual interface 
Simple Atlassian products integration 
other JIRA 
Confluence 
Flexible configuration (issue types, custom fields, workflows, events & mail) 
Powerful plugin system 
Community with developers (sometimes) 
Custom system over JIRA
Proprietary source code 
Issues linking scheme 
No consistency (custom fields implementation) 
Velocity templates hell 
Custom system over JIRA (cont’d)
Atlassian Plugin SDK (with Maven2 & Tomcat7) 
Plugin - *.JAR, contains of modules 
FastDev saves your time 
atlassian-plugin.xml – core plugin configuration file 
Lots of plugin module types 
Plugin Development
Web item, Web section 
Web panel 
REST 
Servlet 
Workflow customization (post functions, conditions, validators) 
Custom field type 
Component 
Many others… 
Plugin Module Types
Unique key 
Name, description 
Implementation class name 
Template files 
Parameters 
Plugin Module Description
Plugin Module Description
Follow us on Twitter @Sperasoft 
Visit our site: sperasoft.com
Configuration migration 
Data Model. One-to-many, many-to- many schemes for issues 
Interesting Problems
Projects 
Issue types & schemes 
Statuses 
Resolutions 
Workflows & schemes 
Screens 
Screen configurations & schemes 
Custom fields 
Custom field configurations & schemes 
Project roles 
Security schemes 
Events 
Configuraion Migration
Goals: 
migrate configuration Dev -> Test -> Sandbox -> Production 
apply configuration to a clean JIRA instance 
Complexities: 
replace all IDs with names 
JIRA configuration API hell 
Configuraion Migration
Schema: 
configuration model with JAXB annotations to produce XML 
converters for configuration entities 
replacers for IDs and names 
reader and Writer that iterate configuration entities and read or write them 
Result: 
1 MB xml file 
Configuration Migration (cont’d)
Database tables: 
customfield 
customfieldoption 
customfieldvalue 
Value types storage: 
Limited text 
Unlimited text (clob) 
Numeric 
Date 
Data Model
Data Model (cont’d)
Solution: 
Field: using AbstractSingleFieldType class with SortableCustomField interface 
store issue’s ID 
many-to-one – custom field with one value 
many-to-many – custom field with multiple values 
Searcher: using AbstractInitializationCustomFieldSearcher class and lots of utility classes providing search info. 
Data Model (cont’d)
https://developer.atlassian.com 
https://answers.atlassian.com 
http://j-tricks.com 
JIRA Development Cookbook 
Docs
Have a question? Like this deck? 
Just follow us on twitter @Sperasoft 
Thanks!

More Related Content

PPTX
05 entity framework
PPTX
Survey of the Microsoft Azure Data Landscape
PPTX
Microsoft Data Access Technologies
PPTX
.Net Fundamentals
PPTX
Entity framework introduction sesion-1
PPTX
Tips & Tricks SQL in the City Seattle 2014
PDF
Command Query Responsibility Segregation (CQRS)
PDF
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
05 entity framework
Survey of the Microsoft Azure Data Landscape
Microsoft Data Access Technologies
.Net Fundamentals
Entity framework introduction sesion-1
Tips & Tricks SQL in the City Seattle 2014
Command Query Responsibility Segregation (CQRS)
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer

What's hot (7)

PPTX
Geek Sync | Taking Your First Steps to the Cloud—Building a Hybrid Model
PPTX
Entity framework core v3 from sql to no sql
PDF
DataCenter
PPTX
Entity framework code first
PDF
Amazon SimpleDB
PDF
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
PPTX
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
Geek Sync | Taking Your First Steps to the Cloud—Building a Hybrid Model
Entity framework core v3 from sql to no sql
DataCenter
Entity framework code first
Amazon SimpleDB
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
Ad

Similar to JIRA Development (20)

PDF
My History with Atlassian Tools, and Why I'm Moving to Studio
PPTX
AUG NYC May-24 event presentations
PDF
Building and Supporting Billion Dollar Ships with JIRA - Greg Warner
PDF
Administrivia: Golden Tips for Making JIRA Hum
PDF
Administrivia: Golden Tips for Making JIRA Hum
PPTX
JIRA System Admin Traning
PDF
Atlassian Jira Brochure
PPTX
Citrix Workspace JIRA Data Model_v1.02.pptx
PDF
Alexs showcase
PDF
Explore different templates of projects in jira
PDF
Advocating Adoption: Best Practices for User-Friendly Jira Configurations
PDF
infox technologies
PDF
Automating your processes with JIRA
PPT
Jira customization
PDF
Mohammad_Akhsham_Resume
PDF
Atlassian summit comes to you - London AUG
PDF
MoDisco Eclipse-OMG Symp 2010
PPT
Excel Resources Costa Rica General Info
PDF
Denver Atlassian Community 5-minute Plugins
My History with Atlassian Tools, and Why I'm Moving to Studio
AUG NYC May-24 event presentations
Building and Supporting Billion Dollar Ships with JIRA - Greg Warner
Administrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA Hum
JIRA System Admin Traning
Atlassian Jira Brochure
Citrix Workspace JIRA Data Model_v1.02.pptx
Alexs showcase
Explore different templates of projects in jira
Advocating Adoption: Best Practices for User-Friendly Jira Configurations
infox technologies
Automating your processes with JIRA
Jira customization
Mohammad_Akhsham_Resume
Atlassian summit comes to you - London AUG
MoDisco Eclipse-OMG Symp 2010
Excel Resources Costa Rica General Info
Denver Atlassian Community 5-minute Plugins
Ad

More from Sperasoft (20)

PDF
особенности работы с Locomotion в Unreal Engine 4
PDF
концепт и архитектура геймплея в Creach: The Depleted World
PPTX
Опыт разработки VR игры для UE4
PPTX
Организация работы с UE4 в команде до 20 человек
PPTX
Gameplay Tags
PDF
Data Driven Gameplay in UE4
PPTX
Code and Memory Optimisation Tricks
PPTX
The theory of relational databases
PPTX
Automated layout testing using Galen Framework
PDF
Sperasoft talks: Android Security Threats
PDF
Sperasoft Talks: RxJava Functional Reactive Programming on Android
PDF
Sperasoft‬ talks j point 2015
PDF
Effective Мeetings
PDF
Unreal Engine 4 Introduction
PDF
Introduction to Elasticsearch
PDF
MOBILE DEVELOPMENT with HTML, CSS and JS
PDF
Quick Intro Into Kanban
PDF
ECMAScript 6 Review
PDF
Console Development in 15 minutes
PDF
Database Indexes
особенности работы с Locomotion в Unreal Engine 4
концепт и архитектура геймплея в Creach: The Depleted World
Опыт разработки VR игры для UE4
Организация работы с UE4 в команде до 20 человек
Gameplay Tags
Data Driven Gameplay in UE4
Code and Memory Optimisation Tricks
The theory of relational databases
Automated layout testing using Galen Framework
Sperasoft talks: Android Security Threats
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft‬ talks j point 2015
Effective Мeetings
Unreal Engine 4 Introduction
Introduction to Elasticsearch
MOBILE DEVELOPMENT with HTML, CSS and JS
Quick Intro Into Kanban
ECMAScript 6 Review
Console Development in 15 minutes
Database Indexes

JIRA Development

  • 1. JIRA Development What is JIRA? What can we do with it? #Sperasoft_Talks:
  • 2. Intro: what is JIRA? Custom system over JIRA in comparison JIRA plugin development Plugin module types Plugin module description Interesting problems: Configuration migration Building data model scheme in JIRA Agenda
  • 3. What is JIRA? bugtracker What does JIRA have? issues workflows user management security great configuration & customization ability Intro
  • 4. What does custom System have? entities workflows user management security reports other systems integration Intro (cont’d)
  • 5. Habitual interface Simple Atlassian products integration other JIRA Confluence Flexible configuration (issue types, custom fields, workflows, events & mail) Powerful plugin system Community with developers (sometimes) Custom system over JIRA
  • 6. Proprietary source code Issues linking scheme No consistency (custom fields implementation) Velocity templates hell Custom system over JIRA (cont’d)
  • 7. Atlassian Plugin SDK (with Maven2 & Tomcat7) Plugin - *.JAR, contains of modules FastDev saves your time atlassian-plugin.xml – core plugin configuration file Lots of plugin module types Plugin Development
  • 8. Web item, Web section Web panel REST Servlet Workflow customization (post functions, conditions, validators) Custom field type Component Many others… Plugin Module Types
  • 9. Unique key Name, description Implementation class name Template files Parameters Plugin Module Description
  • 11. Follow us on Twitter @Sperasoft Visit our site: sperasoft.com
  • 12. Configuration migration Data Model. One-to-many, many-to- many schemes for issues Interesting Problems
  • 13. Projects Issue types & schemes Statuses Resolutions Workflows & schemes Screens Screen configurations & schemes Custom fields Custom field configurations & schemes Project roles Security schemes Events Configuraion Migration
  • 14. Goals: migrate configuration Dev -> Test -> Sandbox -> Production apply configuration to a clean JIRA instance Complexities: replace all IDs with names JIRA configuration API hell Configuraion Migration
  • 15. Schema: configuration model with JAXB annotations to produce XML converters for configuration entities replacers for IDs and names reader and Writer that iterate configuration entities and read or write them Result: 1 MB xml file Configuration Migration (cont’d)
  • 16. Database tables: customfield customfieldoption customfieldvalue Value types storage: Limited text Unlimited text (clob) Numeric Date Data Model
  • 18. Solution: Field: using AbstractSingleFieldType class with SortableCustomField interface store issue’s ID many-to-one – custom field with one value many-to-many – custom field with multiple values Searcher: using AbstractInitializationCustomFieldSearcher class and lots of utility classes providing search info. Data Model (cont’d)
  • 20. Have a question? Like this deck? Just follow us on twitter @Sperasoft Thanks!