Rate this page:
In this section, you learn about the relationship between an Atlassian application(s) and your plugin. You'll also learn about the environment your plugin runs in. You should have already created a plugin skeleton, imported your project into Eclipse, and made some class and modifications.
Atlassian uses Tomcat as a container. Tomcat runs and maintains an Atlassian application and its plugins. Atlassian modified Tomcat with enhancements to ensure your plugin and our applications run smoothly together. The following diagram depicts an application and a plugin running inside of Tomcat.
Apache Felix is an OSGi implementation which, together with the Spring Dynamic Module Facility, helps your plugin share resources with the Atlassian application. For example, these facilities eliminate redundant dependencies by allowing your plugin to use those already provided by the Atlassian application.
Operating within each Atlassian application is the Universal Plugin Manager (UPM). The UPM manages plugins installed in the Atlassian application. In this section of the tutorial, you'll run your plugin skeleton from JIRA. You'll build on the plugin skeleton to begin creating a fully-functional plugin.
A Maven file is essential to your project. Maven uses the file to determine how to build your project from the staging area. Here, you'll customize the section to make the add-on yours, and later you'll view these changes reflected in the UPM.
Replace the content in the tags with a different URL.
Here's an example:
1 2 3 4
<organization> <name>Awesomeness Inc</name> <url>http://www.awesomebreedsmoarawesome.com/</url> </organization>
Save and close the file.
If you made your changes in Eclipse, update your project with the changes.
$ atlas-mvn eclipse:eclipse
Click File > Refresh in Eclipse.
When you generated the plugin skeleton, you specified a RefApp plugin with your command . As mentioned, if your plugin works in RefApp, it'll work in any Atlassian application. Now you'll try out you plugin in a more feature-rich environment: JIRA. Here you'll verify that your changes are reflected in the UPM and that you can still access the servlet.
Clear the target from your project root.
Start JIRA 6.1.
$ atlas-run --product jira --version 6.1
Locate the URL to access JIRA locally.
Your terminal outputs messages to display the URL.
JIRA usually runs on port 2990, with a URL like localhost:2990/jira
1 2 3 4 5
[INFO] [talledLocalContainer] INFO: Server startup in 100371 ms [INFO] [talledLocalContainer] Tomcat 7.x started on port  [INFO] jira started successfully in 144s at http://localhost:2990/jira [INFO] Type Ctrl-D to shutdown gracefully [INFO] Type Ctrl-C to exit
Copy the URL and access it from your browser.
We recommend Google Chrome or Mozilla Firefox for this tutorial.
Atlassian includes several developer tools in its applications so you can develop and test add-ons. This section introduces you to these tools.
In your running instance of JIRA expand the arrow on the bottom of the page.
This arrow should be visible on any page as long as you're logged in.
Confirm the toolbar expands in the lower portion of your screen.Now you can learn what resources you have available, and why you might use them in your add-on development.
Type SAL (short for Shared Access Layer) into the search field.
The search field is located on the right side of the developer tool bar. Instant results appear the search box.
The SAL is an API for aiding cross-application plugin development. When developing for multiple Atlassian applications, SAL handles services like job scheduling or internationalization lookups.
Click FastDev. Choose this option from the button in the lower toolbar, or Scan and Reload from the Developer Toolbox button. A keyboard shortcut is SHIFT+F5.
Confirm no changes are found.
In future steps, you'll use this to reload your plugin after you change source code files.
You've built the foundation and learned core concepts to develop your plugin in the Atlassian system, and become acquainted with the Developer Toolbox. Now you'll add component modules.
Rate this page: