際際滷

際際滷Share 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 (contd)
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 (contd)
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 (contd)
Database tables: 
customfield 
customfieldoption 
customfieldvalue 
Value types storage: 
Limited text 
Unlimited text (clob) 
Numeric 
Date 
Data Model
Data Model (contd)
Solution: 
Field: using AbstractSingleFieldType class with SortableCustomField interface 
store issues 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 (contd)
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!
Ad

Recommended

05 entity framework
05 entity framework
Bat Programmer
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data Landscape
Ike Ellis
Microsoft Data Access Technologies
Microsoft Data Access Technologies
David Chou
.Net Fundamentals
.Net Fundamentals
Sunny Sharma
Entity framework introduction sesion-1
Entity framework introduction sesion-1
Usama Nada
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
Ike Ellis
Command Query Responsibility Segregation (CQRS)
Command Query Responsibility Segregation (CQRS)
Derek Comartin
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
Polish SQL Server User Group
Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
IDERA Software
Entity framework core v3 from sql to no sql
Entity framework core v3 from sql to no sql
Andrea Tosato
DataCenter
DataCenter
mszalay
Entity framework code first
Entity framework code first
Confiz
Amazon SimpleDB
Amazon SimpleDB
zahid-mian
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
Polish SQL Server User Group
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
David Chou
NNUG Certification Presentation
NNUG Certification Presentation
Niall Merrigan
Net course content
Net course content
mindq
Best training institute
Best training institute
pentagonspace1
Training institute in Bangalore
Training institute in Bangalore
pentagonspace1
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)
Steve Lange
SQL Server 2008 for .NET Developers
SQL Server 2008 for .NET Developers
llangit
Tech Days09 Sqldev
Tech Days09 Sqldev
llangit
SQL Server 2008 for Developers
SQL Server 2008 for Developers
llangit
GAIBT NewYork - Serverless Machine Learning.pptx
GAIBT NewYork - Serverless Machine Learning.pptx
Luis Beltran
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
Data Access Tech Ed India
Data Access Tech Ed India
rsnarayanan
MySQL And Search At Craigslist
MySQL And Search At Craigslist
Jeremy Zawodny
Salesforce CRM Administration and Developer Training
Salesforce CRM Administration and Developer Training
Salesforce Trainer
Designing Optimized Symbols for InduSoft Web Studio Projects
Designing Optimized Symbols for InduSoft Web Studio Projects
AVEVA

More Related Content

What's hot (7)

Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
IDERA Software
Entity framework core v3 from sql to no sql
Entity framework core v3 from sql to no sql
Andrea Tosato
DataCenter
DataCenter
mszalay
Entity framework code first
Entity framework code first
Confiz
Amazon SimpleDB
Amazon SimpleDB
zahid-mian
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
Polish SQL Server User Group
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
David Chou
Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
Geek Sync | Taking Your First Steps to the CloudBuilding a Hybrid Model
IDERA Software
Entity framework core v3 from sql to no sql
Entity framework core v3 from sql to no sql
Andrea Tosato
DataCenter
DataCenter
mszalay
Entity framework code first
Entity framework code first
Confiz
Amazon SimpleDB
Amazon SimpleDB
zahid-mian
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
Polish SQL Server User Group
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
CloudConnect 2011 - Building Highly Scalable Java Applications on Windows Azure
David Chou

Similar to JIRA Development (20)

NNUG Certification Presentation
NNUG Certification Presentation
Niall Merrigan
Net course content
Net course content
mindq
Best training institute
Best training institute
pentagonspace1
Training institute in Bangalore
Training institute in Bangalore
pentagonspace1
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)
Steve Lange
SQL Server 2008 for .NET Developers
SQL Server 2008 for .NET Developers
llangit
Tech Days09 Sqldev
Tech Days09 Sqldev
llangit
SQL Server 2008 for Developers
SQL Server 2008 for Developers
llangit
GAIBT NewYork - Serverless Machine Learning.pptx
GAIBT NewYork - Serverless Machine Learning.pptx
Luis Beltran
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
Data Access Tech Ed India
Data Access Tech Ed India
rsnarayanan
MySQL And Search At Craigslist
MySQL And Search At Craigslist
Jeremy Zawodny
Salesforce CRM Administration and Developer Training
Salesforce CRM Administration and Developer Training
Salesforce Trainer
Designing Optimized Symbols for InduSoft Web Studio Projects
Designing Optimized Symbols for InduSoft Web Studio Projects
AVEVA
Machine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta Lake
Databricks
Java Online Training Institute in Hyderabad - C-Point
Java Online Training Institute in Hyderabad - C-Point
cpointss
Automate Best Practices
Automate Best Practices
HelpSystems
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
Databricks
Generative AI in CSharp with Semantic Kernel.pptx
Generative AI in CSharp with Semantic Kernel.pptx
Alon Fliess
NNUG Certification Presentation
NNUG Certification Presentation
Niall Merrigan
Net course content
Net course content
mindq
Best training institute
Best training institute
pentagonspace1
Training institute in Bangalore
Training institute in Bangalore
pentagonspace1
Whats New In 2010 (Msdn & Visual Studio)
Whats New In 2010 (Msdn & Visual Studio)
Steve Lange
SQL Server 2008 for .NET Developers
SQL Server 2008 for .NET Developers
llangit
Tech Days09 Sqldev
Tech Days09 Sqldev
llangit
SQL Server 2008 for Developers
SQL Server 2008 for Developers
llangit
GAIBT NewYork - Serverless Machine Learning.pptx
GAIBT NewYork - Serverless Machine Learning.pptx
Luis Beltran
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
Data Access Tech Ed India
Data Access Tech Ed India
rsnarayanan
MySQL And Search At Craigslist
MySQL And Search At Craigslist
Jeremy Zawodny
Salesforce CRM Administration and Developer Training
Salesforce CRM Administration and Developer Training
Salesforce Trainer
Designing Optimized Symbols for InduSoft Web Studio Projects
Designing Optimized Symbols for InduSoft Web Studio Projects
AVEVA
Machine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta Lake
Databricks
Java Online Training Institute in Hyderabad - C-Point
Java Online Training Institute in Hyderabad - C-Point
cpointss
Automate Best Practices
Automate Best Practices
HelpSystems
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
Databricks
Generative AI in CSharp with Semantic Kernel.pptx
Generative AI in CSharp with Semantic Kernel.pptx
Alon Fliess
Ad

