2015-07-02

JBoss Fuse 6.2 released - guide how to quickly try it

At the Red Hat summit last week, it was announced that JBoss Fuse 6.2 was released.

I want to congratulate the fuse team for getting this release out. I know that they have been working very hard all this year to QA and ensure its passes the high barrier of quality expected from an enterprise product.

So with my Camel hat, its great to see a product that includes the very last Apache Camel 2.15.2 release and subscribers have enterprise support and maintenance of Camel for a very long time.

Jonathan Anstey, the great co-author of Camel in Action, wrote a blog post about the highlights of this release. You can find more details from his blog. The biggest highlight (I am biased) is of course the upgrade from Camel 2.12 to 2.15  ;)

The JBoss Fuse website has been updated with details about this new release, where you can also find the download and how to get started.

Now unfortunately as a personal taste of mine, they made the getting started guide longer and ... well to much JBoss tasty. Users do not need to start with a "complicated" install procedure of installing JBoss Eclipse tooling and then starting the Fuse server from an editor. 

Instead I suggest jump straight to install JBoss Fuse, which is a simple download and unzip, and run the script.

Okay so here is my alternative and simpler install procedure

1. Download JBoss Fuse 6.2.0.GA
2. Unzip the download, which you can do from the shell from linux/osx and using the file explorer for windows users etc.

    unzip jboss-fuse-full-6.2.0.redhat-133.zip

3. From the shell change directory to where you unzipped the download

    cd jboss-fuse-6.2.0.redhat-133/

4. Start JBoss Fuse

      bin/fuse

     and for windows

    bin/fuse.bat

5. Wait for Fuse to start and show the welcome screen

JBoss Fuse 6.2 - Welcome screen
6. Create the administrator user (only need once)

The first time the welcome screen is presented, it shows a message about an admin user has not been created.

No user found in etc/users.properties. Please use the 'esb:create-admin-user'
command to create one.

So to create such an user, you execute that command to type in the username and password of choice. For development and personal use, it may be a good idea to just use admin/admin as that is easy to remember.

JBossFuse:karaf@root> esb:create-admin-user
Please specify a user...
New user name: admin
Password for admin:
Verify password for admin:

7. Open the web console and login

Now that we have an administrator user which has permission for the web console, we can try that. So open a web browser with http://localhost:8181 and login with the user you just created.

The web console is based on the excellent hawtio, which offers a rich set of capabilities. On the screenshot we can access the server logs, or even the shell terminal, and whatnot.

Fuse web console showing the server logs

8. Lets build and install a Camel quickstart

Okay we love Camel so lets build an example and deploy it to JBoss Fuse. To do so open a shell and in the quickstarts directory a number of examples is shipped.

We will use camel-log as its a simple example that logs a message every 5th second. To build the example

     cd quickstarts/beginner/camel-log

And then run

    mvn clean install

Notice each quickstart has a readme file with full instructions how to build and install (install are 2 options as standalone or with using fuse fabric). Here we use standalone mode.

You will see something along the lines of this when running

davsclaus:/opt/jboss-fuse-6.2.0.redhat-133/quickstarts/beginner/camel-log/$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building JBoss Fuse Quickstart: camel-log 6.2.0.redhat-133
[INFO] ------------------------------------------------------------------------
...
[INFO] --- maven-bundle-plugin:2.3.7:install (default-install) @ beginner-camel-log ---
[INFO] Local OBR update disabled (enable with -DobrRepository)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------


If the build is a success, then we are ready to install it. We can do this from either the web console, or from the JBoss Fuse shell.

From the fuse shell type this a bit long command to install and start the example we just build

JBossFuse:karaf@root> osgi:install -s mvn:org.jboss.quickstarts.fuse/beginner-camel-log/6.2.0.redhat-133
Bundle ID: 265
JBossFuse:karaf@root>

And in the web console a Camel button will appear in the top, which allows you to see all the running Camel applications inside Fuse. 

Fuse web console showing all the Camel applications running inside with real time metrics

And if you click on the Logs button then you will see the camel application is logging a message every 5th second.

You can also see the logs from the fuse shell, if you type

      log:display

2015-07-02 10:07:15,441 | INFO  | #0 - timer://foo | log-route                        | ?                                   ? | 198 - org.apache.camel.camel-core - 2.15.1.redhat-620133 | >>> Hello from Fabric based Camel route! : root
2015-07-02 10:07:20,441 | INFO  | #0 - timer://foo | log-route                        | ?                                   ? | 198 - org.apache.camel.camel-core - 2.15.1.redhat-620133 | >>> Hello from Fabric based Camel route! : root

