SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Getting Started with Plugin Development
                                        Matt Ryall
                             Confluence Technical Lead, Atlassian

                                   Atlassian Summit 2010




                                                                   1
Monday, June 14, 2010                                              1
Why have you never developed a plugin?

          ‣ Don’t know how
          ‣ Not a Java programmer
          ‣ Too hard
          ‣ Too much initial set-up
          ‣ Don’t know the product APIs



                                                  2
Monday, June 14, 2010                             2
Little-Known Fact #1:
                        Plugins don’t need to be written in Java.




                                                                    3
Monday, June 14, 2010                                               3
Plugins types that don’t use Java

         ‣ Web Items – Add custom links to your application
         ‣ Web Panels – Add additional content on the page
         ‣ Web Resources – Restyle or customise the page with CSS and JavaScript
         ‣ External Gadget Providers or Gadget Plugins – Custom Google gadgets
         ‣ Confluence User Macros – Create simple Confluence macros



                                                                                   4
Monday, June 14, 2010                                                              4
Use web technologies instead

         ‣ HTML
         ‣ CSS
         ‣ JavaScript (with jQuery)




                                        5
Monday, June 14, 2010                   5
Little-Known Fact #2:
                        Plugins don’t need to be distributed in a JAR file.




                                                                             6
Monday, June 14, 2010                                                        6
Upload plugins directly

         ‣ If there’s no other files, just upload the XML descriptor file.
         ‣ This works for:
               • Web Items
               • Web Panels
               • Web Resources (sometimes)
               • Confluence User Macros

         ‣ External Gadget Providers can be installed via URL


                                                                           7
Monday, June 14, 2010                                                      7
XML file template
         <atlassian-plugin key="com.example.plugins.sample"
                 name="My Sample Plugin" plugins-version="2">
             <plugin-info>
                 <version>1.0</version>
                 <vendor>My Company</vendor>
             </plugin-info>


                    ... your stuff goes here ...

         </atlassian-plugin>

                        http://confluence.atlassian.com/display/CONFDEV/Creating+your+Plugin+Descriptor

                                                                                                         8
Monday, June 14, 2010                                                                                    8
Little-Known Fact #3:
                        You don’t need to know Java to create a JAR file.




                                                                           9
Monday, June 14, 2010                                                      9
Use the plugin SDK

         ‣ First, create the plugin skeleton:
               • Run atlas-create-confluence-plugin and it will prompt for values

         ‣ Delete the src/main/java and src/test directories
         ‣ Put CSS, JS files in the src/main/resources directory
         ‣ Build a JAR with your files
               • Run atlas-package and it will build a new JAR file in the target/ directory



                                                                                              10
Monday, June 14, 2010                                                                          10
Plugin structure with no Java code


                          ‣ POM includes instructions for SDK
                          ‣ Plugin content is under src/main/resources/
                          ‣ Run atlas-package and the plugin JAR
                            appears in target/ directory




                                                                          11
Monday, June 14, 2010                                                     11
Great! Let’s see how it works…




                                                         12
Monday, June 14, 2010                                     12
Example: Link to your Company Intranet

                                          ‣ Adding a link to Confluence’s global Browse
                                            menu
                                             • Also works in other places
                                             • Also works in other Atlassian applications

                                          ‣ Done in only 2½ steps



                        http://confluence.atlassian.com/display/CONFDEV/Web+UI+Module

                                                                                            13
Monday, June 14, 2010                                                                        13
Step 1: Create a Web Item

         <web-item key="company-intranet" name="Company Intranet"
                   section="system.browse/global" weight="40">
             <label>My Company Intranet</label>
             <link>http://intranet.example.com/</link>
         </web-item>




                        http://confluence.atlassian.com/display/CONFDEV/Web+UI+Module



                                                                                       14
Monday, June 14, 2010                                                                   14
Step 2: Drop it in the XML template
         <atlassian-plugin key="com.example.plugins.sample"
                 name="My Sample Plugin" plugins-version="2">
             <plugin-info>
                 <version>1.0</version>
                 <vendor>My Company</vendor>
             </plugin-info>


                  <web-item key="company-intranet" name="Company Intranet"
                          section="system.browse/global" weight="40">
                      <label>My Company Intranet</label>
                      <link>http://intranet.example.com/</link>
                  </web-item>

         </atlassian-plugin>


                                                                             15
