Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The full list of properties is:

Property

Required?

What

Description

plugin.id

Y

Identifier

This is the unique identifier by which the plugin is described. It is used when manipulating the plugin (for instance doing an update).

NOTE
This file name and property name are purposely the same as required in the bootstrap location of the distribution. This enables one file to be used. See below.

plugin.version


two or three dot-separated numbers

This is current the version of the plugin. If configured correctly, the PropertyDrivenIdPPlugin class will use the version derived from the manifest of the containing jar to provide the version. This is a fallback if the manifest cannot be located.

plugin.license


location (in a jar file) of a text file

This is the (in jar) location of a file containing any licensing details. It is used only when the deployer requests it, and satisfies the spirit of providing the relevant licenses for a plugin.

     plugin.sh --license org.example.shibbolethplugin.ExamplePlugin

plugin.url.0
plugin.url.1
...

Y

URL

These are the URLs where the plugin compatibility property files (below) are located.  Multiple locations may be specified to allow for redundancy.

plugin.modules.required


Space-delimited list

The names of any modules which need to be enabled before the plugin installer will install this plugin. This is the only sense in which plugins may "depend" on other plugins; it's the module(s) exposed by those plugins that are identified as required.

Constructing the Implementation Project

In constructing the POM for the implementation project, you need to pay attention to three aspects: dependency management, dependency collection (for use in building the package) and managing the version. The Plugin Archetype may help.

...

One file may document multiple plugins and (of course) multiple versions of the plugin, so all property names are prefixed by the plugin ID and per-version properties are postfixed by the version.

...

The following properties should be provided:

Name

What

Description

PluginId.versions                

Space separated list of versions (three dot-separated numbers)

The versions of the plugin which are available. 

PluginId.downloadURL.<version>

A URL

The "directory" part of the the location of this version of this plugin.

PluginId.baseName.<version>

A file name

The "root" name of the four files which make up the plugin. The downloadURL is prepended and the four followig extension appended:

  1. .tar.gz

  2. .tar.gz.asc

  3. .zip

  4. .zip.asc

PluginId.idpVersionMax.<version>

An IdP version (three dot-separated numbers)

The first IdP version that this version of this plugin will not work with.
(exclusive)

PluginId.idpVersionMin.<version>

An IdP version (three dot-separated numbers)

The first IdP version that this version of this plugin will work with.
(inclusive)

PluginId.supportLevel.<version>

One of

  • Current

  • OutOfDate

  • Unsupported

  • Secadv

  • Withdrawn

A description of the current status of this version of this plugin.

The only semantic associated is that the plugin verb will only consider plugins with support level of Current for automatic update.

Wildcarding the Version

The dowloadURL and baseName for versions managed by a Nexus repository are usually predictable given the version number. Hence a simplified wildcarding is allowed for these two property classes.

...