More from Sperasoft (20)

仂仂弍亠仆仆仂亳 舒弍仂 Locomotion 于 Unreal Engine 4
仂仂弍亠仆仆仂亳 舒弍仂 Locomotion 于 Unreal Engine 4
Sperasoft
从仂仆亠仗 亳 舒亳亠从舒 亞亠亶仄仗仍亠 于 Creach: The Depleted World
从仂仆亠仗 亳 舒亳亠从舒 亞亠亶仄仗仍亠 于 Creach: The Depleted World
Sperasoft
仗 舒亰舒弍仂从亳 VR 亳亞 亟仍 UE4
仗 舒亰舒弍仂从亳 VR 亳亞 亟仍 UE4
Sperasoft
亞舒仆亳亰舒亳 舒弍仂 UE4 于 从仂仄舒仆亟亠 亟仂 20 亠仍仂于亠从
亞舒仆亳亰舒亳 舒弍仂 UE4 于 从仂仄舒仆亟亠 亟仂 20 亠仍仂于亠从
Sperasoft
Gameplay Tags
Gameplay Tags
Sperasoft
Data Driven Gameplay in UE4
Data Driven Gameplay in UE4
Sperasoft
Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
Sperasoft
The theory of relational databases
The theory of relational databases
Sperasoft
Automated layout testing using Galen Framework
Automated layout testing using Galen Framework
Sperasoft
Sperasoft talks: Android Security Threats
Sperasoft talks: Android Security Threats
Sperasoft
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft
Sperasoft talks j point 2015
Sperasoft talks j point 2015
Sperasoft
Effective eetings
Effective eetings
Sperasoft
Unreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft
Introduction to Elasticsearch
Introduction to Elasticsearch
Sperasoft
MOBILE DEVELOPMENT with HTML, CSS and JS
MOBILE DEVELOPMENT with HTML, CSS and JS
Sperasoft
Quick Intro Into Kanban
Quick Intro Into Kanban
Sperasoft
ECMAScript 6 Review
ECMAScript 6 Review
Sperasoft
Console Development in 15 minutes
Console Development in 15 minutes
Sperasoft
Database Indexes
Database Indexes
Sperasoft
仂仂弍亠仆仆仂亳 舒弍仂 Locomotion 于 Unreal Engine 4
仂仂弍亠仆仆仂亳 舒弍仂 Locomotion 于 Unreal Engine 4
Sperasoft
从仂仆亠仗 亳 舒亳亠从舒 亞亠亶仄仗仍亠 于 Creach: The Depleted World
从仂仆亠仗 亳 舒亳亠从舒 亞亠亶仄仗仍亠 于 Creach: The Depleted World
Sperasoft
仗 舒亰舒弍仂从亳 VR 亳亞 亟仍 UE4
仗 舒亰舒弍仂从亳 VR 亳亞 亟仍 UE4
Sperasoft
亞舒仆亳亰舒亳 舒弍仂 UE4 于 从仂仄舒仆亟亠 亟仂 20 亠仍仂于亠从
亞舒仆亳亰舒亳 舒弍仂 UE4 于 从仂仄舒仆亟亠 亟仂 20 亠仍仂于亠从
Sperasoft
Gameplay Tags
Gameplay Tags
Sperasoft
Data Driven Gameplay in UE4
Data Driven Gameplay in UE4
Sperasoft
Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
Sperasoft
The theory of relational databases
The theory of relational databases
Sperasoft
Automated layout testing using Galen Framework
Automated layout testing using Galen Framework
Sperasoft
Sperasoft talks: Android Security Threats
Sperasoft talks: Android Security Threats
Sperasoft
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft Talks: RxJava Functional Reactive Programming on Android
Sperasoft
Sperasoft talks j point 2015
Sperasoft talks j point 2015
Sperasoft
Effective eetings
Effective eetings
Sperasoft
Unreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft
Introduction to Elasticsearch
Introduction to Elasticsearch
Sperasoft
MOBILE DEVELOPMENT with HTML, CSS and JS
MOBILE DEVELOPMENT with HTML, CSS and JS
Sperasoft
Quick Intro Into Kanban
Quick Intro Into Kanban
Sperasoft
ECMAScript 6 Review
ECMAScript 6 Review
Sperasoft
Console Development in 15 minutes
Console Development in 15 minutes
Sperasoft
Database Indexes
Database Indexes
Sperasoft
Ad

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 (contd)
  • 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 (contd)
  • 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 (contd)
  • 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 issues 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 (contd)
  • 20. Have a question? Like this deck? Just follow us on twitter @Sperasoft Thanks!