layer cuts across the other layers. For a fuller discussion of OSG i security, see OSG i in
Action (Hall et al., Manning, 2011).
A number of OSG i frameworks are in wide use today. The most popular are Eclipse
Equinox, Apache Felix, Knopflerfish, and ProSyst. Equinox underpins the Eclipse IDE
and Rich Client Platform, whereas Felix is at the heart of the Apache Tomcat applica-
tion server. ProSyst is embedded in devices like routers and automotive GPS systems.
The OSGi console
The front-loading of dependency management in OSG i can take some getting used to.
“Why can't my bundle start?” is a common worry for the new OSG i developer—and
also for the experienced one. The most convenient way to control the lifecycle of a
bundle, inspect bundle states, and diagnose bundles that refuse to start is by using an
OSG i console. The OSG i console is also a good way of exploring an OSG i framework to
see what packages and services are available. An OSG i console is a fairly low-level tool,
particularly in an enterprise environment, and the command syntax of the textual
consoles can be intimidating. But a console can help debug OSG i issues, so it's worth
familiarizing yourself with one. Figure A.10 shows the Felix Gogo console, with the
minimal set of bundles for the Felix framework and the Gogo console itself. (The
Gogo console is an extension to the base Felix console, but one we recommend if
you're not using Equinox or a higher-level console like Karaf.)
OSG i consoles do vary depending on the framework implementation. Figure A.11
shows the Equinox console. A number of third-party consoles are available, some of
which have more inviting user interfaces. The essential capabilities are similar
Figure A.10 The Felix OSGi console, in a minimal Felix installation. Bundles may be queried, installed,
started, and stopped. Available bundles may be listed using the lb command.
Search WWH ::