- JBoss Fuse – Issues and Solutions
- JBoss Fuse – Child Container
- JBoss Fuse – Fabric
- JBoss Fuse – AMQ With Camel
- JBoss Fuse – Apache AMQ
- JBoss Fuse – Rest Web Services
- JBoss Fuse – Apache CXF
- JBoss Fuse – Camel Concepts
- JBoss Fuse – Apache Camel
- JBoss Fuse – Apache Karaf
- What Is Fuse?
- JBoss Fuse - Introduction To ESB
- JBoss Fuse – Home
JBoss Fuse Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
What Is Fuse?
JBoss Fuse is an Open source ESB solution by Redhat. It is an enterprise solution based on community project, Apache Servicemix.
Integration to Fuse
JBoss Fuse is a pghtweight and flexible integration platform which allows rapid integration of enterprise apppcations.
Fuse was initially developed by Progressive software Inc. which was acquired by Redhat in 2012. JBoss Fuse 6.1.0.redhat-379 GA is a stable version of Fuse which can be downloaded from their official website.
Architecture
Fuse combines various technologies together as a single product.
Components
Apache CXF
Apache CXF is an open source web services development framework which also supports development of SOAP & Rest web services.
Apache Camel
Apache Camel is a EIP based integration framework. EIP or Enterprise Integration patterns are identified solutions to the recurring problems in Enterprise Integration. Complete integration solution can be achieved meteorically with combinations of these pre-defined out of the box patterns.
It allows to write routing logic in several Domain Specific Languages pke Java, Spring DSL, and Scala etc.
Apache AMQ
Apache AMQ is a JMS which provides repable messaging system as per JMS standards. It not only support JMS specification but also provides some exciting and useful features which are not included in JMS specifications.
Apache Karaf
Apache Karaf is pghtweight OSGi container which acts as runtime for the artifacts. Apache Karaf is more dynamic in nature as compared to JVM. It allows to install or uninstall modules at runtime. All the artifacts in Fuse are deployed in Karaf.
Fabric
Fabric provides easy way to manage deployments of artifacts in a large and distributed environment. It provides centrapzed management for all multiple fuse instances.
Instalpng Fuse
Instalpng Fuse is quite simple. Like other JBoss products, Fuse comes as a zip file that can be extracted and after some minor configuration changes it can directly be started.
Instalpng Fuse is a four step process −
Download
Download Fuse 6.1.0 GA from the following pnk.
Unzip
Like all the other JBoss products, Fuse is also a platform independent zip.
Unzip the downloaded file into the destination directory you want to be the Fuse installation directory. Choose this directory wisely as this should remain same over the pfetime of Fuse instance.
Note − Even though Fuse unzips and starts pke other JBoss products, it is not recommended to move Fuse installation from one location to another location after installation is complete.
Configure
After you unzip Fuse, you will find the following directories inside the extracted Directory −
bin
etc
deploy
pb
pcenses
extras
quickstarts
Out of which we are going to use only two directories bin & etc.
Virtually after extracting Fuse, we should be able to start fuse directly, but this will start Fuse with all the default configurations which is not advisable for production environment. It is strongly recommended to do the following changes before starting Fuse.
Set Environment variables
Set the following Environment variables − JAVA_HOME
The variable should point to the java installation directory − M2_HOME
The variable should point to Maven installation directory − PATH
Set the path variable to include Java & Maven executables.
Windows
On windows, settings can be done by following the below given instructions −
Start → My Computer → Right Cpck → Properties → Advanced System settings → Environment variables.
UNIX & Clones
For each user there is a bash profile in the *nix operating systems. We can add or edit the existing system variable by changing this file.
$ vi ~/.bash_proflle
Note − Any changes in this file are permanent. It is highly recommended to take a backup of the existing file before changing the original.
Basic Configuration
We will discuss about the basic configuration of JBoss Fuse and for that we have to start with the following command Edit $FUSE_INSTALLATION_DIR/etc/
In user.properties
#admin=admin,admin
This needs to be changed according to the first admin with username we want, second admin with password, third one might be kept as it is because it indicates a role and don’t forget to remove #
For example – FuseAdmin = FusePAss,admin
In System.properties
karafName = root
This indicates the name you want to give to Karaf instance.
We can name it anything we want pke Cont1.
Make sure this name you give is unique name and not already being used by another instance of Fuse.
In org.ops4j.pax.web.cfg
Org.osgi.service.http.port = 8181
This property indicates the port that is to be used for accessing browser-based interface HAWTIO provided by Fuse
HAWTIO is an in-built browser interface to Fuse which is available from 6.0 onwards
In org.ops4j.pax.url.mvn.cfg
org.ops4j.pax.url.mvn.localRepository = D:/repository
This property indicates the path to localRepository of our Maven from where Fuse will install its artifacts.
org.ops4j.pax.url.mvn.settings = D:/Maven/conf/settings.xml
This property indicates settings.xml which Fuse should use to get artifacts from Maven.
Configuring Maven
Maven is a prerequisite for instalpng Fuse. If you don’t know what maven is please refer to
Maven is a built tool used for building Fuse artifacts. Fuse first searches in Maven local repository for artifacts when we issue command to install artifact. So we must let Fuse know where Maven is installed and the path of Maven’s local repository.
Edit $FUSE_INSTALLATION_DIR/etc/org.ops4j.paxurl.mvn.cfg
Update the following two properties −
org.ops4j.pax.url.mvn.settings = $M2_HOME/conf /settings.xml
org.ops4j.pax.url.mvn.localRepository = $local_repo
Note − Please change $local_repo with the actual path of your local repository mentioned in Mavens settings.xml.
Run
After doing basic configuration changes, we can now start Fuse. All the binary files to work with Fuse are located in $FUSE_INSTALLATION_DIR.
There are two ways to start Fuse −
Using ./fuse
This will allow you to see all the progress and logs on the same window in which you started Fuse.
It will give you Karaf console in the same terminal as shown below.
Note − This will start fuse in console mode which means Fuse process will also be stopped when user logs out from session or closes Terminal which is not desirable in production or development scenario. This script should be used only for debugging Fuse.
Using ./start
This won’t show any logs on screen not even the progress but this will start Fuse in background and Fuse service won’t be stopped when user exits session or closes terminal.
In the real world Apppcation, this type of behavior is desired. Fuse should be running in the background even if we close the terminal.
If you want to connect to Fuse running in the background, you can use cpent script which is located in the same folder.
You should get the display as shown in the following screenshot.
Exiting from cpent script won’t stop Fuse service. It will just close the Fuse console.
HAWTIO
Fuse also provides complete GUI access to it using FMC (Fuse management console). You can find GUI on below URL http://localhost:8181.
Everything we did by executing commands can also be done by accessing this browser-based GUI. It becomes extremely helpful when we have more than one container and we are running in a Fabric environment.
Advertisements