Creating your own server add-on
to customise Confluence or JIRA
MEL PAISLEY | DEVELOPER SUPPORT | ATLASSIAN | @MELISSAJPAISLEY
I wish Confluence or JIRA
would do ….
MELISSA PAISLEY
The Atlassian P2 ecosystem lets you do this
What is P2?
The Atlassian Plugin Framework 2 is a
set of components for the Atlassian
Platform that allows you to build
plugins that extend the functionality
of Atlassian Server applications.
Building for Server - the Good
Customers
Server products have a large
established customer base.
Access
Atlassian JAVA API’s give
much less restricted access
to JIRA / Confluence.
Building for Server - the Bad
Environment(s)
There are multiple
supported platforms for
JIRA and Confluence server.
Access
Having all this extra access
can be a problem.
Agenda
Technologies
APIs
Demo
Technologies
What makes a Confluence or JIRA server add-on?
What is a server add-on?
An Atlassian server add-on is an OSGi
bundle JAR with some extras.
Tomcat web Apps
Confluence and JIRA server
are tomcat web applications
How do server add-ons work?
Felix OSGi container
Within the web application is
a Felix OSGi container
OSGi Bundle
The plugin JAR is a specially
modified OSGi bundle
Sayoko Shimoyama, CC2.0 flickr.com
The Atlassian SDK
Along with AMPS the Atlassian SDK
will help you generate a plugin
skeleton and get JIRA or Confluence
running to test it.
Know your
tools
Atlassian SDK
Spring Scanner
Quickreload
Creating your Plugin
atlas-create-jira-plugin
Create a jira plugin skeleton
atlas-create-jira-plugin-module
Add a plugin module to an existing jira plugin
Testing your plugin in product
atlas-run
Run from plugin source directory
atlas-run-standalone
Does not need a plugin to run
Packaging your plugin
atlas-mvn package
compile and package your code
Build your Plugin
Generate a plugin skeleton
for JIRA or Confluence
Test your Plugin
Start a temporary JIRA or
Confluence instance with
your plugin installed
The Plugin SDK lets you
Spring Scanner
Spring Scanner works with AMPS to
make plugins faster to load and easier
to easier to develop.
https
Know your
tools
Atlassian SDK
Spring Scanner
Quickreload
Plugin Transformation with Spring Scanner
Scanning
The source code
is scanned for
special
annotations
Storage
The information
from the
annotations is
stored in a set of
index files
Runtime
At runtime the
index files are
read and
interpreted
accordingly
Quickreload
Scans for changes to plugin jar files
and automatically reloads when it
detects a change.
Know your
tools
Atlassian SDK
Spring Scanner
Quickreload
Agenda
Technologies
APIs
Demo
APIs
Rest and Java APIs for building Add-ons
Remote Access Point
Product REST APIs provide an access point for
developing remote applications
Change Tolerant
Product REST APIs provide better change-
tolerance than JAVA APIs
JIRA and
Confluence
REST APIs
Remote Access Point
Product REST APIs provide an access point for
developing remote applications
Change Tolerant
Product REST APIs provide better change-
tolerance than JAVA APIs
JIRA and
Confluence
REST APIs
RESOURCES
API Browser
The REST API browser is
available within your JIRA and
Confluence development
environments.
API Doc
The REST API is also
documented at
docs.atlassian.com.
RESOURCES
API Browser
The REST API browser is
available within your JIRA and
Confluence development
environments.
API Doc
The REST API is also
documented at
docs.atlassian.com.
Mutable
Parts of the Java API may change even in bug-
fix releases. In addition, the Java API does not
always have in-depth documentation as certain
features may not be considered public.
Powerful
The Java API provides fast response times,
allows you to access more than is available in
the REST APIs
JIRA and
Confluence
Java APIs
With great power comes
great responsibility.
BEN PARKER, SPIDERMAN
Mutable
Parts of the Java API may change even in bug-
fix releases. In addition, the Java API does not
always have in-depth documentation as certain
features may not be considered public.
Powerful
The Java API provides fast response times, and
allows you access to almost everything.
JIRA and
Confluence
Java APIs
RESOURCES
Java Doc
The Java Documentation is
available for both Confluence
and JIRA
docs.atlassian.com
Developer Docs
https://
developer.atlassian.com
Community Forums
https://
developer.atlassian.com/
community
More Learning Resources
Agenda
Technologies
APIs
Demo
Demo
http://go.atlassian.com/holabarcelona
Part 1
Generating the Plugin skeleton using the Atlassian SDK
Part 2
Adding a REST resource
Part 3
Use the REST point by displaying it in the UI
Agenda
Technologies
APIs
Demo
Agenda
Technologies
APIs
Demo
Agenda
Technologies
APIs
Demo
Thank you!
MELISSA PAISLEY | DEVELOPER SUPPORT | ATLASSIAN | @MELISSAJPAISLEY

Creating Your Own Server Add-on that Customizes Confluence or JIRA