SlideShare a Scribd company logo
Saturday, 1 October 2011
Bonfire
               Howʼd you do that?




               Ian Grunert
               Developer, Atlassian

                                      2
Saturday, 1 October 2011
Agenda




                           3
Saturday, 1 October 2011
Agenda
               • What is Bonfire?




                                   3
Saturday, 1 October 2011
Agenda
               • What is Bonfire?
               • Building plugins for
                 multiple JIRA
                 versions




                                        3
Saturday, 1 October 2011
Agenda
               • What is Bonfire?
               • Building plugins for
                 multiple JIRA
                 versions
               • JIRA integration in
                 Bonfire - problems
                 and solutions

                                        3
Saturday, 1 October 2011
What is Bonfire?




                                 4
Saturday, 1 October 2011
What is Bonfire?
               • Exploratory
                 testing tool




                                 4
Saturday, 1 October 2011
What is Bonfire?
               • Exploratory
                 testing tool
               • JIRA plugin
                 targeting multiple
                 JIRA versions




                                      4
Saturday, 1 October 2011
What is Bonfire?
               • Exploratory
                 testing tool
               • JIRA plugin
                 targeting multiple
                 JIRA versions
               • Browser
                 extension for
                 major browsers
                                      4
Saturday, 1 October 2011
Bonfire -> JIRA Integration
                   • Browser extension -
                     JIRA client
                   • Submit bug reports
                     directly from your
                     browser




                                            5
Saturday, 1 October 2011
Bonfire -> JIRA Integration
                    • JIRA Plugin - track and
                      manage testing activities
                    • Test Sessions
                    • Session Notes
                    • http://
                      www.atlassian.com/
                      bonfire
                                                  6
Saturday, 1 October 2011
Building multiple JIRA version
               supported plugins"




                                                7
Saturday, 1 October 2011
Building multiple JIRA version
               supported plugins"
               • Why?




                                                7
Saturday, 1 October 2011
Building multiple JIRA version
               supported plugins"
               • Why?
               • Problem points?




                                                7
Saturday, 1 October 2011
Building multiple JIRA version
               supported plugins"
               • Why?
               • Problem points?
               • Some Solutions.




                                                7
Saturday, 1 October 2011
Maximise your customer base
               • Increase the size
                 of your market
               • Should try and
                 support two
                 versions back.

                                     Earlier   4.0   4.1   4.2   4.3




                                                                       8
Saturday, 1 October 2011
Multiple JIRA instances
               • Deploy to multiple internal
                 instances
               • For example,
                 https://support.atlassian.com/
                 is 4.3, where as
                 https://jira.atlassian.com/ is
                 4.4.

                                                  9
Saturday, 1 October 2011
Be ready for upgrades
                    • Test against EAPs!
                    • Give feedback.
                    • Participate in API building
                    • Support JIRA 5.0 from
                      launch



                                                    10
Saturday, 1 October 2011
Problems




                           11
Saturday, 1 October 2011
Problems
                    • Java API changes




                                         11
Saturday, 1 October 2011
Problems
                    • Java API changes
                    • JS and Markup changes




                                              11
Saturday, 1 October 2011
Problems
                    • Java API changes
                    • JS and Markup changes
                    • Testing across multiple
                      versions




                                                11
Saturday, 1 October 2011
Branching




                           12
Saturday, 1 October 2011
Branching
               • Cleaner code




                                12
Saturday, 1 October 2011
Branching
               • Cleaner code
                    • Is this good or bad?




                                             12
Saturday, 1 October 2011
Branching
               • Cleaner code
                    • Is this good or bad?
               • Overhead




                                             12
Saturday, 1 October 2011
Branching
               • Cleaner code
                    • Is this good or bad?
               • Overhead
                    • Builds




                                             12
Saturday, 1 October 2011
Branching
               • Cleaner code
                    • Is this good or bad?
               • Overhead
                    • Builds
                    • Merging


                                             12
Saturday, 1 October 2011
Branching
               • Cleaner code
                    • Is this good or bad?
               • Overhead
                    • Builds
                    • Merging
                    • Testing
                                             12
Saturday, 1 October 2011
One build, multiple versions




                                              13