Monday, June 14, 2010                                                         15
Last Step: Upload it into Confluence




                                               16
Monday, June 14, 2010                           16
Result: Link to your Company Intranet



                           ‣ Holy smokes, that was easy!




                                                           17
Monday, June 14, 2010                                       17
Example: Project Status User Macro




                                              18
Monday, June 14, 2010                          18
Step 1: Create your User Macro
         <user-macro key="green" name="green" hasBody="false"
                 bodyType="raw" outputType="html">
             <template><![CDATA[
                 <span style="background: green; color: white;
                     padding: 4px 12px">GREEN</span>
             ]]></template>
         </user-macro>


         ‣ You might also want to create ones for {red} and {yellow}…

                        http://confluence.atlassian.com/display/CONFDEV/User+Macro+Module


                                                                                           19
Monday, June 14, 2010                                                                       19
Step 2: Drop it in the XML template
         <atlassian-plugin key="com.example.plugins.sample"
                 name="My Sample Plugin" plugins-version="2">
             <plugin-info>
                 <version>1.0</version>
                 <vendor>My Company</vendor>
             </plugin-info>


                  <user-macro key="green" name="green" hasBody="false"
                          bodyType="raw" outputType="html">
                      <template><![CDATA[
                          <span style="background: green; color: white;
                              padding: 4px 12px">GREEN</span>
                      ]]></template>
                  </user-macro>

         </atlassian-plugin>

                                                                          20
Monday, June 14, 2010                                                      20
Last Step: Upload it into Confluence




                                               21
Monday, June 14, 2010                           21
Result: Project Status User Macro




                                             22
Monday, June 14, 2010                         22
More examples




                        Devoxx Conference Twitter Ticker – JavaScript User Macro
                                                                                   23
Monday, June 14, 2010                                                               23
More examples




                        Atlassian’s Staff Directory – just HTML, CSS and JavaScript
                                                                                      24
Monday, June 14, 2010                                                                  24
Scripting support (alpha stage)

         ‣ Scripting Extender Plugin – Adds support for scripting languages in your plugin
         ‣ Groovy Plugins – Lightning talk coming up next…
         ‣ JavaScript Plugins – At prototype stage, might be bundled soon.
         ‣ Java 6 Scripting Engine – Can use this with some Java code.
         ‣ Area of interest for some Atlassian developers – 20% projects and labs
           work ongoing.


                                                                                             25
Monday, June 14, 2010                                                                         25
Thank you.




                                     26
Monday, June 14, 2010                 26

Más contenido relacionado

La actualidad más candente

Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulMert Çalışkan
 
Jdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent ProjectsJdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent ProjectsMert Çalışkan
 
Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Jacob Kaplan-Moss
 
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowRussell Maher
 
Java 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the GalleryJava 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the Gallerynjbartlett
 
Java SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introductionJava SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introductionStephen Colebourne
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and HowRussell Maher
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Introboyw165
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in JavaJavaDayUA
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9C4Media
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of JavaHeather VanCura
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projectsVincent Massol
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for DummiesTomer Gabel
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoojeresig
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Robert Scholte
 
XML and Web Services with Groovy
XML and Web Services with GroovyXML and Web Services with Groovy
XML and Web Services with GroovyPaul King
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 OverviewMike Ensor
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010JUG Lausanne
 

La actualidad más candente (20)

Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Jdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent ProjectsJdc 2010 - Maven, Intelligent Projects
Jdc 2010 - Maven, Intelligent Projects
 
Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011Writing great documentation - CodeConf 2011
Writing great documentation - CodeConf 2011
 
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
 
Java 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the GalleryJava 7 Modularity: a View from the Gallery
Java 7 Modularity: a View from the Gallery
 
Java SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introductionJava SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introduction
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and How
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
Maven
MavenMaven
Maven
 
