This page last changed on Oct 18, 2008 by smaddox.

Defining a Single Downloadable Resource

Downloadable resources are configured to map a name of some downloadable file to its location within the plugin jar-file.

<atlassian-plugin name='IM Presence Macros' key='confluence.extra.impresence'>
    <plugin-info>
        <description>Macros to show online status for popular Instant Messaging services.</description>
        <vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
        <version>0.1</version>
    </plugin-info>
    <macro name='aim' class='com.atlassian.confluence.extra.impresence.AIMPresenceMacro' key='aim'>
        <description>Displays an AIM status graphic.</description>
        <resource type="download" name="aimon.gif" location="templates/extra/impresence/aimon.gif">
            <param name="content-type" value="image/gif"/>
        </resource>
    </macro>

    <resource type="download" name="aimoff.gif" location="templates/extra/impresence/aimoff.gif"/>
</atlassian-plugin>
  • Resources can be downloaded either within a plugin module, or as a resource of the entire plugin.
    • Resources are always looked up relative to a plugin module (see below). If a resource can not be found in the plugin module, it will then be looked for in the plugin itself.
  • Each resource must be of type="download"
  • The name of the resource is how it will be referenced from within the application
  • The location of the resource is where it appears within the plugin itself
  • An optional content-type parameter can be used to supply the file's MIME type
    • In the absence of a content-type, the application will attempt to guess the file's type from its file extension. For common file extensions, an explicit content-type is not necessary.

Defining a Directory of Downloadable Resources

If your plugin requires a lot of resources, you may wish to expose a directory of files as resources, rather than writing definitions for each individual file.

<resource type="download" name="icons/" location="templates/extra/impresence/icons/"/>
  • The name and location must both have trailing slashes
  • Subdirectories are also exposed, so in the example above, icons/small/mail.gif will be mapped to the resource templates/extra/impresence/icons/small/mail.gif

Referring to Downloadable Resources

The URL for a downloadable resource is as follows:

{server root}/download/resources/{plugin key}:{module key}/{resource name}

For example:

http://confluence.example.com/download/resources/confluence.extra.impresence:aim/aimon.gif

In a velocity template, you should use the $req.contextPath property to ensure that your resources are always relative to the URL of the Confluence server:

$req.contextPath/download/resources/confluence.extra.impresence:aim/aimon.gif

Document generated by Confluence on Oct 06, 2009 00:25