Saturday, 1 October 2011
One build, multiple versions
               • Messier code




                                              13
Saturday, 1 October 2011
One build, multiple versions
               • Messier code
               • No merging




                                              13
Saturday, 1 October 2011
One build, multiple versions
               • Messier code
               • No merging
               • Shipping one jar




                                              13
Saturday, 1 October 2011
One build, multiple versions
               • Messier code
               • No merging
               • Shipping one jar
               • All tests in one branch




                                              13
Saturday, 1 October 2011
One build, multiple versions
               • Messier code
               • No merging
               • Shipping one jar
               • All tests in one branch
               • Know when touching
                 problem areas

                                              13
Saturday, 1 October 2011
Six multi-version plugin
               techniques




                                          14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS




                                          14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS
               2. Javascript / Markup changes - AJS.version




                                                              14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS
               2. Javascript / Markup changes - AJS.version
               3. Non-compile breaking API changes - BuildUtilsInfo




                                                                      14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS
               2. Javascript / Markup changes - AJS.version
               3. Non-compile breaking API changes - BuildUtilsInfo
               4. UI location changes - Web fragment conditions




                                                                      14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS
               2. Javascript / Markup changes - AJS.version
               3. Non-compile breaking API changes - BuildUtilsInfo
               4. UI location changes - Web fragment conditions
               5. Compile breaking changes - Reflection


                                                                      14
Saturday, 1 October 2011
Six multi-version plugin
               techniques
               1. CI using AMPS
               2. Javascript / Markup changes - AJS.version
               3. Non-compile breaking API changes - BuildUtilsInfo
               4. UI location changes - Web fragment conditions
               5. Compile breaking changes - Reflection
               6. Compile breaking changes - Dynamic module types
                                                                      14
Saturday, 1 October 2011
Continuous Integration
               • Run CI against all supported versions
                    • Use testGroups in AMPS to facilitate this
               • Quickly identify compile-time issues introduced




                                                                   15
Saturday, 1 October 2011
16
Saturday, 1 October 2011
17
Saturday, 1 October 2011
JavaScript / Markup changes
               • AJS.version to find AUIʼs version, split the code path
               • https://developer.atlassian.com/display/AUI/AUI
                 +Version+Matrix




                                                                         18
Saturday, 1 October 2011
19
Saturday, 1 October 2011
20
Saturday, 1 October 2011
Querying JIRA version
               • BuildUtilsInfo in JIRA can be used to find the JIRA
                 version and split the code path




                                                                      21
Saturday, 1 October 2011
Web-fragment Conditions
               • Allows you to define a boolean condition as to whether
                 or not a web-fragment shows up
                    • IsPriorToJIRAVersion condition to only show web
                      fragments in certain JIRA versions (uses
                      BuildUtilsInfo)




                                                                         22
Saturday, 1 October 2011
Example




                           23
Saturday, 1 October 2011
Compile breaking changes -
               Reflection"
               • Use this:
                    • To load a class only present in later versions of JIRA
                    • To load a class that changes names across JIRA
                      versions




                                                                               24
Saturday, 1 October 2011
Example




                           25
Saturday, 1 October 2011
Example




                           26
Saturday, 1 October 2011
How does this look in JIRA 5?
               • JIRA 5.0 removes OSUser
                 entirely
               • Replaced with Crowd user
               • Large scale compile time
                 breaking changes



                                               27
Saturday, 1 October 2011
We tried branching
               • Approach taken by Bonfire was to drop 4.2 support,
                 and remove as much OSUser as possible
                    • Some instances of OSUser couldnʼt be removed
                      (IssueTabPanel for example)
               • Then create a branch, and change the imports for the
                 branch


                                                                        28
Saturday, 1 October 2011
Deprecation pains
               • In JIRA 4.3 / 4.4, use special methods to get crowd
                 user object
                    • jiraAuthContext.getUser for OSUser
                    • jiraAuthContext.getLoggedInUser() for Crowd User
               • OSUser based methods are deprecated in 4.3 / 4.4



                                                                         29
Saturday, 1 October 2011
Deprecation pains
               • In JIRA 5.0, the better 4.3/4.4
                 Crowd user methods are now
                 deprecated (moved to nicer
                 named methods)
                    • Doing the right thing yields
                      lots of warnings


                                                     30
