When you submit your app for approval to list on the Marketplace, you provide a JAR file that contains your code and visual assets. The Marketplace parses your JAR, verifying it contains required metadata for approving and listing your app. This file is also used by the Universal Plugin Manager (UPM) to ensure your app is compatible with Atlassian host products like Jira or Confluence.
This page describes key metadata properties and files used by UPM and the Marketplace.
| File | Purpose | Assets described or defined |
|---|---|---|
Descriptor file
| Describes your app and marketing material to Atlassian host products and UPM. Reference SDK documentation or read more below. |
|
Visual marketing descriptor
| Describes visual marketing assets to the Atlassian Marketplace. This file is only used for Atlassian Marketplace listings. Read more below. |
|
pom.xml
| Defines app dependencies. Reference SDK documentation or read more below. |
|
JAR Manifest
| Read more below. |
|
Your JAR submission should include the project object model file pom.xml, the atlassian-plugin.xml file to describe dependencies, and a atlassian-plugin-marketing.xml file, all in addition to the JAR manifest. When you use the SDK atlas-create* commands, you supply the command with parameter values, and the generator populates corresponding parameters in the pom.xml. The atlassian-plugin.xml descriptor file references these values, and the atlassian-plugin-marketing.xml describes your visual marketing assets to the Marketplace. The JAR manifest file contains properties key to your submission.
As you write your code, you can edit the metadata in these files either manually or through the SDK generations tools. Values you specify include:
When you use the SDK to generate your project JAR, the generator creates a version of the descriptor file that is read by Atlassian systems. The generated JAR also gets a manifest with some key properties.
When you list an app with the Atlassian Marketplace, the Marketplace submission form asks you to enter many of the same values again. The submission form also asks you for a deployable JAR. Both the Marketplace and UPM use a combination of your submission values and your metadata files to display your listing to your customers. To give your customers a consistent experience with your listing in the Marketplace and UPM, make sure the values you provide in your metadata files and your submission are the same.
The pom.xml file contains several parameters that describe your app. The SDK's code generation commands populate these parameters or you can edit them manually. The atlassian-plugin.xml file references these parameters. The pom.xml values that identify your app and organization appear at the top of the POM:
1 2<modelVersion>4.0.0</modelVersion> <groupId>com.example.plugins.tutorial</groupId> <artifactId>tutorial-plugin-marketing</artifactId> <version>1.0-SNAPSHOT</version> <organization> <name>Example Company</name> <url>http://www.example.com/</url> </organization> <name>tutorial-plugin-marketing</name> <description>This is the com.example.plugins.tutorial:tutorial-plugin-marketing plugin for Atlassian Jira.</description> <packaging>atlassian-plugin</packaging>
Field
Description
groupIdThis is typically a identifier that is unique to an organization or project. It may or may not use a dot format, such as
com.atlassian.plugins.tutorial.
artifactIdA descriptive identifier for your app. Together with the
groupId, this value forms your app key.
versionThe version of your app. This can be no more than 5 numbers. The version number must match what you specify on the Marketplace submission form.
organization.nameThe
nameis the name of your organization as it appears in the Atlassian Marketplace.
organization.urlThe
urlis the your organization website location.
nameYour app name. Your app name should be 40 characters or less, and must not contain any of the following words or names:
- Atlassian
- plugin
- plug-in
- add-on
- addon
- free
- paid
- your vendor name
descriptionA short description of your app.
The fields that identify which product versions your app supports are near the bottom in the
propertiesstanza:1 2<properties> <amps.version>3.7.2</amps.version> <confluence.data.version>3.5</confluence.data.version> <confluence.version>4.0</confluence.version> </properties>In this example, the
confluence.versionvalue marked as compatible with the appropriate product version, i.e. the product versions in which UPM can manage your app.atlassian-plugin.xml descriptor file
Describes a app and the modules contained within it. More complex apps have complex descriptor files. There are specific attributes and
paramelements contained in the descriptor file that are important to your submission. You can use theseparamelements to define your marketing assets. You can also useparamelements to define additional configuration or support pages in your app. The following example shows how to do this:1 2<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2"> <plugin-info> <description>${project.description}</description> <version>${project.version}</version> <vendor name="${project.organization.name}" url="${project.organization.url}" /> <param name="plugin-icon">images/pluginIcon.jpg</param> <param name="plugin-logo">images/pluginLogo.jpg</param> <param name="plugin-banner">images/pluginBanner.jpg</param> <param name="vendor-icon">images/vendorIcon.jpg</param> <param name="vendor-logo">images/vendorLogo.jpg</param> </plugin-info> ... </atlassian-plugin>The following table lists important metadata attributes or elements in this file:
Attribute/element
Description
keyReferences and concatenates of the
groupIdandartifactIdfrom thepom.xml.
nameReferences the app
namefrom thepom.xml.
descriptionReferences the
descriptionfrom thepom.xml.
versionReferences the
versionfrom thepom.xml.
vendor.nameReferences the
organization.namefrom thepom.xml.
vendor.urlReferences the
organization.urlfrom thepom.xml.The following table lists marketing-related
paramelements for your file:
Parameter Name
Dimensions
Description
vendor-icon16x16px PNG/JPG/GIF (Animated GIFs are not allowed.) Specifies a smaller version of your vendor logo. This appears in the sidebar and top-ranked lists. If your logo does not scale down well, you may create an additional thumbnail image.
vendor-logo72x72px PNG/JPG/GIF (Animated GIFs are not allowed.) Specifies a large, clear, front-facing image. The logo appears on the app detail page and potentially in our featured tab. The logo should be relevant to your vendor name.
plugin-logo144 x 144px PNG/JPG Specifies a large, clear, front-facing logo. This logo appears on the app detail page and potentially on our featured tab. We strongly recommend a chiclet-style background for the logo (check out this free Photoshop template), as this will work best with upcoming changes to the user interfaces of UPM and the Atlassian Marketplace.
plugin-banner1120 x 548px PNG/JPG for high-resolution images or 560 x 274px PNG/JPG for standard images Specifies a catchy but relevant app banner, complete with a brief marketing message outlining what your app does, attractive visuals, and the full name of your company and app. If your app has a high number of downloads, this banner may be displayed on the Atlassian Marketplace homepage in the future. Do not include temporary promotion offers here.
Provide these marketing assets as
resourceswithin your code. For example, for aplugin-iconpath ofimages/pluginIcon.gif, you place your image within in thesrc/main/resources/images/pluginIcon.giffolder.The following table lists url-related
paramelements for your file:
Parameter Name
Description
configure.urlSpecify internal links within the app that allow users to configure options for the app. Supported by all types of apps.
post.install.urlSpecifies a page that appears after app installation finishes. This can be identical to the
configure.urlparameter or not. For example, this page can contain getting started information for your app. Support only for Marketplace paid apps.
post.update.urlSpecifies a page that appears after an app update finishes. For example, you could use this page to deliver "What's New in this Version" information to a customer. Support only for Marketplace paid apps.
If you supply one of the URL
paramelements, keep in mind the URL represents a servlet or action module defined in your app code. The URL value is the module's location relative to the host product's base URL. For example, if your configuration options are edited through a servlet in Jira, your specify a URL relative to a base URL similar to thishttp://myhost.local:2990/jira/plugins/servlet.A app can have both a
post.install.urland apost.update.url. UPM displays thepost.install.urlwhen the app is first installed. Thepost.update.urlonly appears when the app is updated. UPM only uses these parameters if the user installed the app using the Free Trial or Buy Now buttons or updated it using the Update button. If a customer downloads an app JAR and uses the Upload Plugin installation technique, UPM ignores these parameters.UPM always uses the
configure.urlparameter regardless of how a user installs an app.post URL Parameter Support in UPM
The
post.install.urlandpost.update.urlrequire UPM 2.3 or higher. If an app defines these URLs but is installed or updated within a UPM 2.2 instance or earlier, they are ignored.atlassian-plugin-marketing.xml file
This file is used only for marketing resources on Atlassian Marketplace listings. You can create this file under
src/main/resourcesin your app JAR to reference visual assets used on the Atlassian Marketplace. This file should reference images in animagesdirectory for your app JAR, like the following:1 2<atlassian-plugin-marketing> <!--Describe names and versions of compatible products --> <compatibility> <product name="jira" min="4.0" max="4.4.1"/> <product name="bamboo" min="3.0" max="3.1"/> </compatibility> <!-- Describe your app logo and banner. The banner is only displayed in the UPM. --> <logo image="images/01_logo.jpg"/> <banner image="images/02_banner.jpg"/> <!-- Describe highlight and cropped highlight image assets, in order. --> <highlights> <highlight image="images/03_highlight1_ss.jpg" cropped="images/04_highlight1_cropped.jpg"/> <highlight image="images/05_highlight2_ss.jpg" cropped="images/06_highlight2_cropped.jpg"/> <highlight image="images/07_highlight3_ss.jpg" cropped="images/08_highlight3_cropped.jpg"/> </highlights> <!-- Describe additional screenshots you'd like listed on your app listing. --> <screenshots> <screenshot image="images/09_addl_ss1.jpg"/> <screenshot image="images/10_addl_ss2.jpg"/> <screenshot image="images/11_addl_ss3.jpg"/> </screenshots> </atlassian-plugin-marketing>When you upload your app for approval, the Marketplace parses this file for assets to display on your app details page. The below assets can be packaged in your JAR. To view complete branding assets required, see Build your presence on Marketplace.
Parameter Name
Dimensions Description
plugin-logo144 x 144px PNG/JPG Specifies a large, clear, front-facing logo. This logo appears on the app detail page and potentially on our featured tab. We strongly recommend a chiclet-style background for the logo (check out this free Photoshop template), as this will work best with upcoming changes to the user interfaces of UPM and the Atlassian Marketplace.
plugin-banner1120 x 548px PNG/JPG for high-resolution images or 560 x 274px PNG/JPG for standard images Specifies a catchy but relevant app banner, complete with a brief marketing message outlining what your app does, attractive visuals, and the full name of your company and app. If your app has a high number of downloads, this banner may be displayed on the Atlassian Marketplace homepage in the future. Please do not include temporary promotion offers here.
compatibilitySpecifies the product name, minimum and maximum product compatibilities. highlights1840 x 900px PNG/JPG or 920 x 450px PNG/JPG for standard images
580 x 330px PNG/JPG (cropped)
Specify each highlight with references to screenshots and cropped versions of each. List these references in order - the first listed will correspond to the first highlight.
screenshots1840 x 900px PNG/JPG or 920 x 450px PNG/JPG for standard images
Specify up to five additional screenshots.
JAR manifest
Except in advanced situations, you should not need to edit or alter the
META-INF/MANIFEST.MFfile within your JAR. The Atlassian Plugin SDK generates the minimum necessary information in the manifest for you. If you do edit the manifest for any reason, be aware that it contains OSGI instructions that are necessary for proper functioning within the plugin framework; see OSGi, Spring and the Plugin Framework.Finally, the SDK commands generate an Atlassian-specific property in the JAR manifest--the
Atlassian-Build-Dateproperty. This is the date that the JAR was built, and it has a format ofyyyy-MM-ddTHH:mm:ssZ. The following example illustrates a generated manifest with this property:1 2Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: manthony Build-Jdk: 1.6.0_31 Atlassian-Build-Date: 2012-05-08T17:01:14-0700If your app uses the Atlassian licensing API, make sure you do not remove the
Atlassian-Build-Dateproperty. The licensing system uses the property to determine whether a new version of an app is too new to be supported by an existing license. If you find that this property is not appearing in your manifest, you may be using an obsolete version of the Atlassian SDK.Rate this page: