Chapter 5. Introduction to OSGi
5.1. Red Hat JBoss Fuse
- Technology layer—includes technologies such as JAX-WS, JAX-RS, JMS, Spring, and JEE
- the section called “Red Hat JBoss Fuse” —a wrapper layer around the OSGi container implementation, which provides support for deploying the OSGi container as a runtime server. Runtime features provided by the JBoss Fuse include hot deployment, management, and administration features.
- OSGi framework —implements OSGi functionality, including managing dependencies and bundle lifecycles
Red Hat JBoss Fuse
Figure 5.1. Red Hat JBoss Fuse Architecture
- Console— an extensible Gogo console manages services, installs and manages applications and libraries, and interacts with the JBoss Fuse runtime. It provides console commands to administer instances of JBoss Fuse. See the "Console Reference".
- Logging—a powerful, unified logging subsystem provides console commands to display, view and change log levels. See "Configuring and Running JBoss Fuse".
- Deployment—supports both manual deployment of OSGi bundles using the
osgi:startcommands and hot deployment of applications. When a JAR file, WAR file, or OSGi bundle is copied into the hot deployment folder InstallDir
/deploy, it's automatically installed on-the-fly inside the Red Hat JBoss Fuse runtime. When you update or delete these files or bundles, the changes are made automatically. See Section 7.1, “Hot Deployment”.
- Provisioning—provides multiple mechanisms for installing applications and libraries. See Chapter 8, Deploying Features.
- Configuration—the properties files stored in the InstallDir
/etcfolder are continuously monitored, and changes to them are automatically propagated to the relevant services at configurable intervals.
- Spring DM—simplifies building Spring applications that run in an OSGi framework. When a Spring configuration file is copied to the hot deployment folder, Red Hat JBoss Fuse generates and OSGi bundle on-the-fly and instantiates the Spring application context.
- Blueprint—is essentially a standardized version of Spring DM. It is a dependency injection framework that simplifies interaction with the OSGi container—for example, providing standard XML elements to import and export OSGi services.