Saturday, 1 October 2011
Branching sucks!
                    • For the same reasons outlined before
                    • No eyes on JIRA 5.0 changes
                    • Merge pain
                    • Multiple jars
                    • How can we fix this?


                                                             31
Saturday, 1 October 2011
Dynamic module types
                    • Don Brown created jira4-compat to allow Speakeasy
                      to support 4.2 -> 5.0 without branching
                    • Uses dynamic plugin module types to allow for new,
                      cross version compatible module types
                    • 4 maven modules, compile different maven modules
                      based on JIRA version
                    • FactoryBean Spring Component to inject the correct
                      dependency                                           32
Saturday, 1 October 2011
Bonfire multi-version
               experiences - takeaways
               1. Multi-version support - you should be doing it!
               2. Donʼt have to branch to do multi-version.
               3. The documentation can help!
               http://confluence.atlassian.com/display/JIRA/Plugin
               +Developer+Notes+for+JIRA+5.0



                                                                    33
Saturday, 1 October 2011
Bonfire remote JIRA integration




                                                34
Saturday, 1 October 2011
Bonfire remote JIRA integration




                                                35
Saturday, 1 October 2011
Bonfire remote JIRA integration
               1. Authentication




                                                35
Saturday, 1 October 2011
Bonfire remote JIRA integration
               1. Authentication
               2. Issue metadata




                                                35
Saturday, 1 October 2011
Bonfire remote JIRA integration
               1. Authentication
               2. Issue metadata
               3. Issue Creation




                                                35
Saturday, 1 October 2011
Authentication
               • Canʼt store the password
               • Ideally, single step
                 authentication




                                            36
Saturday, 1 October 2011
Authentication
               • Use JIRA REST
               • Returns a cookie
               • Use cookie for all future
                 requests
               • Re-authenticate on
                 cookie timeout


                                             37
Saturday, 1 October 2011
Issue metadata
               • Need metadata to draw the
                 issue creation form
               • XML-RPC
                    • Missing fields
                    • Could not create on some
                      instances

                                                 38
Saturday, 1 October 2011
Issue metadata
               • Now on custom REST
               • Bad: extra code
               • Good: In control, works on
                 all instances, can add new
                 Bonfire specific features



                                              39
Saturday, 1 October 2011
Issue creation
               • XML-RPC
               • Gaps filled with REST
                 (e.g. labels)
               • SOAP for attachments




                                        40
Saturday, 1 October 2011
Issue creation
               • Now on custom REST
               • Bad: extra code
               • Good: In control, works on
                 all instances, can add new
                 Bonfire specific features
               • Déjà vu?

                                              41
Saturday, 1 October 2011
Good news, everyone!
                    • In JIRA 5.0, neither custom
                      REST resource would be
                      required




                                                    42
Saturday, 1 October 2011
Bonfire Remote API
               experiences - takeaways
               1. Test on real / complex data!
                  (use atlas-create-home-zip)
               2. Favour REST
               3. Donʼt fear custom REST resources




                                                     43
Saturday, 1 October 2011
Thank you!




Saturday, 1 October 2011

More Related Content

Viewers also liked

Unite jira presentation 2012 v4 copy
Unite jira presentation 2012 v4 copyUnite jira presentation 2012 v4 copy
Unite jira presentation 2012 v4 copy
Atlassian
 
London unite-zen
London unite-zenLondon unite-zen
London unite-zen
Atlassian
 
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris MaddernJuggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
Atlassian
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011
Atlassian
 
Scalability ofjira attelefónicagermany_v1.2_public
Scalability ofjira attelefónicagermany_v1.2_publicScalability ofjira attelefónicagermany_v1.2_public
Scalability ofjira attelefónicagermany_v1.2_public
Atlassian
 
Hodges unite confluence unite presentation
Hodges unite confluence unite presentationHodges unite confluence unite presentation
Hodges unite confluence unite presentation
Atlassian
 
Equion presentation updated atlassian unite 12 march2012
Equion presentation updated   atlassian unite 12 march2012Equion presentation updated   atlassian unite 12 march2012
Equion presentation updated atlassian unite 12 march2012
Atlassian
 
