Bamboo 2.2 : Bamboo Plugin Guide
This page last changed on Nov 10, 2008 by edwin@atlassian.com.
Bamboo Plugins OverviewA Bamboo plugin is a single JAR containing code, a plugin descriptor (XML) and usually some Freemarker template files to render HTML. The plugin descriptor is the only mandatory part of the plugin. It must be called atlassian-plugin.xml and be located in the root of your JAR file. Each plugin consists of one or more plugin modules. These are of different types (for example a report, or a post-build action) and each has an individual XML element describing it. Each module is described below together with the XML element required for it. Here is a sample of the descriptor with highlighted elements: <!-- the plugin key must be unique, think of it as the 'package' of the plugin --> <atlassian-plugin key="com.atlassian.plugin.sample" name="Sample Plugin"> <!-- a short block describing the plugin itself --> <plugin-info> <description>This is a brief textual description of the plugin</description> <!-- the version of the plugin --> <version>1.1</version> <!-- the versions of the application this plugin is for --> <application-version min="3.0" max="3.0"/> <!-- details of the plugin vendor --> <vendor name="Atlassian Software Systems Pty Ltd" url="http://www.atlassian.com"/> </plugin-info> . . . 1 or more plugin modules . . . </atlassian-plugin> Each plugin has a plugin key which is unique among all plugins (eg "com.atlassian.plugin.sample"). Semantically this equates to the package of a Java class. Each module within the plugin also has a module key which is unique within the plugin (eg "myreport"). Semantically this equates to the class name of a Java class. The plugin key + module key are combined to make the complete key of the plugin module (combining the examples above, the complete key would be "com.atlassian.plugin.sample:myreport"). Note: a : is used to separate the plugin key from the module key. How does the Bamboo plugin system work?Below is a diagram which shows Bamboo's build process flow, as well as the available plugin modules you can build. The following types of plugin modules are supported by Bamboo:
Setting up a Bamboo Plugin ProjectRefer to the Getting started with Atlassian plugins guide for information on how to set up a Bamboo plugin using the Atlassian Plugin Archetypes. You will require Maven 2 and JDK 5. If you have a Commercial License you can obtain the Bamboo Source code. Refer to the Building Bamboo from source page for more information on how set this up. Testing your Bamboo plugin.Plugins in Bamboo are not dynamically loadable. They must be installed in Bamboo's WEB-INF/lib and the application restarted. The Atlassian Plugin Maven Archetypes come with a profile called plugin-debug which makes testing your plugin easy. Running the command mvn -Pplugin-debug will compile your plugin's classes, create a jar in the /target directory, download a copy of the Bamboo war, copy the plugin jar into Bamboo's WEB-INF/lib directory and start up Bamboo. Maven will also install some default data such as the license and database configuration. Bamboo will be running at http://localhost:1990/bamboo, so you can go directly there in your browser and see your latest changes. You'll be able to log in with the username admin and the password admin. As you make changes, you'll have to kill the Bamboo process (ctrl-c) and then run mvn -Pplugin-debug again. When you run Bamboo with the plugin-debug profile, it is automatically configured to accept a remote debugger. So you'll want to create a remote debug target in your IDE for your plugin and/or the bamboo source. Deploy a Bamboo PluginInstalling plugins in Bamboo is easy. Once you have downloaded or created your plugin jar, follow these steps:
Built-in Bamboo system pluginsA number of functions and areas within Bamboo are shipped as built in plugins. These can also be useful for plugin developers who want to know more about how to create their own plugins, as they showcase the functionality that can be built. The system plugins are referenced from the following files (located in /WEB-INF/classes:
Further Information
|
![]() |
Document generated by Confluence on Mar 09, 2009 17:07 |