SlideShare una empresa de Scribd logo
1 de 91
Atlassian Plugins SDK
AMPS Now Goes To 11!




Jonathan Doklovic
Developer Relations, Atlassian
                                 2
AMPS (has always been good at)
Project Creation
• Easy project creation through prompts (atlas-create-jira-plugin)
• Generic plugin stub
• Generic unit test

Testing
• Easily run host product
• Automatically run functional tests
• Remote debug host product
                                                                     3
AMPS (has always been good at)
Project Creation
• Easy project creation through prompts (atlas-create-jira-plugin)
• Generic plugin stub
• Generic unit test

Testing
• Easily run host product
• Automatically run functional tests
• Remote debug host product
                                                                     4
AMPS (has always been good at)
Project Creation
• Easy project creation through prompts (atlas-create-jira-plugin)
• Generic plugin stub
• Generic unit test
              [Rock Out Your Plugin Here]
Testing
• Easily run host product
• Automatically run functional tests
• Remote debug host product
                                                                     4
“Rocking Out” Your Plugin (the old way)




                                          5
“Rocking Out” Your Plugin (the old way)




                                          5
“Rocking Out” Your Plugin (the old way)




                                          6
“Rocking Out” Your Plugin (the old way)




                                          6
“Rocking Out” Your Plugin (the old way)




                                          7
“Rocking Out” Your Plugin (the old way)




                                          7
“Rocking Out” Your Plugin (the old way)




                                          8
“Rocking Out” Your Plugin (the old way)




                                          8
“Rocking Out” Your Plugin (the old way)




                                          9
“Rocking Out” Your Plugin (the old way)




                                          9
“Rocking Out” Your Plugin (the old way)




                                          10
“Rocking Out” Your Plugin (the old way)




                                          10
“Rocking Out” Your Plugin (the old way)




                                          11
“Rocking Out” Your Plugin (the old way)




                                          11
“Rocking Out” Your Plugin (the old way)




                                          12
“Rocking Out” Your Plugin (the old way)




                                          12
“Rocking Out” Your Plugin (the old way)




                                          13
“Rocking Out” Your Plugin (the old way)




                                          13
“Rocking Out” Your Plugin (the old way)




                                          14
“Rocking Out” Your Plugin (the old way)




                                          14
“Rocking Out” Your Plugin (the old way)




                                          15
“Rocking Out” Your Plugin (the old way)




                                          15
“Rocking Out” Your Plugin (the old way)




                                          16
“Rocking Out” Your Plugin (the old way)




                                          16
“Rocking Out” Your Plugin (the old way)




                                          17
“Rocking Out” Your Plugin (the old way)




                                          17
“Rocking Out” Your Plugin (the old way)




                                          18
“Rocking Out” Your Plugin (the old way)




                                          18
“Rocking Out” Your Plugin (the old way)




                                          19
“Rocking Out” Your Plugin (the old way)




                                          19
“Rocking Out” Your Plugin (the old way)




                                          20
“Rocking Out” Your Plugin (the old way)




                                          20
“Rocking Out” Your Plugin (the old way)


           I’m Ready To Code!
           (what was I writing again?)




                                          21
“Rocking Out” Your Plugin (the old way)


           I’m Ready To Code!
           (what was I writing again?)




                                          21
22
SDK/AMPS 3.6
get it: http://developer.atlassian.com
• Easily Create Plugin Modules
 • atlas-create-jira-plugin-module
• Less Time Hunting in Docs
• Less Manual Setup
• Get To Coding Faster
• Get To Testing Faster
• Get To DRINKING BEER FASTER!
                                         23
What’s Next?
• All modules for ALL Products
 • currently common modules + JIRA modules
• Automated Testing of Generated Modules
• Product-Version Aware Generators
• YOUR Feedback


                                             24
Contribute!

  https://studio.atlassian.com/browse/AMPS




                                             25
One more thing...




                    26
Zach Davis
JavaScript Developer, Atlassian

                                  27
Faster plugin development.




Zach Davis
JavaScript Developer, Atlassian

                                    27
Faster plugin development.
            Greater sanity.



Zach Davis
JavaScript Developer, Atlassian

                                    27
Faster plugin development.
            Greater sanity.



Zach Davis
JavaScript Developer, Atlassian

                                    28
Faster plugin development.
            Greater sanity.



Zach Davis
JavaScript Developer, Atlassian
           Developer

                                    28
Faster plugin development.
            Greater sanity.



Zach Davis
JavaScript Developer, Atlassian
           Developer

                                    28
You should probably hate me.




                               29
You should probably hate me.
Seriously.




                               29
Edit.




        30
Edit. Save.




              30
Reload.




          31
This slide intentionally left blank.




                                       32
Edit. Save. Reload.




                      33
Edit. Save. Reload.




                      33
Edit. Save. Reload.




                      33
Edit. Save. Reload.




                      33
You should probably hate me.




                               34
You should probably hate me.
But hear me out.




                               34
We’re here to help




                     35
We’re here to help
• Maven CLI Plugin




                     35
We’re here to help
• Maven CLI Plugin
• Plugin SDK




                     35
We’re here to help
• Maven CLI Plugin
• Plugin SDK
• FastDev




                     36
Demo!




        37
How it works




               38
How it works
• Servlet filter that listens for shift + reload (ctl + reload in IE)




                                                                       38
How it works
• Servlet filter that listens for shift + reload (ctl + reload in IE)
  • Checks “Cache-Control” and “Pragma” headers




                                                                       38
How it works
• Servlet filter that listens for shift + reload (ctl + reload in IE)
  • Checks “Cache-Control” and “Pragma” headers

