OSGi bundles that contain common libraries for use by other
OSGi bundles must be updated in a specific order.
Before you begin
An updated CICS® bundle
that contains the new version of the OSGi bundle must be present in
zFS. If you manage common libraries in a separate CICS bundle, you can manage the lifecycle of
these libraries separately from the applications that depend on them.
About this task
Typically, an OSGi bundle specifies a range of supported
versions in a dependency on another OSGi bundle. Using a range provides
more flexibility to make compatible changes in the framework. When
you are updating bundles that contain common libraries, the version
number of the OSGi bundle increases. However, the running applications
are already using a version of the bundle that satisfies the dependencies.
To obtain the most recent version of the library, you must refresh
the OSGi bundles for the applications. It is therefore possible to
update specific applications to use different versions of the library,
and leave other applications to run on an older version.
When
you update an OSGi bundle that contains common libraries, you can
completely replace the CICS BUNDLE
resource. However, if classes are not loaded in the library, the dependent
bundles might receive errors. Alternatively, you can install a new
version of the library and run it in the framework alongside the original
version. If the OSGi bundles have different version numbers, the OSGi
framework can run both bundles concurrently.
Procedure
To replace an existing OSGi bundle in an OSGi JVM server:
- Define and install a CICS BUNDLE
resource that points to the new version of the CICS bundle, which contains the OSGi bundle
that defines the common libraries. CICS defines
the new version of the OSGi bundle in the OSGi framework. The existing
OSGi bundles continue to use the previous version of the library.
- Check the status of the OSGi bundles in the OSGi
Bundles view in CICS Explorer® (). The list shows
two entries for the same OSGi bundle symbolic name with different
versions that are running in the framework.
- To obtain the new version of the library in a dependent Java™ application, use one of the
following methods:
- Replace the CICS bundle
for the Java application.
- Disable and discard the CICS BUNDLE
resource for the Java application.
- Reinstall the CICS BUNDLE
resource for the Java application.
- Phase in a new version of the Java application.
- Ask the Java developer to
update the version information for the OSGi bundle. The new version
of the OSGi bundle must have a higher version specified in the OSGi
bundle manifest and be within the version range specified when the
OSGi bundle project was added to the CICS bundle.
Optionally, the new version of the OSGi bundle could also have its
dependencies modified to specifically require the new version of the
OSGi bundle that defines the common libraries.
- Copy the JAR for the new version of OSGi bundle to the root directory
of the CICS BUNDLE resource.
- In the view in CICS
Explorer, right-click the CICS bundle
that contains the OSGi bundle, click Phase In,
then click OK to phase in the new version of
the OSGi bundle.
When the OSGi bundle is loaded in the framework, it obtains
the latest version of the common libraries.
- Check the status of the CICS BUNDLE
resource in the Bundles view in CICS Explorer ().
Results
You have updated an OSGi bundle that contains common libraries
and updated a Java application
to use the latest version of the libraries.