20120315 atlassian unite - dvcs
20120315   atlassian unite - dvcs20120315   atlassian unite - dvcs
20120315 atlassian unite - dvcs
Atlassian
 
Alm works atlassian unite london
Alm works   atlassian unite londonAlm works   atlassian unite london
Alm works atlassian unite london
Atlassian
 

Viewers also liked (9)

Unite jira presentation 2012 v4 copy
Unite jira presentation 2012 v4 copyUnite jira presentation 2012 v4 copy
Unite jira presentation 2012 v4 copy
 
London unite-zen
London unite-zenLondon unite-zen
London unite-zen
 
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris MaddernJuggling Features, Advancement, and Quality As You Grow - Chris Maddern
Juggling Features, Advancement, and Quality As You Grow - Chris Maddern
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011
 
Scalability ofjira attelefónicagermany_v1.2_public
Scalability ofjira attelefónicagermany_v1.2_publicScalability ofjira attelefónicagermany_v1.2_public
Scalability ofjira attelefónicagermany_v1.2_public
 
Hodges unite confluence unite presentation
Hodges unite confluence unite presentationHodges unite confluence unite presentation
Hodges unite confluence unite presentation
 
Equion presentation updated atlassian unite 12 march2012
Equion presentation updated   atlassian unite 12 march2012Equion presentation updated   atlassian unite 12 march2012
Equion presentation updated atlassian unite 12 march2012
 
20120315 atlassian unite - dvcs
20120315   atlassian unite - dvcs20120315   atlassian unite - dvcs
20120315 atlassian unite - dvcs
 
Alm works atlassian unite london
Alm works   atlassian unite londonAlm works   atlassian unite london
Alm works atlassian unite london
 

Similar to Bonfire... How'd You Do That?! - AtlasCamp 2011

Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
Atlassian
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
Leonardo Borges
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
LB Denker
 
Extending rails
Extending railsExtending rails
Extending rails
Blazing Cloud
 
agile-planning
agile-planningagile-planning
agile-planning
Amir Barylko
 
Business of APIs Conference 2011 - Unicorns
Business of APIs Conference 2011 - UnicornsBusiness of APIs Conference 2011 - Unicorns
Business of APIs Conference 2011 - Unicorns
Mashery
 
Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)
Software Education
 
Generating Print Sales Leads with LinkedIn session 1
Generating Print Sales Leads with LinkedIn session 1Generating Print Sales Leads with LinkedIn session 1
Generating Print Sales Leads with LinkedIn session 1
Joe Kern
 
David Mytton, Boxed Ice
David Mytton, Boxed Ice   David Mytton, Boxed Ice
David Mytton, Boxed Ice
Mashery
 
The Easy Way - Plone Conference 2011
The Easy Way - Plone Conference 2011The Easy Way - Plone Conference 2011
The Easy Way - Plone Conference 2011
Mikko Ohtamaa
 
High quality iOS development
High quality iOS developmentHigh quality iOS development
High quality iOS development
Robin Lu
 
Open-source Mic Talks at AOL
Open-source Mic Talks at AOLOpen-source Mic Talks at AOL
Open-source Mic Talks at AOL
Addy Osmani
 
Fred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UIFred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UI
Axway Appcelerator
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
Puppet
 
Building Languages for the JVM - StarTechConf 2011
Building Languages for the JVM - StarTechConf 2011Building Languages for the JVM - StarTechConf 2011
Building Languages for the JVM - StarTechConf 2011
Charles Nutter
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
Sylvain Zimmer
 
Oop design magma rails 2011
Oop design   magma rails 2011Oop design   magma rails 2011
Oop design magma rails 2011
MagmaConf
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
eug3n_cojocaru
 
Governing services, data, rules, processes and more
Governing services, data, rules, processes and moreGoverning services, data, rules, processes and more
Governing services, data, rules, processes and more
Randall Hauch
 
Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
zeeg
 

Similar to Bonfire... How'd You Do That?! - AtlasCamp 2011 (20)

Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
 
Extending rails
Extending railsExtending rails
Extending rails
 
agile-planning
agile-planningagile-planning
agile-planning
 
