Previous Topic: Create a Bundle ManifestNext Topic: Create the Folder Structure


Options in the Bundle Manifest
Manifest-Version

Specify the version of this manifest file.

Bundle-Name

Enter the display name of the connector.

This will be displayed in the User Console after the connector has been deployed to the connector server.

Bundle-SymbolicName

Enter a name that uniquely identifies the connector. Use the same name as the base package name of the connector.

The Connector Server uses this name.

Bundle-Description

Enter text that describes the connector. This will be displayed in the User Console after the connector server has been deployed.

Bundle-Vendor

Enter the name of the company supplying the connector.

Bundle-Version

Enter the version of the connector being deployed. If this is a new connector, use 0.0.0.

If a different bundle with the same symbolic name already exists, then the version numbers specified should be different.

If another connector uses resources from a particular version of this connector, the other connector can specify the correct version.

Require-Bundle

Leave the existing entry unchanged.

This contains a list of all of the Java packages that a bundle requires to run. If any of these packages cannot be found, then the bundle will fail to start.

If your bundle requires other bundles, add them to the existing entry, using a comma to separate entries.

Do not include a comma after the last item.

Import-Package

Include any Java packages that need to be imported by this OSGi bundle from other OSGi bundles.

Do not include a comma after the last item.

DynamicImport-Package

Leave this unchanged, unless the packages to be imported are to be specified.

Bundle-ManifestVersion

Leave this unchanged.

If this is removed then it will default to Version 1, which may not provide all the features required by the connector.

Bundle-Classpath

List all of the JARs that the connector uses, including the JAR that contains the connector classes. If a JAR is not in the root of the bundle, include the relative path.

Do not remove the ‘.’ entry. This loads classes from the root of the bundle.

Do not include a comma after the last item.

Example Bundle Manifest Files

The following examples show two ways of including Java packages.

Example: Manifest that specifies package imports

This manifest uses the Import-Package entry. This contains a list of all of the Java packages that a bundle requires to run. If any of these packages cannot be found, then the bundle will fail to start.

This is the preferred way to import packages.

Manifest-Version: 1.0
Bundle-Name: MySampleConnector
Bundle-SymbolicName: com.ca.my.sample.connector
Bundle-Description: A bundle that contains a sample Connector
Bundle-Vendor: CA
Bundle-Version: 1.0.0
Require-Bundle: jcs.server;bundle-version="1.0.0",
    org.eclipse.osgi
Import-Package: javax.activation,
    javax.naming.directory,
    javax.naming.event,
    javax.naming.ldap,
    javax.net.ssl,
    javax.security.auth,
    javax.security.auth.callback,
    javax.security.auth.login
Bundle-ManifestVersion: 2
Bundle-ClassPath: .,
    jcs-connector-xyz.jar

Example: Manifest that uses dynamic import

Using Dynamic Import reduces the performance of a connector.

Require-Bundle specifies the bundles that must be present for the connector to start. The connector will not try to start the bundle and resolve imports if the required bundles are not there. However, the connector may not actually need to import anything from the required bundles.

Manifest-Version: 1.0
Bundle-Name: MySampleConnector
Bundle-SymbolicName: com.ca.my.sample.connector
Bundle-Description: A bundle that contains a sample Connector
Bundle-Vendor: CA
Bundle-Version: 1.0.0
Require-Bundle: jcs.server;bundle-version="1.0.0", 
    org.eclipse.osgi
DynamicImport-Package: *
Bundle-ManifestVersion: 2
Bundle-ClassPath: .,
    jcs-connector-xyz.jar