## jarlib-manifest

### Description

Task to generate a manifest that declares all the dependencies in manifest. The dependencies are determined by looking in the specified path and searching for Extension / "Optional Package" specifications in the manifests of the jars.

Note that this task works with extensions as defined by the "Optional Package" specification. For more information about optional packages, see the document Optional Package Versioning in the documentation bundle for your Java Standard Edition package, in file `guide/extensions/versioning.html` or the online Extension and ExtensionSet documentation for further details.

### Parameters

Attribute | Description | Required
--- | --- | ---
destfile | The file to generate Manifest into | Yes

### Parameters specified as nested elements

#### extension

Extension the extension that this library implements.

#### depends

ExtensionSets containing all dependencies for jar.

#### options

ExtensionSets containing all optional dependencies for jar. (Optional dependencies will be used if present else they will be ignored)

### Examples

Basic Manifest generated for single Extension

    <extension id="e1"
               extensionName="MyExtensions"
               specificationVersion="1.0"
               specificationVendor="Peter Donald"
               implementationVendorID="vv"
               implementationVendor="Apache"
               implementationVersion="2.0"
               implementationURL="https://somewhere.com"/>

    <jarlib-manifest destfile="myManifest.txt">
        <extension refid="e1"/>
    </jarlib-manifest>

Search for extension in fileset: a large example with required and optional dependencies

    <extension id="e1"
               extensionName="MyExtensions"
               specificationVersion="1.0"
               specificationVendor="Peter Donald"
               implementationVendorID="vv"
               implementationVendor="Apache"
               implementationVersion="2.0"
               implementationURL="https://somewhere.com"/>

    <extensionSet id="option.ext">
        <libfileset dir="lib/option">
            <include name="**/*.jar"/>
        </libfileset>
    </extensionSet>

    <extensionSet id="depends.ext">
        <libfileset dir="lib/required">
            <include name="*.jar"/>
        </libfileset>
    </extensionSet>

    <jarlib-manifest destfile="myManifest.txt">
        <extension refid="e1"/>
        <depends refid="depends.ext"/>
        <options refid="option.ext"/>
    </jarlib-manifest>