You can also tail the log from the shell (use ctrl + c to stop tail)

         log:tail


9. Where to go more

Okay that was just an alternative getting started guide to quickly try out the new JBoss Fuse 6.2 release. 

With this release there is also the JBoss Eclipse Tooling you can try. It has the impressive visual Camel debugger, and also the graphical Camel route editor. The Fuse Eclipse team has improve the tooling a lot, and continues to do so. I have previously blogged a little bit about that. To install this tooling then follow the step 1 on the official JBoss Fuse getting started guide.



19 comments:

Rick said...

Great, simple intro. Thanks!

Reynaldo Pérez Sánchez said...

Great description, thanks!.

Best regards,

Unknown said...

Hi Claus.

Thanks for the information.

Installing Fuse was pretty straightforward and the web hawtio looks great.

However there seem to be major issues with the camel-logs build. Firstly it trying to download loads of different packages which takes quit a while. Finally it failed with:

Failed to execute goal org.commonjava.maven.plugins:project-sources-maven-plugin:0.3:archive (project-sources-archive) on project beginner-camel-log: Failed to create assembly: Error creating assembly archive project-sources: Problem creating TAR: /opt/jboss-fuse-6.2.0.redhat-133/quickstarts/beginner/camel-log/target/shared-project-sources.tar.gz (No such file or directory) ->

Not sure where to proceed from here..

Steve Howard said...

No love for me...

JBossFuse:karaf@root> osgi:install -s mvn:org.jboss.quickstarts.fuse/beginner-camel-log/6.2.0.redhat-133
Bundle IDs:
Error executing command: Error installing bundles:
Unable to install bundle mvn:org.jboss.quickstarts.fuse/beginner-camel-log/6.2.0.redhat-133
JBossFuse:karaf@root>

Claus Ibsen said...

Steve, you can see in the log if there is any error about what went wrong. You can run the log:display command, or find the log file in the data/logs directory of the JBoss Fuse installation.

Scott Lovenberg said...

Hey, I just wanted to say a huge "thanks"! Your post is the first documentation that I've seen thus far that isn't outright incorrect or wants to make an admin out of this developer to test out something; I've spent the weekend trying to get the right blend of versions (I actually need to rev AMQ to .12 for the .ToD dynamic route ability, but how hard could that be? It's only a dot release! ;) ) of things to do a simple proof of concept and I had given up on quick starts after one downloaded about 50 projects to my Eclipse folder after saying it would grab "a couple" and Red Hat's own documentation, followed to the letter where possible for lack of broken links and non-EOLed components, produced a non-bootable WildFly install. Kudos!

Reynaldo Pérez Sánchez said...

Hi, Claus, after playing with Apache Camel for some time (following your book), I ended installing and using the new JBoss Fuse, now I see that I followed the steps you describe here and it was pretty straightforward. The examples in the quickstart are very useful and the hawtio console offers a lot of possibilities. We are preparing some PoC to demonstrate the strength and capabilities of this new release in our case. Best Regards.

Claus Ibsen said...

Scott,

The new toD functionality is part of Apache Camel 2.16 onwards, and the current release of JBoss Fuse 6.2.0, and 6.2.1 is including Camel 2.15, and therefore you cannot use this.

JBoss Fuse is a commercial product and it is a bit behind the latest bleeding edge release of Camel in the upstream community. The idea is that upstream is released first where any bugs and so on is tested there first, so the enterprise product is using the stable and hardened release of Camel.

The next release of JBoss Fuse (whether its going to be 6.3.0 or 7.0) will upgrade to a newer Camel release at that time. Whether that is Camel 2.16 or 2.17 etc.

As a JBoss Fuse user, you should use the product as-is and with the versions of Camel that it ships. Any bugs and updates you can get from the Red Hat customer portal to download patches to fix any bugs and security issues etc. That is the enterprise stable product.

For your other issue with a non bootable widlfly, then I suggest to use the customer portal or the jboss fuse user forum to ask for help.

In terms of better documentation of JBoss Fuse then its something I have fought internally at Red Hat. But because its a product then such actions is done by other people, and business unit and product managers and whatnot. As a developer its much easier to work in the upstream community where we the developers how has a passion can have an influence and work on the documentation and website. I blogged a bit about that: http://www.davsclaus.com/2015/12/jboss-fuse-621-released-how-to-quickly.html

