Table of Contents
The OSGi plugin provides a factory method to create an
        OsgiManifest object. OsgiManifest extends
        Manifest. To learn more
        about generic manifest handling, see Section 47.15.1, “Manifest”. If the Java plugins is applied, the OSGi plugin
        replaces the manifest object of the default jar with an OsgiManifest object. The replaced manifest
        is merged into the new one.
    
The OSGi plugin makes heavy use of Peter Kriens BND tool.
To use the OSGi plugin, include the following in your build script:
The OSGi plugin adds the following convention object: OsgiPluginConvention
        
The OSGi plugin adds the following methods. For more details, see the API documentation of the convention object.
Table 65.1. OSGi methods
| Method | Return Type | Description | 
| osgiManifest() | OsgiManifest | Returns an OsgiManifest object. | 
| osgiManifest(Closure cl) | OsgiManifest | Returns an OsgiManifest object configured by the closure. | 
The classes in the classes dir are analyzed regarding their package dependencies and the packages they expose.
                Based on this the Import-Package and the Export-Package values of the
                OSGi Manifest are calculated. If the classpath contains jars with an OSGi bundle, the bundle
                information is used to specify version information for the Import-Package
                value. Beside the explicit properties of the OsgiManifest object you can add instructions.
            
Example 65.2. Configuration of OSGi MANIFEST.MF file
build.gradle
jar {
    manifest { // the manifest of the default jar is of type OsgiManifest
        name = 'overwrittenSpecialOsgiName'
        instruction 'Private-Package',
                'org.mycomp.package1',
                'org.mycomp.package2'
        instruction 'Bundle-Vendor', 'MyCompany'
        instruction 'Bundle-Description', 'Platform2: Metrics 2 Measures Framework'
        instruction 'Bundle-DocURL', 'http://www.mycompany.com'
    }
}
task fooJar(type: Jar) {
    manifest = osgiManifest {
        instruction 'Bundle-Vendor', 'MyCompany'    
    }
}
The first argument of the instruction call is the key of the property. The other arguments form the value. To learn more about the available instructions have a look at the BND tool.