Flavors of Concurrency in Java
Flavors of Concurrency in JavaFlavors of Concurrency in Java
Flavors of Concurrency in Java
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of Java
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projects
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for Dummies
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoo
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
XML and Web Services with Groovy
XML and Web Services with GroovyXML and Web Services with Groovy
XML and Web Services with Groovy
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 Overview
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
 

Destacado

Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Atlassian
 
JIRA Studio: Development in the Cloud - Atlassian Summit 2010
JIRA Studio: Development in the Cloud - Atlassian Summit 2010JIRA Studio: Development in the Cloud - Atlassian Summit 2010
JIRA Studio: Development in the Cloud - Atlassian Summit 2010Atlassian
 
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...Atlassian
 
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...Atlassian
 
Dev Tools State of the Union (Part I) - Atlassian Summit 2010
Dev Tools State of the Union (Part I) - Atlassian Summit 2010Dev Tools State of the Union (Part I) - Atlassian Summit 2010
Dev Tools State of the Union (Part I) - Atlassian Summit 2010Atlassian
 
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...Atlassian
 
Delivering World-Class Documentation and Support Through Confluence - Atlassi...
Delivering World-Class Documentation and Support Through Confluence - Atlassi...Delivering World-Class Documentation and Support Through Confluence - Atlassi...
Delivering World-Class Documentation and Support Through Confluence - Atlassi...Atlassian
 
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning TalksBuilding Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning TalksAtlassian
 
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...Atlassian
 
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 ...Atlassian
 
Kaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban StorywallsKaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban StorywallsCraig Smith
 
Mastering JIRA Workflow - Atlassian Summit 2010
Mastering JIRA Workflow - Atlassian Summit 2010Mastering JIRA Workflow - Atlassian Summit 2010
Mastering JIRA Workflow - Atlassian Summit 2010Atlassian
 
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchJIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchAtlassian
 
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingAnjali Rao
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To JiraHua Soon Sim
 

Destacado (17)

Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
 
JIRA Studio: Development in the Cloud - Atlassian Summit 2010
JIRA Studio: Development in the Cloud - Atlassian Summit 2010JIRA Studio: Development in the Cloud - Atlassian Summit 2010
JIRA Studio: Development in the Cloud - Atlassian Summit 2010
 
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...
The Information Radiator: Creating Awesome Wallboards - Atlassian Summit 2010...
 
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...
Labels Magic: Getting Labels to Work for Your Confluence Deployment - Atlassi...
 
Dev Tools State of the Union (Part I) - Atlassian Summit 2010
Dev Tools State of the Union (Part I) - Atlassian Summit 2010Dev Tools State of the Union (Part I) - Atlassian Summit 2010
Dev Tools State of the Union (Part I) - Atlassian Summit 2010
 
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...
Going Agile: Brought to You by the Public Broadcasting System - Atlassian Sum...
 
Jira 4 Demo
Jira 4 DemoJira 4 Demo
Jira 4 Demo
 
Delivering World-Class Documentation and Support Through Confluence - Atlassi...
Delivering World-Class Documentation and Support Through Confluence - Atlassi...Delivering World-Class Documentation and Support Through Confluence - Atlassi...
Delivering World-Class Documentation and Support Through Confluence - Atlassi...
 
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning TalksBuilding Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
Building Atlassian Plugins with Groovy - Atlassian Summit 2010 - Lightning Talks
 
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...
Auditing Your Build and Release Infrastructure - Atlassian Summit 2010 - Ligh...
 
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 ...
 
Kaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban StorywallsKaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban Storywalls
 
Mastering JIRA Workflow - Atlassian Summit 2010
Mastering JIRA Workflow - Atlassian Summit 2010Mastering JIRA Workflow - Atlassian Summit 2010
Mastering JIRA Workflow - Atlassian Summit 2010
 
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchJIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
 
Introducing JIRA AGILE
Introducing JIRA AGILEIntroducing JIRA AGILE
Introducing JIRA AGILE
 
Using JIRA Software for Issue Tracking
Using JIRA Software for Issue TrackingUsing JIRA Software for Issue Tracking
Using JIRA Software for Issue Tracking
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
 

