SlideShare uma empresa 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!

Mais conteúdo relacionado

Semelhante a The Atlassian SDK Goes to 11

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

Semelhante 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
 

Mais 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
 

Mais 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

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

The Atlassian SDK Goes to 11

Notas do 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