What do these OSGi commands really do?

Using Felix / Equinox, what to do under the hood?

osgi:install osgi:refresh osgi:resolve osgi:restart osgi:update 

Is there a state diagram or shorter documentation somewhere?

+7
source share
2 answers

The best documentation for this is the OSGi Core Specification . The section and page numbers below apply to version 4.3 (April 2011) of the specification.

osgi:install means installing a package from a file or stream, and it maps to the BundleContext.installBundle method in the API. See Section 4.4.3 on page 90.

osgi:refresh performs a “package update” operation, which allows you to re-export / import data after installing or updating a set of packages. For example, packages that are currently connected to a particular package exporter can be reinstalled on a newly installed package that exports the same package. See Section 7.6.1, page 148.

osgi:resolve is similar to an update, but it only connects packages that are currently in the INSTALLED state. That is, he will not reinstall existing wires belonging to the connections that are already in the RESOLVED sate.

osgi:restart stops and restarts a specific package. This does not update the package implementation; it just stops and starts. See Section 4.4.5 p. 91 and 4.4.7 p. 95.

osgi:update requests to update a single package (i.e. reboot from its original location). This may include stopping, re-enabling, and starting the package, depending on what state it was in before the update. See Section 4.4.9 on page 95.

The state diagram for all states of the OSGi bundle is given in section 4.4.2 (Figure 4.4) on page 90.

+16
source

For more information on what Felix shell commands do, you can just look at their source code: http://svn.apache.org/repos/asf/felix/trunk/shell/src/main/java/org/apache/felix / shell / impl / - most of them are short and simple.

+2
source

All Articles