Similar a 5 Thing You're Not Doing, 4 Things You Should Stop Doing & 3 Things You Should Keep Doing in Your Plugin - Atlassian Summit 2010 - Lightning Talks

Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5Tien Tran Le Duy
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4Kyle Ledbetter
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...IT Event
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overviewmrdon
 
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin DevelopmentAtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Developmentmrdon
 
Unlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationUnlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationJon Dean
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteeleT. Kim Nguyen
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comJeremy Thake
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads ConferenceIndicThreads
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentSimon Guest
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》Koubei Banquet
 

Similar a 5 Thing You're Not Doing, 4 Things You Should Stop Doing & 3 Things You Should Keep Doing in Your Plugin - Atlassian Summit 2010 - Lightning Talks (20)

Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4
 
GWT and PWA
GWT and PWAGWT and PWA
GWT and PWA
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overview
 
XPages Mobile, #dd13
XPages Mobile, #dd13XPages Mobile, #dd13
XPages Mobile, #dd13
 
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin DevelopmentAtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
 
Unlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationUnlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance Optimization
 
Gwt portlet
Gwt portletGwt portlet
Gwt portlet
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
 
Plone Futures
Plone FuturesPlone Futures
Plone Futures
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
4-identifying-problems.pdf
4-identifying-problems.pdf4-identifying-problems.pdf
4-identifying-problems.pdf
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
Banquet 42
Banquet 42Banquet 42
Banquet 42
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》
 
Kickstart sencha extjs
Kickstart sencha extjsKickstart sencha extjs
Kickstart sencha extjs
 

Más de Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
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 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
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 UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
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 ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
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 ModelAtlassian
 
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 SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
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 APIsAtlassian
 
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 PluginAtlassian
 
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 BuildingAtlassian
 
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 MatterAtlassian
 
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 MindAtlassian
 
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 TeamsAtlassian
 
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 TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

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

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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 slidevu2urc
 
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...Igalia
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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
 
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...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