That said the Apache Camel website could surely use a revamp and new structure of the documentation. That is something we are aware of, and will work towards in the coming year/years. I blogged recently a bit about that: http://www.davsclaus.com/2015/12/my-thoughts-on-buying-professional.html

Claus Ibsen said...

Hi Reynoldo

Good to hear the guide on the blog was a help to get you going. Good luck with the POC.

Stu's Blog said...

completely agree with your post @ https://planet.jboss.org/post/jboss_fuse_6_2_1_released_how_to_quickly_try_it Claus. Any guide which forces you to install eclipse leaves me with a bad taste in my mouth. Not to say eclipse isn't good - but it's all about choice isn't it?

imran raza khan said...
This comment has been removed by the author.
imran raza khan said...

Hi,

I deployed as per above instruction on opening web console I am unable to see camel TAB link. Top navigation bar like below

ActiveMQ Connect Dashboard

Please support

Regards

Claus Ibsen said...

Imran,

Please use the JBoss Fuse user forum for getting help with JBoss Fuse
https://developer.jboss.org/en/products/fuse

And check the logs if you can find any errors. And make sure you really installed a Camel example. The web console does not show Camel unless Camel application has been installed and running. So it sound like either you did not install a Camel application or the installation failed for some reason, see the logs.

Roger said...

Hi Claus, I love working with both camel and fuse. I believe camel is a great project that has made integrations very easy. The only complaint I have with later versions of Fuse is the insistence on using blueprint based routes as they work quiet nicely with an OSGi container. I had to cross a lot of hurdles to get a spring oriented fuse fabric profile with configuration pids running in fabric. I cannot test the route locally in the jboss fuse use as it need the 'OSGi Configuration Admin Services' and the closest thing to that is a pojosr which only works with blueprint. So I have to keep deploying my app to the fabric everytime I need to test a piece of developed functionality.
Regards,
Roger

Claus Ibsen said...

Roger

Yeah using spring xml is not the best choice in OSGi due spring-dm being old and not in use anymore. And the blueprint xml is 98% identical but its when as you say start to use some osgi pieces in that xml you may get too dependent on osgi and then unit testing is harder.

There is work on a camel-test-karaf module that can help with this
https://github.com/apache/camel/tree/master/components/camel-test-karaf

It will boot up a karaf container and run your test. Its slower than camel-test-blueprint but it tests it in a real osgi environment. That module will be in Camel 2.18 onwards.

Deep said...

Super

santanu kumar Mohanty said...

Hi Claus,
I am new to Jboss fuse. I went through several tutorials regarding fuse. JBoss Fuse combines several technologies like Apache Camel, Apache CXF, Apache ActiveMQ, Apache Karaf and Fabric8 in a single integrated distribution.

I have downloaded the installer from jboss site and installed in to jboss-EAP 6.4 . I checked the standalone.xml and didnt find any configuration regarding Apache ActiveMQ, Apache Karaf and Fabric8. My doubt is without these configurations
1)How fuse will support messaging service and osgi ?
2)Can we integrate fuse with wildfly ? If yes how?
3) I am trying to integrate fuse with jboss server as osgi.
Please guide me.

santanu kumar Mohanty said...

Hi Claus,
I am new to Jboss fuse. I went through several tutorials regarding fuse. JBoss Fuse combines several technologies like Apache Camel, Apache CXF, Apache ActiveMQ, Apache Karaf and Fabric8 in a single integrated distribution.

I have downloaded the installer from jboss site and installed in to jboss-EAP 6.4 . I checked the standalone.xml and didnt find any configuration regarding Apache ActiveMQ, Apache Karaf and Fabric8. My doubt is without these configurations
1)How fuse will support messaging service and osgi ?
2)Can we integrate fuse with wildfly ? If yes how?
3) I am trying to integrate fuse with jboss server as osgi.
Please guide me.

Ian Kelly said...

Hi Claus,

I'm fighting on the Fuse corner at the moment and the 1 question that keeps being fired back from my colleagues is 'what benefits does Fuse have being deployed within an OSGI container' - We all know the marketing lines around OSGI but in your experience, when have you saw that Fuse being deployed as an OSGI platform actually helped clients/customers/problems etc - not a criticism but am generally interested in real world scenarios to when this has help you 'in the field' so to speak?

Regards,

Ian.