Business of APIs Conference 2011 - Unicorns
Business of APIs Conference 2011 - UnicornsBusiness of APIs Conference 2011 - Unicorns
Business of APIs Conference 2011 - Unicorns
 
Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)Agile at LIC (GTPF 2011)
Agile at LIC (GTPF 2011)
 
Generating Print Sales Leads with LinkedIn session 1
Generating Print Sales Leads with LinkedIn session 1Generating Print Sales Leads with LinkedIn session 1
Generating Print Sales Leads with LinkedIn session 1
 
David Mytton, Boxed Ice
David Mytton, Boxed Ice   David Mytton, Boxed Ice
David Mytton, Boxed Ice
 
The Easy Way - Plone Conference 2011
The Easy Way - Plone Conference 2011The Easy Way - Plone Conference 2011
The Easy Way - Plone Conference 2011
 
High quality iOS development
High quality iOS developmentHigh quality iOS development
High quality iOS development
 
Open-source Mic Talks at AOL
Open-source Mic Talks at AOLOpen-source Mic Talks at AOL
Open-source Mic Talks at AOL
 
Fred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UIFred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UI
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
 
Building Languages for the JVM - StarTechConf 2011
Building Languages for the JVM - StarTechConf 2011Building Languages for the JVM - StarTechConf 2011
Building Languages for the JVM - StarTechConf 2011
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
Oop design magma rails 2011
Oop design   magma rails 2011Oop design   magma rails 2011
Oop design magma rails 2011
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Governing services, data, rules, processes and more
Governing services, data, rules, processes and moreGoverning services, data, rules, processes and more
Governing services, data, rules, processes and more
 
Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
 

More from Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
Atlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
Atlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
Atlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
Atlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
Atlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
Atlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
Atlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
Atlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
Atlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
Atlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
Atlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
Atlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
Atlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
Atlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
Atlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
Atlassian
 

More from Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Recently uploaded

Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 

Recently uploaded (20)

Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 

