KAR Manifest Specification
This page describes the KAR Manifest and includes information on usage.
Introduction
A KAR file is a JAR file with a specific set of attributes in its manifest file. Because of this a KAR file requires there be a MANIFEST.MF file in the META-INF directory of the KAR file. A KAR Manifest file has two parts, the Main Attributes and the Entry Attributes. There is one set of Main Attributes for the entire KAR file and one set of Entry Attributes for each file contained in the KAR. An attribute contains a name (followed by a colon and a space) and then the value like this:
Attribute: value
KAR 2.0 Main Attributes
Manifest-Version
Manifest-Version is a required main attribute and should have a value of 1.4.2
KAR-Version
KAR-Version is a required main attribute and should have a value of either 1.0 or 2.0
lsid
lsid is a required main attribute and should contain a Kepler LSID value of the form explained in the KeplerLSID specification
module-dependencies
module-dependencies is an optional main attribute. The value is a semicolon separated list of module names that must be present in order to load this KAR file. The syntax is equivalent to the dependsOnModule entry attribute below. And this field is usually used as an aggregate of all dependencies found in the dependsOnModule entry attributes of the kar file.
openable
openable is an optional main attribute. If set to "false" then the KAR file is understood to not be openable. i.e. performing an open function on the KAR file itself will not do anything. This is useful for KAR files that contain many "openable" objects.
KAR 2.0 Entry Attributes
Name
Name is a required entry attribute and contains the name of the file
lsid
lsid is a required entry attribute and should contain a Kepler LSID value of the form explained in the KeplerLSID specification
type
type is a required entry attribute. The value should be the full binary class name of the object contained by the file. For example, a moml file that describes a ptolemy.kernel.ComponentEntity should have a type of ptolemy.kernel.ComponentEntity
handler
handler is a required entry attribute. The value should be the full binary class name of the KAREntryHandler that was used to write the file into the KAR. An entry cannot be opened if the KAREntryHandler used to create it is not present in the set of modules that are being used during Kepler runtime.
dependsOn
dependsOn is an optional entry attribute. The value is a colon separated list of Kepler LSIDs on which this entry depends. By specifying dependencies on other LSIDs this entry will only be loaded if objects containing the LSIDs in this list are already loaded into Kepler (or contained within the same KAR as this entry)
dependsOnModule
dependsOnModule is an optional entry attribute. The value is a semicolon separated list of module names that must be present in order to load this entry. For example if an entry has the following attribute/value pair
dependsOnModule: core,provenance
then the core module and the provenance module must be present in the set of modules currently running in Kepler in order for the entry to be loaded into Kepler.
Example Manifests
The manifest of the Display actor that comes with Kepler
Manifest-Version: 1.4.2 KAR-Version: 2.0 lsid: urn:lsid:kepler-project.org:kar:74:1 Name: Display.xml lsid: urn:lsid:kepler-project.org:actor:7:1 type: ptolemy.kernel.ComponentEntity handler: org.kepler.kar.handlers.ActorMetadataKAREntryHandler
A manifest that contains a report for a workflow
Manifest-Version: 1.4.2 KAR-Version: 2.0 lsid: urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:812:728:1 module-dependencies: provenance;core;reporting Name: TestWorkflow.xml lsid: urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:812:726:2 type: ptolemy.actor.TypedCompositeActor handler: org.kepler.kar.handlers.ActorMetadataKAREntryHandler dependsOn: dependsOnModule: provenance;core Name: TestWorkflow_ROML.xml lsid: urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:812:727:1 type: org.kepler.reporting.roml.ReportLayout handler: org.kepler.kar.handlers.ReportLayoutKAREntryHandler dependsOn: urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:812:726:2 dependsOnModule: core;reporting