99
#atlassian

JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Embed Size (px)

DESCRIPTION

Lots changed with the JIRA platform this year: the JIRA REST API, Atlassian Connect, and JIRA Data Center, to name a few. Learn all about what's new and what's coming up next in this update for add-on developers.

Citation preview

Page 1: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

#atlassian

Page 2: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

BARTEK GATZ PRODUCT MANAGER

ATLASSIAN

FILIP ROGACZEWSKI DEVELOPER

IAN GRUNERT SENIOR DEVELOPER

JIRA 7 for Developersbuilding cool stuff with JIRA platforms

Page 3: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

What we will talk about

Page 4: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

What we will talk about

history of two add-on platforms in

JIRA

Atlassian Connect in

JIRA

what’s coming in JIRA 7.0

Page 5: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

What we will talk about

JIRA Data Center web resources keeping in the

loop

Page 6: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Where are we?

JIRA 7.0

we are here

JIRA 6.3 JIRA 6.4

Page 7: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

20142004

JIRA 3.0 - first plugin system

Page 8: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

there are over

P2 add-ons for JIRA on Marketplace

Page 9: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

there are over

660P2 add-ons for JIRA on Marketplace

Page 10: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA 4.2 - first public REST API

20142004 2010

JIRA 3.0 - first plugin system

Page 11: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA 4.2 - first public REST API

20142004 2010

JIRA 3.0 - first plugin system

2012

JIRA 5.0 - stable Java and REST API

Page 12: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA 5.2 - webhooks

20142004 2010 2012

JIRA 3.0 - first plugin system

JIRA 4.2 - first public REST API

JIRA 5.0 - stable Java and REST API

Page 13: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

JIRA in the Cloud

Page 14: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA Studio

20142004 2008 2010 2012

Page 15: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA Cloud

20142004 2008 2010 2011 2012

JIRA Studio

Page 16: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Then we added CloudJIRA - New Sales by Platform

-00

2,000

4,000

6,000

8,000

FY2002 FY2003 FY2004 FY2005 FY2006 FY2007 FY2008 FY2009 FY2010 FY2011 FY2012 FY2013 FY2014

BTF OnDemand

Server Cloud

JIRA new customers by platform

Page 17: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

today

of new customers are choosing Cloud

Page 18: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

today

66%of new customers

are choosing Cloud

Page 19: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Then we added Cloud

JIRA available for Cloud• continuously growing popularity

!

!

Page 20: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Then we added Cloud

JIRA available for Cloud• continuously growing popularity

!

!

Initially only few add-ons made available for Cloud• while customers asking for more all the time

!

!

Page 21: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Why don’t we have more P2 add-ons for Cloud

P2 add-on code works in the same JVM as JIRA• race for resources• potential deadlocks

!

!

!Multiple JIRA instances running on the same physical box• risk of bringing down multiple JIRA servers

!

!

Page 22: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Why don’t we have more P2 add-ons for Cloud

P2 add-on code works in the same JVM as JIRA• race for resources• potential deadlocks

!

!

!Multiple JIRA instances running on the same physical box• risk of bringing down multiple JIRA servers

!

!

RISK

Page 23: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

so what did we do?

Page 24: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

What is missing here?

JIRA

REST API

GUI-less interaction

!

3rd party

integration

background tasks running

webhooks

Page 25: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

There you go

JIRA

REST API

GUI-less interaction

!

3rd party

integration

background tasks running

webhooks GUI

GUI integrations

Page 26: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

There you go

JIRA

REST API

GUI-less interaction

!

3rd party

integration

background tasks running

webhooks GUI

GUI integrations

Page 27: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

There you go

JIRA

REST API

GUI-less interaction

!

3rd party

integration

background tasks running

webhooks GUI

GUI integrations

OPPORTUNITY

Page 28: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

There you goOPPORTUNITY

Opportunities• resource independence• free choice of development stack• ability to integrate multiple services

!

!

!

Page 29: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

and this is how…

Page 30: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 31: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

JIRA Cloud

20142004 2008 2010 2011 2012

JIRA Studio

Atlassian Connect in JIRA

Page 32: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect add-ons in JIRA

Page 33: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect add-ons in JIRA

208 commercial

9 free3 from Atlassian

at AtlasCamp 3516 commercial

16 free3 from Atlassian

today

Page 34: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Plugin point coverage

P2Atlassian Connect

2013

Page 35: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

P2Atlassian Connect

2014

Plugin point coverage

Page 36: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

P2Atlassian Connect

2015

Plugin point coverage

Page 37: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect is the biggest strategic opportunity

for JIRA Ecosystem

Page 38: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

2014

Page 39: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

History

2014

P2 DOMINATION ERA START OF AC ERA

Page 40: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

what do we have in JIRA Atlassian Connect

today?

Page 41: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

JIRA AC Add-on

Web Browser

Page 42: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

JIRA AC Add-on

Web Browser

Page 43: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

JIRA AC Add-on

Web Browser

Page 44: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

!

• REST API1

JIRA AC Add-on

Web Browser

1

1

Page 45: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

• webhooks2

JIRA AC Add-on

Web Browser

1

2

1

!

• REST API1

Page 46: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

JIRA AC Add-on

Web Browser!

• GUI integration 3

1

2

33

3

1

• webhooks2

!

• REST API1

Page 47: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

• entity properties

JIRA AC Add-on

Web Browser

4

1

2

4

3

331

4

• webhooks2

!

• REST API1

!

• GUI integration 3

Page 48: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

REST API in JIRA• over 120 REST API points (and growing)

• most methods accepting multiple commands