5 Thing You're Not Doing, 4 Things You Should Stop Doing & 3 Things You Should Keep Doing in Your Plugin - Atlassian Summit 2010 - Lightning Talks

  • 1. Getting Started with Plugin Development Matt Ryall Confluence Technical Lead, Atlassian Atlassian Summit 2010 1 Monday, June 14, 2010 1
  • 2. Why have you never developed a plugin? ‣ Don’t know how ‣ Not a Java programmer ‣ Too hard ‣ Too much initial set-up ‣ Don’t know the product APIs 2 Monday, June 14, 2010 2
  • 3. Little-Known Fact #1: Plugins don’t need to be written in Java. 3 Monday, June 14, 2010 3
  • 4. Plugins types that don’t use Java ‣ Web Items – Add custom links to your application ‣ Web Panels – Add additional content on the page ‣ Web Resources – Restyle or customise the page with CSS and JavaScript ‣ External Gadget Providers or Gadget Plugins – Custom Google gadgets ‣ Confluence User Macros – Create simple Confluence macros 4 Monday, June 14, 2010 4
  • 5. Use web technologies instead ‣ HTML ‣ CSS ‣ JavaScript (with jQuery) 5 Monday, June 14, 2010 5
  • 6. Little-Known Fact #2: Plugins don’t need to be distributed in a JAR file. 6 Monday, June 14, 2010 6
  • 7. Upload plugins directly ‣ If there’s no other files, just upload the XML descriptor file. ‣ This works for: • Web Items • Web Panels • Web Resources (sometimes) • Confluence User Macros ‣ External Gadget Providers can be installed via URL 7 Monday, June 14, 2010 7
  • 8. XML file template <atlassian-plugin key="com.example.plugins.sample" name="My Sample Plugin" plugins-version="2"> <plugin-info> <version>1.0</version> <vendor>My Company</vendor> </plugin-info> ... your stuff goes here ... </atlassian-plugin> http://confluence.atlassian.com/display/CONFDEV/Creating+your+Plugin+Descriptor 8 Monday, June 14, 2010 8
  • 9. Little-Known Fact #3: You don’t need to know Java to create a JAR file. 9 Monday, June 14, 2010 9
  • 10. Use the plugin SDK ‣ First, create the plugin skeleton: • Run atlas-create-confluence-plugin and it will prompt for values ‣ Delete the src/main/java and src/test directories ‣ Put CSS, JS files in the src/main/resources directory ‣ Build a JAR with your files • Run atlas-package and it will build a new JAR file in the target/ directory 10 Monday, June 14, 2010 10
  • 11. Plugin structure with no Java code ‣ POM includes instructions for SDK ‣ Plugin content is under src/main/resources/ ‣ Run atlas-package and the plugin JAR appears in target/ directory 11 Monday, June 14, 2010 11
  • 12. Great! Let’s see how it works… 12 Monday, June 14, 2010 12
  • 13. Example: Link to your Company Intranet ‣ Adding a link to Confluence’s global Browse menu • Also works in other places • Also works in other Atlassian applications ‣ Done in only 2½ steps http://confluence.atlassian.com/display/CONFDEV/Web+UI+Module 13 Monday, June 14, 2010 13
  • 14. Step 1: Create a Web Item <web-item key="company-intranet" name="Company Intranet" section="system.browse/global" weight="40"> <label>My Company Intranet</label> <link>http://intranet.example.com/</link> </web-item> http://confluence.atlassian.com/display/CONFDEV/Web+UI+Module 14 Monday, June 14, 2010 14
  • 15. Step 2: Drop it in the XML template <atlassian-plugin key="com.example.plugins.sample" name="My Sample Plugin" plugins-version="2"> <plugin-info> <version>1.0</version> <vendor>My Company</vendor> </plugin-info> <web-item key="company-intranet" name="Company Intranet" section="system.browse/global" weight="40"> <label>My Company Intranet</label> <link>http://intranet.example.com/</link> </web-item> </atlassian-plugin> 15 Monday, June 14, 2010 15
  • 16. Last Step: Upload it into Confluence 16 Monday, June 14, 2010 16
  • 17. Result: Link to your Company Intranet ‣ Holy smokes, that was easy! 17 Monday, June 14, 2010 17
  • 18. Example: Project Status User Macro 18 Monday, June 14, 2010 18
  • 19. Step 1: Create your User Macro <user-macro key="green" name="green" hasBody="false" bodyType="raw" outputType="html"> <template><![CDATA[ <span style="background: green; color: white; padding: 4px 12px">GREEN</span> ]]></template> </user-macro> ‣ You might also want to create ones for {red} and {yellow}… http://confluence.atlassian.com/display/CONFDEV/User+Macro+Module 19 Monday, June 14, 2010 19
  • 20. Step 2: Drop it in the XML template <atlassian-plugin key="com.example.plugins.sample" name="My Sample Plugin" plugins-version="2"> <plugin-info> <version>1.0</version> <vendor>My Company</vendor> </plugin-info> <user-macro key="green" name="green" hasBody="false" bodyType="raw" outputType="html"> <template><![CDATA[ <span style="background: green; color: white; padding: 4px 12px">GREEN</span> ]]></template> </user-macro> </atlassian-plugin> 20 Monday, June 14, 2010 20
  • 21. Last Step: Upload it into Confluence 21 Monday, June 14, 2010 21
  • 22. Result: Project Status User Macro 22 Monday, June 14, 2010 22
  • 23. More examples Devoxx Conference Twitter Ticker – JavaScript User Macro 23 Monday, June 14, 2010 23
  • 24. More examples Atlassian’s Staff Directory – just HTML, CSS and JavaScript 24 Monday, June 14, 2010 24
  • 25. Scripting support (alpha stage) ‣ Scripting Extender Plugin – Adds support for scripting languages in your plugin ‣ Groovy Plugins – Lightning talk coming up next… ‣ JavaScript Plugins – At prototype stage, might be bundled soon. ‣ Java 6 Scripting Engine – Can use this with some Java code. ‣ Area of interest for some Atlassian developers – 20% projects and labs work ongoing. 25 Monday, June 14, 2010 25
  • 26. Thank you. 26 Monday, June 14, 2010 26