• If detected, scans plugin directories for changes




                                                                       38
How it works
• Servlet filter that listens for shift + reload (ctl + reload in IE)
  • Checks “Cache-Control” and “Pragma” headers

• If detected, scans plugin directories for changes
• If found, spins up a maven process to perform pi




                                                                       38
How to get it




                39
How to get it
• Bundled in the Plugin SDK 3.6, released yesterday




                                                      39
Configurability




                 40
Configurability
• Any single module plugin should work out of the box




                                                        40
Configurability
• Any single module plugin should work out of the box
 • For multi-module plugins, specify additional plugin root directories




                                                                          40
Configurability
• Any single module plugin should work out of the box
 • For multi-module plugins, specify additional plugin root directories

• Can ignore additional files, extensions or directories




                                                                          40
Configurability
• Any single module plugin should work out of the box
 • For multi-module plugins, specify additional plugin root directories

• Can ignore additional files, extensions or directories
• Can change the mvn command




                                                                          40
Configurability
• Any single module plugin should work out of the box
 • For multi-module plugins, specify additional plugin root directories

• Can ignore additional files, extensions or directories
• Can change the mvn command
• Can disable FastDev



                                                                          40
Configurability
• Any single module plugin should work out of the box
 • For multi-module plugins, specify additional plugin root directories

• Can ignore additional files, extensions or directories
• Can change the mvn command
• Can disable FastDev
• All from your plugin’s pom.xml file

                                                                          40
Future Work




              41
Future Work
• Maven 3




              41
Future Work
• Maven 3
 • Invoke maven programmatically so we don’t have to spin up a new vm




                                                                        41
Future Work
• Maven 3
 • Invoke maven programmatically so we don’t have to spin up a new vm

• Dependency Management




                                                                        41
Future Work
• Maven 3
 • Invoke maven programmatically so we don’t have to spin up a new vm

• Dependency Management
 • Currently unreliable for multiple plugins with cross-dependencies




                                                                        41
More information




                   42
More information
• Docs: https://studio.atlassian.com/wiki/display/FASTDEV
• Bugs: https://studio.atlassian.com/browse/FASTDEV




                                                            42
More information
• Docs: https://studio.atlassian.com/wiki/display/FASTDEV
• Bugs: https://studio.atlassian.com/browse/FASTDEV
• Plugin SDK: http://developer.atlassian.com/




                                                            42
More information
• Docs: https://studio.atlassian.com/wiki/display/FASTDEV
• Bugs: https://studio.atlassian.com/browse/FASTDEV
• Plugin SDK: http://developer.atlassian.com/
• Find me or email me: zach@atlassian.com




                                                            42
Thank you!

Más contenido relacionado

Similar a The Atlassian SDK Goes to 11

MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
jackdanger
 

Similar a The Atlassian SDK Goes to 11 (20)

Atlaskickin' the Plugin SDK, AtlasCamp US 2012
Atlaskickin' the Plugin SDK, AtlasCamp US 2012Atlaskickin' the Plugin SDK, AtlasCamp US 2012
Atlaskickin' the Plugin SDK, AtlasCamp US 2012
 
Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
 
Power Up Your Build - Omer van Kloeten @ Wix 2018-04
Power Up Your Build - Omer van Kloeten @ Wix 2018-04Power Up Your Build - Omer van Kloeten @ Wix 2018-04
Power Up Your Build - Omer van Kloeten @ Wix 2018-04
 
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]
 
Concurrency in Python
Concurrency in PythonConcurrency in Python
Concurrency in Python
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use Kanban
 
Eclipse @eBay 2009
Eclipse @eBay 2009Eclipse @eBay 2009
Eclipse @eBay 2009
 
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
 
Javaland keynote final
Javaland keynote finalJavaland keynote final
Javaland keynote final
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
 
From the Atlassian Labs: FedEx Champions - Atlassian Summit 2010 - Lightning ...
From the Atlassian Labs: FedEx Champions - Atlassian Summit 2010 - Lightning ...From the Atlassian Labs: FedEx Champions - Atlassian Summit 2010 - Lightning ...
From the Atlassian Labs: FedEx Champions - Atlassian Summit 2010 - Lightning ...
 
A Re-Introduction to JavaScript
A Re-Introduction to JavaScriptA Re-Introduction to JavaScript
A Re-Introduction to JavaScript
 
TDC2016POA | Trilha JavaScript - O Rei dos Plugins - Tornando-se produtível e...
TDC2016POA | Trilha JavaScript - O Rei dos Plugins - Tornando-se produtível e...TDC2016POA | Trilha JavaScript - O Rei dos Plugins - Tornando-se produtível e...
TDC2016POA | Trilha JavaScript - O Rei dos Plugins - Tornando-se produtível e...
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
 
Complex things explained easily
Complex things explained easilyComplex things explained easily
Complex things explained easily
 
Crate - ruby based standalone executables
Crate - ruby based standalone executablesCrate - ruby based standalone executables
Crate - ruby based standalone executables
 
Making Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 VancouverMaking Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 Vancouver
 
Clean Manifests with Puppet::Tidy
Clean Manifests with Puppet::TidyClean Manifests with Puppet::Tidy
Clean Manifests with Puppet::Tidy
 
Culerity and Headless Full Stack Integration Testing
Culerity and Headless Full Stack Integration TestingCulerity and Headless Full Stack Integration Testing
Culerity and Headless Full Stack Integration Testing
 
Tiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of usTiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of us
 

Más de 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
 

Más de 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
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

The Atlassian SDK Goes to 11

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n