Bonfire... How'd You Do That?! - AtlasCamp 2011

  • 2. Bonfire Howʼd you do that? Ian Grunert Developer, Atlassian 2 Saturday, 1 October 2011
  • 3. Agenda 3 Saturday, 1 October 2011
  • 4. Agenda • What is Bonfire? 3 Saturday, 1 October 2011
  • 5. Agenda • What is Bonfire? • Building plugins for multiple JIRA versions 3 Saturday, 1 October 2011
  • 6. Agenda • What is Bonfire? • Building plugins for multiple JIRA versions • JIRA integration in Bonfire - problems and solutions 3 Saturday, 1 October 2011
  • 7. What is Bonfire? 4 Saturday, 1 October 2011
  • 8. What is Bonfire? • Exploratory testing tool 4 Saturday, 1 October 2011
  • 9. What is Bonfire? • Exploratory testing tool • JIRA plugin targeting multiple JIRA versions 4 Saturday, 1 October 2011
  • 10. What is Bonfire? • Exploratory testing tool • JIRA plugin targeting multiple JIRA versions • Browser extension for major browsers 4 Saturday, 1 October 2011
  • 11. Bonfire -> JIRA Integration • Browser extension - JIRA client • Submit bug reports directly from your browser 5 Saturday, 1 October 2011
  • 12. Bonfire -> JIRA Integration • JIRA Plugin - track and manage testing activities • Test Sessions • Session Notes • http:// www.atlassian.com/ bonfire 6 Saturday, 1 October 2011
  • 13. Building multiple JIRA version supported plugins" 7 Saturday, 1 October 2011
  • 14. Building multiple JIRA version supported plugins" • Why? 7 Saturday, 1 October 2011
  • 15. Building multiple JIRA version supported plugins" • Why? • Problem points? 7 Saturday, 1 October 2011
  • 16. Building multiple JIRA version supported plugins" • Why? • Problem points? • Some Solutions. 7 Saturday, 1 October 2011
  • 17. Maximise your customer base • Increase the size of your market • Should try and support two versions back. Earlier 4.0 4.1 4.2 4.3 8 Saturday, 1 October 2011
  • 18. Multiple JIRA instances • Deploy to multiple internal instances • For example, https://support.atlassian.com/ is 4.3, where as https://jira.atlassian.com/ is 4.4. 9 Saturday, 1 October 2011
  • 19. Be ready for upgrades • Test against EAPs! • Give feedback. • Participate in API building • Support JIRA 5.0 from launch 10 Saturday, 1 October 2011
  • 20. Problems 11 Saturday, 1 October 2011
  • 21. Problems • Java API changes 11 Saturday, 1 October 2011
  • 22. Problems • Java API changes • JS and Markup changes 11 Saturday, 1 October 2011
  • 23. Problems • Java API changes • JS and Markup changes • Testing across multiple versions 11 Saturday, 1 October 2011
  • 24. Branching 12 Saturday, 1 October 2011
  • 25. Branching • Cleaner code 12 Saturday, 1 October 2011
  • 26. Branching • Cleaner code • Is this good or bad? 12 Saturday, 1 October 2011
  • 27. Branching • Cleaner code • Is this good or bad? • Overhead 12 Saturday, 1 October 2011
  • 28. Branching • Cleaner code • Is this good or bad? • Overhead • Builds 12 Saturday, 1 October 2011
  • 29. Branching • Cleaner code • Is this good or bad? • Overhead • Builds • Merging 12 Saturday, 1 October 2011
  • 30. Branching • Cleaner code • Is this good or bad? • Overhead • Builds • Merging • Testing 12 Saturday, 1 October 2011
  • 31. One build, multiple versions 13 Saturday, 1 October 2011
  • 32. One build, multiple versions • Messier code 13 Saturday, 1 October 2011
  • 33. One build, multiple versions • Messier code • No merging 13 Saturday, 1 October 2011
  • 34. One build, multiple versions • Messier code • No merging • Shipping one jar 13 Saturday, 1 October 2011
  • 35. One build, multiple versions • Messier code • No merging • Shipping one jar • All tests in one branch 13 Saturday, 1 October 2011
  • 36. One build, multiple versions • Messier code • No merging • Shipping one jar • All tests in one branch • Know when touching problem areas 13 Saturday, 1 October 2011
  • 37. Six multi-version plugin techniques 14 Saturday, 1 October 2011
  • 38. Six multi-version plugin techniques 1. CI using AMPS 14 Saturday, 1 October 2011
  • 39. Six multi-version plugin techniques 1. CI using AMPS 2. Javascript / Markup changes - AJS.version 14 Saturday, 1 October 2011
  • 40. Six multi-version plugin techniques 1. CI using AMPS 2. Javascript / Markup changes - AJS.version 3. Non-compile breaking API changes - BuildUtilsInfo 14 Saturday, 1 October 2011
  • 41. Six multi-version plugin techniques 1. CI using AMPS 2. Javascript / Markup changes - AJS.version 3. Non-compile breaking API changes - BuildUtilsInfo 4. UI location changes - Web fragment conditions 14 Saturday, 1 October 2011
  • 42. Six multi-version plugin techniques 1. CI using AMPS 2. Javascript / Markup changes - AJS.version 3. Non-compile breaking API changes - BuildUtilsInfo 4. UI location changes - Web fragment conditions 5. Compile breaking changes - Reflection 14 Saturday, 1 October 2011
  • 43. Six multi-version plugin techniques 1. CI using AMPS 2. Javascript / Markup changes - AJS.version 3. Non-compile breaking API changes - BuildUtilsInfo 4. UI location changes - Web fragment conditions 5. Compile breaking changes - Reflection 6. Compile breaking changes - Dynamic module types 14 Saturday, 1 October 2011
  • 44. Continuous Integration • Run CI against all supported versions • Use testGroups in AMPS to facilitate this • Quickly identify compile-time issues introduced 15 Saturday, 1 October 2011
  • 47. JavaScript / Markup changes • AJS.version to find AUIʼs version, split the code path • https://developer.atlassian.com/display/AUI/AUI +Version+Matrix 18 Saturday, 1 October 2011
  • 50. Querying JIRA version • BuildUtilsInfo in JIRA can be used to find the JIRA version and split the code path 21 Saturday, 1 October 2011
  • 51. Web-fragment Conditions • Allows you to define a boolean condition as to whether or not a web-fragment shows up • IsPriorToJIRAVersion condition to only show web fragments in certain JIRA versions (uses BuildUtilsInfo) 22 Saturday, 1 October 2011
  • 52. Example 23 Saturday, 1 October 2011
  • 53. Compile breaking changes - Reflection" • Use this: • To load a class only present in later versions of JIRA • To load a class that changes names across JIRA versions 24 Saturday, 1 October 2011
  • 54. Example 25 Saturday, 1 October 2011
  • 55. Example 26 Saturday, 1 October 2011
  • 56. How does this look in JIRA 5? • JIRA 5.0 removes OSUser entirely • Replaced with Crowd user • Large scale compile time breaking changes 27 Saturday, 1 October 2011
  • 57. We tried branching • Approach taken by Bonfire was to drop 4.2 support, and remove as much OSUser as possible • Some instances of OSUser couldnʼt be removed (IssueTabPanel for example) • Then create a branch, and change the imports for the branch 28 Saturday, 1 October 2011
  • 58. Deprecation pains • In JIRA 4.3 / 4.4, use special methods to get crowd user object • jiraAuthContext.getUser for OSUser • jiraAuthContext.getLoggedInUser() for Crowd User • OSUser based methods are deprecated in 4.3 / 4.4 29 Saturday, 1 October 2011
  • 59. Deprecation pains • In JIRA 5.0, the better 4.3/4.4 Crowd user methods are now deprecated (moved to nicer named methods) • Doing the right thing yields lots of warnings 30 Saturday, 1 October 2011
  • 60. Branching sucks! • For the same reasons outlined before • No eyes on JIRA 5.0 changes • Merge pain • Multiple jars • How can we fix this? 31 Saturday, 1 October 2011
  • 61. Dynamic module types • Don Brown created jira4-compat to allow Speakeasy to support 4.2 -> 5.0 without branching • Uses dynamic plugin module types to allow for new, cross version compatible module types • 4 maven modules, compile different maven modules based on JIRA version • FactoryBean Spring Component to inject the correct dependency 32 Saturday, 1 October 2011
  • 62. Bonfire multi-version experiences - takeaways 1. Multi-version support - you should be doing it! 2. Donʼt have to branch to do multi-version. 3. The documentation can help! http://confluence.atlassian.com/display/JIRA/Plugin +Developer+Notes+for+JIRA+5.0 33 Saturday, 1 October 2011
  • 63. Bonfire remote JIRA integration 34 Saturday, 1 October 2011
  • 64. Bonfire remote JIRA integration 35 Saturday, 1 October 2011
  • 65. Bonfire remote JIRA integration 1. Authentication 35 Saturday, 1 October 2011
  • 66. Bonfire remote JIRA integration 1. Authentication 2. Issue metadata 35 Saturday, 1 October 2011
  • 67. Bonfire remote JIRA integration 1. Authentication 2. Issue metadata 3. Issue Creation 35 Saturday, 1 October 2011
  • 68. Authentication • Canʼt store the password • Ideally, single step authentication 36 Saturday, 1 October 2011
  • 69. Authentication • Use JIRA REST • Returns a cookie • Use cookie for all future requests • Re-authenticate on cookie timeout 37 Saturday, 1 October 2011
  • 70. Issue metadata • Need metadata to draw the issue creation form • XML-RPC • Missing fields • Could not create on some instances 38 Saturday, 1 October 2011
  • 71. Issue metadata • Now on custom REST • Bad: extra code • Good: In control, works on all instances, can add new Bonfire specific features 39 Saturday, 1 October 2011
  • 72. Issue creation • XML-RPC • Gaps filled with REST (e.g. labels) • SOAP for attachments 40 Saturday, 1 October 2011
  • 73. Issue creation • Now on custom REST • Bad: extra code • Good: In control, works on all instances, can add new Bonfire specific features • Déjà vu? 41 Saturday, 1 October 2011
  • 74. Good news, everyone! • In JIRA 5.0, neither custom REST resource would be required 42 Saturday, 1 October 2011
  • 75. Bonfire Remote API experiences - takeaways 1. Test on real / complex data! (use atlas-create-home-zip) 2. Favour REST 3. Donʼt fear custom REST resources 43 Saturday, 1 October 2011
  • 76. Thank you! Saturday, 1 October 2011