Questions and Answers
Some documentation on how the KAR system works and how it interacts with other things and so on.
Questions and Answers:
Q: What is a KAR?
A: A KAR file is a jar file with a specifically formatted manifest file (see the KAR manifest specification page for details). KARs use manifest information to specify a unique ID and a file type for every file contained in the KAR. KARs depend on Modules because Modules contain the KAREntryHandlers that Kepler needs for properly opening/saving files from/to KAR files.Q: What is a Module?
A: A Module is a set of directories that conform to the Kepler Module directory architecture specification (TODO add link). The type of file is determined by the location of the file in the directory structure. See the build system pages for more info.Q: Can a KAR go in a Module?
A: Yes. KAR files can be placed in the /kar directory of a module (or any subdirectory of the /kar directory) and they will be available when Kepler is first run.
Q: Can a Module go in a KAR?
A: No. There currently is no KAREntryHandler to recognize and handle the opening of a jarred module that is contained in a KAR file.
Q: Can source code go in a KAR?
A: Currently there is no KAREntryHandler that deals with source code or class files that are contained within a KAR file. The preferred method is to include source code, compiled class files, and jar files in a Module and add a dependency to that module from the KAR file. Modules are specially suited to deal with source code, class files, and jar files.
Q: Can jar files go in a KAR?
A: Adding jar files in KAR files is not recommended, they should go in Modules.
Q: What format should a run archive take?
A: If there is no source code or jar files needed then they should go in KAR files.
Q: What can/should go in each type of file?
A: See below for a list of currently supported KAREntryHandlers.Q: How should projects that use Kepler make use of KARs and Modules?
A: You can store anything you like in a KAR. You just need to extend the KAREntryHandler Extension Point.Q: How does Kepler recognize files that are contained in KARs?
A: Kepler modules that are running in your suite may contain KAREntryHandlers that know how to open that type of file. If there is not a KAREntryHandler present that knows how to open a file contained in a KAR file then it will not be opened.
Q: Can I see some examples of different types of KARs?
A:
1) TODO
2) TODO
3) A KAR produced from the WRP suite, a "run-archive" or "publication-ready archive" KAR. This KAR contains information from a past execution(s), pulled out of provenance. For example, exporting one past run via the WRM currently yields: the workflow as it was when executed, a WorkflowRun metadata file, the Report Layout, and the Report. This type of KAR is still under construction.
META-INF/MANIFEST.MF
ROML.5.xml
RIO.5.pdf
RIO.5.xml
WorkflowRun.5.xml
00-StatisticalSummary.xml
00-StatisticalSummary_ROML.xml
Known Extensions of the KAREntryHandler Extension Point
Module |
KAREntryHandler | File Types Handled |
Comment |
|
---|---|---|---|---|
core |
ActorMetadataKAREntryHandler | ptolemy.kernel.ComponentEntity org.kepler.objectmanager.cache.ActorCacheObject ptolemy.actor.TypedAtomicActor ptolemy.actor.TypedCompositeActor ptolemy.kernel.CompositeEntity org.kepler.moml.CompositeClassEntity |
Handles ptolemy moml files. |
|
reporting | ReportLayoutKAREntryHandler | org.kepler.reporting.roml.ReportLayout org.kepler.reporting.rio.ReportInstance |
||
reporting | ReportInstanceKAREntryHandler | ???? | ||
workflow-run-manager | WorkflowRun | org.kepler.util.WorkflowRun | under construction |
|