Personal tools
You are here: Home Developer Infrastructure Teams Architecture Kepler Archive (KAR) KAR Manifest Specification

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

 

Document Actions