Social Media

JBoss Fuse

JBoss Fuse is an open source Enterprise Service Bus(ESB) combine a number of technologies –

  • Apache Camel – Implementation of Hohpe and Woolf Enterprise Integration Patterns (EIPs)
  • Apache CXF – Faster development for SOAP, XML/HTTP and RESTful Web Services
  • Apache ActiveMQ – FUSE ESB messaging platform
  • Apache Karaf – Lightweight OSGI-based runtime container for managing applications
  • Fabric8 – Manage/Deploy applications from single location

Fuse Fabric technology layer supports the scalable deployment of JBoss Fuse containers across a network. It enables a variety of advanced features, such as remote installation and provisioning of containers; phased rollout of new versions of libraries and applications; load-balancing and failover of deployed endpoints.

Supported File Types

  • jar(Default) – Used for Fuse Application Bundles (FABs)
  • bundle – OSGi bundles. To use this packaging type, you must also configure the maven-bundle-plugin in the POM file.
  • war – For WAR files. To use this packaging type, you must also configure the maven-war-plugin in the POM file.
  • pom – When you build with this packaging type, the POM file itself gets installed into the local Maven repository. Used for Parent POM’s

Fuse Folder Structure


Deployment Metadata

Can provide deployment metadata either for an OSGi bundle (in bundle headers) or for a FAB.

POM file—which is normally embedded in any Maven-built JAR file—is the main source of deployment metadata for a FAB.

web.xml file is the standard descriptor for an application packaged as a Web ARchive(WAR).

Dependency Injection(DI)

Fuse supports two forms of dependency injection – spring and OSGI blueprint.xml

The approach to dependency injection is similar – but the key difference is that blueprint is tailored for OSGI, and can add dependencies through XML schema namespaces. While spring requires these to be added through maven-bundle-plugin.

The advice for using FUSE is to stick with blueprint as it is more closely bound to the OSGI container

Example Spring – resources/META-INF/spring/*.xml

Example Blueprint – OSGI-INF/blueprint/*.xml

Fuse Fabric

Fuse Fabric is the framework that supports the scalable deployment within Fuse Containers in a network environment. It includes services like remove installation, provisioning, load balancing and phased rollouts. At its core is the fabric registry(fabric database) which stores the information needed to manage/provision containers. A fabric allows a distributed network of containers to be managed across multiple hosts

Fabric server

Registry Service – replicable database & child containers

InstallDir/etc/ – Java system properties that affect installed bundles
InstallDir/etc/ – Java system properties that affect the Apache Karaf container


About the Author Martin Farrell

My name is Martin Farrell. I have almost 20 years Java experience. I specialize inthe Spring Framework and JEE. I’ve consulted to a range of businesses, and have provide Java and Spring mentoring and training. You can learn more at About or on my consultancy website Glendevon Software

follow me on:

Leave a Comment: