7.2 Creating a Manifest File

A manifest file contains plug-in configuration information such as the location of the plug-in install class. Every plug-in must contain a manifest file, named MANIFEST.MF, in a directory named META-INF. The format of the manifest file follows the JAR File Specification. A manifest file looks similar to the following:

 Manifest-Version: 2.7
 Implementation-Vendor: Novell, Inc.
 Module-ID: iPrintX
 Created-By: iPrint team
 Implementation-Title: iPrint Linux Management
 Implementation-Description: Allows management of iPrint services on Linux.
 Main-Class: com.novell.admin.iPrint.iPrintLinuxInstaller
 Min-iManager-Version: 2.7.0
 Max-iManager-Version: 2.8.0
 Implementation-Version: 2.7.0.20070625
 Supported-OS: NetWareServer;LinuxServer;WindowsServer;WindowsWorkstation;LinuxWorkstation
 

iManager reads the following entries in the MANIFEST.MF:

Table 7-2 MANIFEST.MF entries

Entry

Description

Module-ID

(Required) Specifies an identifier for the plug-in. All versions and releases of the plug-in should specify the same Module-ID, which iManager uses to determine if the plug-in replaces an existing plug-in. If Module-IDs differ, iManager does not replace the previously installed plug-in.

Use the following guidelines when creating a Module-ID:

  • Should be lower-case with no spaces.

  • Should identify the product to which the plug-in is related

  • Should not include version numbers

Implementation-Title

(Required) Specifies a brief (48 characters or less) plug-in description that displays in iManager’s plug-in list.

Use the following guidelines when creating an Implementation-Title:

  • Should be easily readable. Spaces are OK.

  • Should be descriptive enough so users know the product to which this plug-in belongs

  • Indicate if the plug-in is platform-specific

  • Do not include product version numbers

Implementation-Description

(Required) Provides a description of the plug-in. Use this entry to list any plug-in dependencies.

Implementation-Version

(Required) Specifies the plug-in version. The format is major.minor.revision.build, where major, minor, revision, and build are integers (up to 8 digits). For example, 4.1.0.20070926.

Higher version numbers should indicate more recent versions. The relative age of two plug-ins is determined by comparing the Implementation-Version entry of the manifest file using the following algorithm:

  1. If the integer value of major in one plug-in is greater than the integer value of major in the other, then the one with the greater major value is more recent. If they are equal, proceed to Step 2.

  2. If the integer value of minor in one plug-in is greater than the integer value of minor in the other, then the one with the greater minor value is more recent. If they are equal, proceed to Step 3.

  3. If the integer value of revision in one plug-in is greater than the integer value of revision in another, then the one with the greater revision value is more recent. If they are equal, the two plug-ins are the same version.

  4. If the integer value of build in one plug-in is greater than the integer value of build in another, then the one with the greater revision value is more recent. If they are equal, the two plug-ins are the same version.

When a user attempts to install a plug-in, iManager checks the version number of the currently installed plug-in. If the version of the plug-in being installed is equal to or greater than the version of the current plug-in, the plug-in is installed. If the plug-in version is smaller, the plug-in is not installed.

Min-iManager-Version

(Required) Specifies the minimum version of iManager required to run this plug-in.

Max-iManager-Version

(Optional) Specifies the maximum version of iManager required to run this plug-in.

Supported-OS

(Optional) Specifies a semi-colon-delimited list of operating systems on which this plug-in can install and run. Leave this list blank to install and run on all operating systems.

Main-Class

(Optional) A standard entry, used by Java, that specifies a class to run if the plug-in is run as a .jar file (executed in the following manner: java -jar module_name.npm). If the main class implements PortalModuleInstaller (and, optionally, PortalModuleUI), it is instantiated by the plug-in installation code and called at key points during installation so you can perform plug-in-specific operations.

For more information about plug-in installers, see Section 7.1.4, Plug-In Installers and Section 7.4, Creating a Plug-In Installer. Required for all plug-ins with installer classes.

RBS-DiaplayName

(Optional) Specifies a display name to show in the Configuration Wizard and iManager’s list of installed plug-ins. If multiple plug-ins have the same RBS-DisplayName, iManager installs them as a package.