Page 49: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

REST API in JIRA• over 120 REST API points (and growing)

• most methods accepting multiple commands

Page 50: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

SOAP RESTification in JIRA• 84% of SOAP methods already covered in REST• took longer than expected• we plan to remove SOAP in JIRA 8.0 • do not wait until the last moment

!

!

!

Atlassian Connect in JIRA

SOAP

84%

Page 51: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA

webhooks in JIRA• callback message in JSON format

• register via GUI, REST or descriptor

• coverage: • issues,

• workflow post functions,

• comments (*)

• attachments (*)

• projects (*)

• versions (*)

• worklogs (*)

!

!

(*) work in progress

Page 52: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA!

User interface integration • seamlessly blended into JIRA GUI• context aware

(*) work in progress

Page 53: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA!

User interface integration • seamlessly blended into JIRA GUI• context aware

Web PanelA

Issue Tab PanelB

Project Tab PanelC

ReportD

Gadget (*)E

Web ItemFG General page

Search Request ViewHI Admin page

J Config page

K Dialog

Profile pageL

(*) work in progress

Page 54: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA!

Entity Properties• store and retrieve JSON data in JIRA server

• search for it using JQL

• coverage:• issues

• projects

• comments

• add-on (*)

• dashboard (*)

(*) work in progress

(*) work in progress

Page 55: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA!

Entity Properties• store and retrieve JSON data in JIRA server

• search for it using JQL

• coverage:• issues

• projects

• comments

• add-on (*)

• dashboard (*)

(*) work in progress

STORE, INDEX & RETRIEVE

(*) work in progress

Page 56: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

what are we working on in

JIRA?

Page 57: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

L E G A L M U M B O J U M B O

The following is intended to outline our general product direction for informational purposes only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described herein remains at the sole discretion of Atlassian.

Page 58: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA - work in progress!

Support complex add-ons to be migrated to Atlassian Connect• close cooperation with 10 leading developers• requirements for real cases gathered and processed• common patterns found for other developers to benefit from

Page 59: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Atlassian Connect in JIRA - work in progress!

Support complex add-ons to be migrated to Atlassian Connect• close cooperation with 10 leading developers• requirements for real cases gathered and processed• common patterns found for other developers to benefit from

learn from few

develop with scale in mind

satisfy many

Page 60: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Plug-able sidebar (*)• each entry is a web panel• you can add your own• Project Tab Panel will appear here as well• icon support added

!

!

!

! (*) work in progress

Page 61: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Plug-able sidebar (*)• each entry is a web panel• you can add your own• Project Tab Panel will appear here as well• icon support added

!

!

!

!

NEW

(*) work in progress

Page 62: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Plug-able project summary page (*)• web panel in the right section• remote activity streams• more enhancements planned

!

!

!

!

(*) work in progress

Page 63: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Plug-able project summary page (*)• web panel in the right section• remote activity streams• more enhancements planned

!

!

!

!

NEW

(*) work in progress

Page 64: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Components list (*)• simplified list• Component Tab Panel removed

!

!

!

!

(*) work in progress

Page 65: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Components list (*)• simplified list• Component Tab Panel removed

!

!

!

!

CHANGED

(*) work in progress

Page 66: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Versions list (*)• simplified list• access to new Version screen• Version Tab Panel removed

!

!

!

!

(*) work in progress

Page 67: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Versions list (*)• simplified list• access to new Version screen• Version Tab Panel removed

!

!

!

!

CHANGED

(*) work in progress

Page 68: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Report list (*)• list with tiles and in categories• Report plugin point extended

!

!

!

!

(*) work in progress

Page 69: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

Report list (*)• list with tiles and in categories• Report plugin point extended

!

!

!

!

CHANGED

(*) work in progress

Page 70: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

New Version Screen (*)• single source of truth for

version• details of plugabily

for P2 and ACbeing discussed

!

!

!

! (*) work in progress

Page 71: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Project navigation

New Version Screen (*)• single source of truth for

version• details of plugabily

for P2 and ACbeing discussed

!

!

!

!

NEW

(*) work in progress

Page 72: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

talk to us!

Filip RogaczewskiBartek Gatz

Page 73: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

please welcome

Ian Grunert

Page 74: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

IAN GRUNERT • SENIOR DEVELOPER • ATLASSIAN • @iangrunert

JIRA 7 For DevelopersThings to know and how to know them

Page 75: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

We b R e s o u rc e s

D a t a C e n t e r

JIRA 7 For Developers

K e e p i n g i n t h e l o o p

Page 76: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Data Center

Page 77: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 78: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 79: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Cache sparingly and cache smarter

Page 80: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Cluster locks are a code smell

Page 81: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Background tasks? Atlassian Scheduler

Page 82: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 83: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

We b R e s o u rc e s

D a t a C e n t e r

JIRA 7 For Developers

K e e p i n g i n t h e l o o p

Page 84: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Web Resources

Page 85: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

CDN is coming

Page 86: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Watch your batch size

Page 87: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Make static resources more

static!

Page 88: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 89: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

We b R e s o u rc e s

D a t a C e n t e r

JIRA 7 For Developers

K e e p i n g i n t h e l o o p

Page 90: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Plugin Framework Upgrade

Page 91: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Deprecated method removal

Page 92: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Keeping in the loop

Page 93: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 94: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 95: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 96: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 97: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert
Page 98: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

Want less maintenance?

Page 99: JIRA 7 for Developers - Bartek Gatz Filip Rogaczewski Ian Grunert

IAN GRUNERT • SENIOR DEVELOPER • ATLASSIAN • @iangrunert

Thank you!