Atlasskickin’ the Plugin SDK
devspeed




Jonathan Doklovic
Developer Relations, Atlassian


                                 2
It’s Been A While...
3.0 - Oct 2009   3.2.2   3.6.2
3.0.1            3.2.3   3.7
3.0.2            3.2.4   3.7.2
3.0.3            3.3     3.7.3
3.0.3.2          3.3.1   3.8
3.0.4
3.0.5
                 3.3.2
                 3.3.3
                         3.9
                         3.9.1
                                  4.0 - Sept 2012
3.0.6            3.3.4   3.9.2
3.1              3.4     3.9.3
3.1.1            3.5     3.10
3.1.2            3.5.1   3.10.1
3.1.3            3.5.2   3.10.2
3.2              3.6     3.10.3
3.2.1            3.6.1   3.10.4
                         3.11
                                                    3
If you were an SDK
• Help new devs get started quickly
• Be notified of updates
• Be easy to update
• Provide access to docs/information
• Have a quick dev cycle
• If testing doesn’t suck, they will write them


                                                  4
5
Zip files are not installers

• They don’t care about your OS
• They scoff at setting environment variables
• They eat symlinks for breakfast
• They tend to overstay their welcome
• They’re generally regarded as “simple folk”


                                                6
Native Installers




                    7
Native Installers




                    8
Native Installers
           • Sets ALTAS_HOME
           • Adds ATLAS_HOME to PATH
           • Sets JAVA_HOME
           • Sets M2_REPO
           • Uninstaller in Start Menu


                                         9
Native Installers




                    10
Native Installers
          • Installs in /usr/share/
            atlassian-plugin-sdk-${version}
          • Symlinks in /usr/local/bin
          • Plays nice with HomeBrew


  You must remove previous version from $PATH

                                                11
Native Installers


          • Download our .repo file to /etc/yumrepos.d
          • sudo yum install atlassian-plugin-sdk



  You must remove previous version from $PATH

                                                        12
Native Installers

        • Add sdkrepo.atlassian.com to apt sources
        • Import our public key
        • sudo apt-get install atlassian-plugin-sdk


  You must remove previous version from $PATH

                                                      13
What About Updates?




                      14
What About My POM?

 • SDK detects outdated sdk versions in
   pom.xml
 • Asks if you’d like your pom updated
 • Never be behind on SDK version again!




                                           15
Developer Toolbox




                    16
LiveReload




             17
TESTING



          18
TESTING - Housekeeping
• Updated Surefire
 • Mix JUnit 3 & 4 tests
• Added Failsafe
 • Integration Tests don’t abort
• Updated Cargo
 • Can now deploy to the ROOT context
 • DO NOT USE -Dmaven.test.skip
    • Use -DskipTests instead
                                        19
TESTING - New Func Tests
    Maven

     JUnit       The World of JIRA

    My Test




                                     20
TESTING - New Func Tests
    Maven

    JUnit        The World of JIRA


                      My Test




                                     20
TESTING




          21
What’s Next?
• SDK 4.1
 • Support for custom datasources




                   Really? That’s it?

                                        22
Stuff We’re Playing With


         MAVEN 3


                           23
Stuff We’re Playing With


         MAVEN 3


                           23
Stuff We’re Playing With
DOCCO




                           24
Stuff We’re Playing With
Java Configured Plugins
• Java class replaces atlassian-plugin.xml
• Every module type has a java builder
• Complete IDE code completion
• No XML Transformation == Faster Load Times!
• Stay in code, not in docs

                                                25
http://developer.atlassian.com

  http://sdkrepo.atlassian.com

http://marketplace.atlassian.com




                                   26
Thank you!

Atlaskickin' the Plugin SDK, AtlasCamp US 2012

  • 2.
    Atlasskickin’ the PluginSDK devspeed Jonathan Doklovic Developer Relations, Atlassian 2
  • 3.
    It’s Been AWhile... 3.0 - Oct 2009 3.2.2 3.6.2 3.0.1 3.2.3 3.7 3.0.2 3.2.4 3.7.2 3.0.3 3.3 3.7.3 3.0.3.2 3.3.1 3.8 3.0.4 3.0.5 3.3.2 3.3.3 3.9 3.9.1 4.0 - Sept 2012 3.0.6 3.3.4 3.9.2 3.1 3.4 3.9.3 3.1.1 3.5 3.10 3.1.2 3.5.1 3.10.1 3.1.3 3.5.2 3.10.2 3.2 3.6 3.10.3 3.2.1 3.6.1 3.10.4 3.11 3
  • 4.
    If you werean SDK • Help new devs get started quickly • Be notified of updates • Be easy to update • Provide access to docs/information • Have a quick dev cycle • If testing doesn’t suck, they will write them 4
  • 5.
  • 6.
    Zip files arenot installers • They don’t care about your OS • They scoff at setting environment variables • They eat symlinks for breakfast • They tend to overstay their welcome • They’re generally regarded as “simple folk” 6
  • 7.
  • 8.
  • 9.
    Native Installers • Sets ALTAS_HOME • Adds ATLAS_HOME to PATH • Sets JAVA_HOME • Sets M2_REPO • Uninstaller in Start Menu 9
  • 10.
  • 11.
    Native Installers • Installs in /usr/share/ atlassian-plugin-sdk-${version} • Symlinks in /usr/local/bin • Plays nice with HomeBrew You must remove previous version from $PATH 11
  • 12.
    Native Installers • Download our .repo file to /etc/yumrepos.d • sudo yum install atlassian-plugin-sdk You must remove previous version from $PATH 12
  • 13.
    Native Installers • Add sdkrepo.atlassian.com to apt sources • Import our public key • sudo apt-get install atlassian-plugin-sdk You must remove previous version from $PATH 13
  • 14.
  • 15.
    What About MyPOM? • SDK detects outdated sdk versions in pom.xml • Asks if you’d like your pom updated • Never be behind on SDK version again! 15
  • 16.
  • 17.
  • 18.
  • 19.
    TESTING - Housekeeping •Updated Surefire • Mix JUnit 3 & 4 tests • Added Failsafe • Integration Tests don’t abort • Updated Cargo • Can now deploy to the ROOT context • DO NOT USE -Dmaven.test.skip • Use -DskipTests instead 19
  • 20.
    TESTING - NewFunc Tests Maven JUnit The World of JIRA My Test 20
  • 21.
    TESTING - NewFunc Tests Maven JUnit The World of JIRA My Test 20
  • 22.
  • 23.
    What’s Next? • SDK4.1 • Support for custom datasources Really? That’s it? 22
  • 24.
    Stuff We’re PlayingWith MAVEN 3 23
  • 25.
    Stuff We’re PlayingWith MAVEN 3 23
  • 26.
    Stuff We’re PlayingWith DOCCO 24
  • 27.
    Stuff We’re PlayingWith Java Configured Plugins • Java class replaces atlassian-plugin.xml • Every module type has a java builder • Complete IDE code completion • No XML Transformation == Faster Load Times! • Stay in code, not in docs 25
  • 28.
  • 29.