Note: FuseSource is now a part of Red Hat, and all content is now available on redhat.com. No more changes will be made to fusesource.com moving forward. Please visit redhat.com for the following information:
|
- Login |
- Register |
- Buy Now |
- Download |
- RedHat.com |
- CamelOne 2013
What the FuseSource team is saying
-
Introducing the new Apache Camel based iPaaS
I just got back from CamelOne 2013 which was the 3rd annual Camel conference.
At the conference, James Strachan, introduced the new open source Apache Camel based iPaaS at the ending keynote on the first day.
You can find more details from James blog where he put out this information with the slides and a cool 20 minute video demonstrating the iPaaS in action. Its all a single page HTML5 web console, using the awesome hawio project.
In the video you will also see cool stuff such as the new Camel visual debugger, where you can set breakpoints, and single step the message in the routes etc.
And we also reveal for the first time the new web UI for log analytics (insight search). So you easily search in the logs from all the containers, and correlate the log messages, and have all that visualized with timeline, graphs etc.
I guess a few screenshot is worth a 1000 words in this case.
Lets start with the new insight plugin in action ...
Fabric Insight in action -
Live log analytics using Kibana web UI, to aggregate and visualize
log from all your containers. Notice the Camel tab with first class
Camel integration.
And the debugger in action ...
Camel debugger in action -
Live debugging of Camel routes, set breakpoint, single step, see
message details. And as well edit the message on the fly (to be
added)
And we also got time to add a new Camel route creator / editor that is purely web based ...
Camel route designer - A
full Camel editor in the web console with wizards, making it easier
for casual Camel developers to use. Though the video shows all this
in action, and there is a funky theme song to go along. The
selection of the song was done after careful consideration in the
bar, after a long day at CamelOne ;)
To see the video I suggest to click this link to get to James blog, or use this link for the direct link to Vimeo where the video is hosted.
On James blog you will also find instructions how to run this from the source code and try this on your own.
Fuse Fabric and hawtio are both 100% open source projects, with the ASL 2.0 license, and their source code hosted on github. We love contributions andcollaboration. So feel free to fork and send pull requests. And if you send too many, then you can become a member of these projects, and commit directly ;)
-
Change is Funny
<html><body>
I changed jobs about two months ago. My prior gig was like eating ramen noodles. You survive, but have heartburn, a headache, and lethargy. In trying to identify the issue I kept coming back to the crazy way they did things. The processes were painfully rediculous and there was no will to change them. There was also the crazy need to build all the tools in house.
The funny thing is that my new gig, which is like a breath of fresh air, has all of the same problems. The current processes are, if anything, more crazy. The tools also built entirely in house.
The biggest difference is that I believe in the new company. The entire company is focused on building the best quality product possible. They believe in investing where it is needed. They take the long view on product planning. It feels good to believe.
At my previous company, didn't believe. I felt like a cog in a machine that was finly tuned to poop out good enough product as efficiently as possible. It wasn't a good feeling. When I feel like I could work at 1/2 speed and still be overachieving, I check out.
So I checked out.
</body></html>
-
introducing the Apache Camel based open source iPaaS
I've had a blast at CamelOne and Red Hat Summit in Boston; thanks for all the great speakers and feedback!
I demo'd our new Apache Camel based iPaaS (i.e. our Camel Cloud or Fuse integration appliance). Here's a quick demo video of what I presented at my CamelOne keynote along with the slides.
If you don't mind working on the bleeding edge here are the instructions for building and running it, though we'll have the public stable early access release soon.
<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" mozallowfullscreen="" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/22918475" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" webkitallowfullscreen="" width="427"> </iframe>
CamelOne Keynote: introducing the Apache Camel based open source iPaaS from strachaj
<iframe src="http://player.vimeo.com/video/68442425" width="427" height="281" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>Camel in the cloud demo from CamelOne 2013 from JBoss Developer on Vimeo.
-
Successful CamelOne 2013!
Thanks to all that came out to Camel One in Boston this year!
I had a great time, my presentation went well, and there were some other great talks!
I believe the organizers of Camel One will be publishing all of the presentations at some point, but if youre interested in the slides from my talk ActiveMQ Internals, please find them at my slideshare account.
-
Apache.NMS.ActiveMQ v1.6.0 Released
After almost a year since the last release the Apache.NMS.ActiveMQ 1.6.0 Release bundle is now available. We spent a lot of time on this release adding in new features and fixing bugs. You'll find many features added that were previously only available in the Java client such as optimized acknowledge and priority backups for the Failover Transport.
New in this release:
* Adds support for non-blocking redelivery.
* Supports priority backups for Failover transport.
* Supports an Optimized Ack mode for MessageConsumers.
* Adds Message Audits to prevent duplicate deliveries on Failover.
* Implements the ISession Recover method.
* Adds support for purging locally created temp destinations.
* Properly handles cluster client re-balancing in Failover Transport.
* Plus a lot more fixes and stability improvements.
This release is based on the Apache.NMS API v1.6.0 and runs on .NET frameworks 2.0+ and Mono 2.0+.
The binaries and source bundles for the Release Candidate can be found here:
The list of issues resolved is here:
There are release binaries and debug binaries (with PDBs) provided. The binary ZIP files include pre-built assemblies for all of the platforms that are supported. -
See you soon at CamelOne 2013
So CamelOne 2013 is starting on sunday evening with a reception with drinks and beers. What a great way to start. You can find details when and where at the agenda from the website. So make sure to attend on sunday evening if you can.

The conference then follows on monday and tuesday. The full agenda is up on the website at
This is the 3rd annual CamelOne conference, which is focused on the Apache integration projects such as Apache Camel, ActiveMQ, ServiceMix, Karaf and CXF. The speakers at the conference includes the founders of these projects, leaders, committers, long term end users, book authors, and as well end users who are using these projects in their companies.
We have a mix of speakers who are the people who hack on the projects all day long, and as well people who have used these projects in large projects at their companies. So you get information from both sides of the fence.
Rob Davies have blogged about what to look forward to at the conference. And as well giving a teaser for his talk about connecting applications everywhere with ActiveMQ.
Christian Posta who has dived deep into the internal of ActiveMQ is giving a talk about ... well the internals of ActiveMQ.
I will give a getting started with Apache Camel presentation, which is aimed for beginners or new users of Camel. And on the 2nd day I give a rundown of the common Camel components, and as well how to build your custom components. Both my talks is a mix with slides and practical live coding sessions.
I am much lookingforwardto James Strachan's ending keynote on the first day about using the hawtio web console with Apache Camel. There is gonna be some cool stuff revealed for the first time :)
-
Connecting Applications Everywhere with ActiveMQ
This year at CamelOne there's going to be some exceptional presentations, but I'm also presenting "Connecting Applications Everywhere with ActiveMQ".
The focus of this presentation is to demonstrate the many protocol options and deployment scenarios that are available to Apache ActiveMQ. After an introduction to the Apache ActiveMQ project, and presenting why the "Internet of Things"is going to be driving the agenda for integration and messaging over the next 5 years, I'll be demonstrating an example application, going from an Arduino Microprocessor using MQTT to a MQTT/AMQP ActiveMQ gateway and to an ActiveMQ broker that will service HTML clients over WebSockets - something like this:

With so many linked components in a live demo - what could go wrong ? ;)
I'm hoping to catch up with lots of folks at CamelOne - if you haven't registered, its not too late! -
New ActiveMQ Book just released!

I recently had the pleasure of reviewing Tim Bishs new book Instant Apache ActiveMQ Messaging: Application Development How-To and wanted to share some thoughts. If youre new to messaging, new to ActiveMQ, or just want a quick, no-nonsense introduction to get up and running with ActiveMQ, then you gotta check out this book. Its a short read (70 pages or so), but it walks you through the details you need to know, explains things that otherwise might be glossed over but are important, and achieves its goal of a quick-start book.
The book starts off with installing ActiveMQ, going through the startup/stopping scripts, and shows how to change configurations. Next, you get into building applications with the JMS API, using queues and topics, request-response patterns, scheduled message delivery, monitoring, testing with embedded brokers, connection pooling, virtual topics, and more! All along, you get to see how and why each functionality works, what to watch out for, and more detail.
Theres a lot packed into this book. I recommend it. You can get it in e-book and paperback.
If you read it, let me know what you think!
-
Win A Free Copy of Packt's Instant Apache ActiveMQ Messaging Application Development How-to!!
<style type="text/css">H1 { margin-bottom: 0.08in; direction: ltr; color: rgb(0, 0, 0); }H1.western { font-family: "Times New Roman",serif; }H1.cjk { font-family: "Lucida Sans Unicode",sans-serif; font-size: 24pt; }H1.ctl { font-family: "Tahoma",sans-serif; font-size: 24pt; }P { margin-bottom: 0.08in; direction: ltr; color: rgb(0, 0, 0); }P.western { font-family: "Times New Roman",serif; font-size: 12pt; }P.cjk { font-family: "Lucida Sans Unicode",sans-serif; font-size: 12pt; }P.ctl { font-family: "Times New Roman",serif; font-size: 12pt; }A.cjk:visited { }A.western:link { }A.ctl:link { }</style>
I am pleased to announce that I have teamed up with Packt Publishingand we are organizing a giveaway especially for you. All you need to do is just comment below the post and win a free e-copy ofInstant Apache ActiveMQ Messaging Application Development How-to. Two lucky winners stand a chance to win an e-copy of the book. Keep reading to find out how you can be one of the Lucky One.

Overview of Instant Apache ActiveMQ Messaging Application Development How-to- Learn something new in an Instant! A short, fast, focused guide delivering immediate results.
- Learn how to use the JMS API
- Explore advanced messaging features in ActiveMQ
- Useful information on common pitfalls new developers often encounter
How to Enter?Simply post your expectations from this book in comments section below. You could be one of the 2 lucky participants to win the copy.
DeadLine:The contest will close on 06/14/2013 . Winners will be contacted by email, so be sure to use your real email address when you comment! -
Long stacktraces in Apache Camel no more
In the upcoming Apache Camel 2.12 we have improved the internal routing engine to dramatically reduce the stacktraces, our end users will see when an exception occurred and was logged.
During the development of the improvement we had a small sample route for benchmarking.
It was basically a simple route with:
from("seda:start")
.to("log:foo")
.to("log:bar")
.to("log:baz")
.process(new Processor ...);
And in the processor we forced an exception being logged. In Apache Camel 2.11.x the stacktrace would be around 40 lines. The Camel team managed to reduce this down to 15 lines. And the bottom 6 lines is 3 from the JVM and 3 from the seda consumer. So in between the routing engine is executing; and that's where we have optimized the code. So we went from (40-6 = 34) to (15-6 = 9). Eg before we had 34 lines during the routing, and that is down to 9 now.
Camel is still executing the same functionality. As an end user there is no functionality turned off or missing now. Its all still there and being executed; just in a different way. What we did was refactor most of the internal cross cutting functionality into a single entity CamelInternalProcessor (name subject for change), and fold that into a single stack-frame being executed.
This improvement is internal changes only, and all end users Camel application is upgrade compatible.
For our end users who have been debugging the Camel source code, this is now also simpler, as we added code comments in the CamelInternalProcessor with pointers how to do this easier, and which part you can safely skip over, to make your debugging experience easier and faster.
And speaking of debugger. Then we also added a new BacklogDebugger, which is a Camel routing debugger JMX MBean which is ready to use for tooling and end users. For example you can use it easily set breakpoints, single step a message in the routes, and edit/view its message content. Now for the graphical UI, then James Strachan is hacking on hawtio to add this in the upcoming hawtio 1.2 release. And since its JMX based you can always use it from a JMX console such as JConsole or JVisualVM. And for the brave a plugin to Eclipse / IDEA could be developed to integrate it with their native debugger; but thats a big task to take on. For further details and background on the stacktrace improvement then you can take a look at the ticket CAMEL-6077 and our discussion on the Camel developer mailing list. As well we have a sample of the before and after stacktraces in the CAMEL-6077 ticket.
-
New ActiveMQ Book Published.
Recently finished work on a new book for the beginning ActiveMQ user, "Instant Apache ActiveMQ Messaging Application Development How-to" published by Packt Publishing. The book is a fast paced walk through as the basic skills needed to work with Apache ActiveMQ. At 78 pages its a quick read and provides some helpful tips for some of the most common questions asked by those new to working with ActiveMQ.

Some things that are covered in this book.- Install and run an ActiveMQ Broker
- Set up a basic application developer environment for ActiveMQ using Apache Maven
- Write basic JMS applications using topics and queue to broadcast events
- Perform Request and Response style operations over JMS
- Write applications that embed ActiveMQ brokers directly into their own JVM
- Utilize ActiveMQ's fault tolerant features to develop robust client applications
- How to delay message sending using ActiveMQ's built in scheduler
The book is available in eBook form from Packt or you can also order a paperback copy on Amazon.
-
I've got a Byline
Despite being a full time writer, it has been a long time since I've had my own byline. The latest issue of Adoptive Families has a story I wrote in it. The story is just a little, personal reflection on first meeting our little love bug.
-
Reuse Statistics and Self Justifications
A writer I know recently boasted that his team is reusing around 85% of the topics they write and that it totally justifies their move to topic based writing. I was moderately impressed until I found out that the reuse was across a single product. At that point my skepticism became full blown disbelief.
85% reuse is an incredible amount of efficiency across multiple products. Across a single product's library it is absurd, particularly when the writers claim to be following the mantra "do not repeat yourself." At 85% reuse, the writers may only be writing content once, but they are definitely repeating themselves. It doesn't matter what the content looks like from the writers perspective; it is what the readers see that matters.
Of course when someone is bragging about something like this, what really matters to them is reuse. They had some reuse goal in mind or spent a lot of money to implement reuse and needed to prove they could do it. This may make the team look good to the efficiency experts, management types, and the metric mavens, but it is a lousy way to make content.
The other telling thing about this conversation, which happened over a longish e-mail thread, was how the team responded to questions and criticism. The most common criticism was that the content was choppy, disjointed, and repetitive.
The responses were all self-justifying: It is that way by design because it fits into how Google searches land readers into the middle of pages. (I'm not saying that how Google searches land people into your pages is not a valid concern, I am saying that I have never once heard of a documentation team that designed their content around Google search results.) It isn't choppy, it is streamlined. The "flow" content is wasted effort.
There was no reflection. There was no listening. There was no attempt to address the concerns.
As someone whose sole job is to communicate information, I find the unwillingness to think about criticism about how that information is presented unconscionable. There is always room for improvement. Also, acknowledging an issue doesn't mean you have to do anything about it.
You cannot get too attached to your content in this game. It isn't your baby. It isn't a reflection of your soul. It is information that somebody else created. You are merely the conduit through which it is communicated. Learn to be the best conduit you can. -
What to look forward to at CamelOne, June 10-11th, 2013!
This year is going to be the third CamelOne, and its going to be quite different from previous
CamelOne conferences.
Firstly the we have a new host, Red Hat who have kindly agreed to host CamelOne at the Hynes Convention Center, at the same time as JudCon and Red Hat Developer Exchange. This means people attending will be able to move between these different events and pick n' mix what they go to.It also means there will be a chance for attendees to mingle - and see what's happening on both sides of the open source fence.
The second thing you'll notice, is that is going to be a very strong emphasis on open source projects. I've no doubt the occasional product may get a mention, but the aim of CamelOne this year is to educate and share experiences of using the best open source integration software out there. If you look at the agenda, you will see there's a real mix of customer experience stories and best way to use the Apache projects to be successful.
Thirdly, the overall theme is going to show how you the direction integration projects from the ASF (Apache Camel, ActiveMQ, CXF, Karaf, ServiceMix) are taking to address the integration needs for the next five years: The internet of things, the proliferation of cloud API's, and mobile. Attendees will also see the direction that the Fuse Engineering team inside Red Hat are developing for future projects, in particular better management and Cloud-based Integration.
This is going to be the best CamelOne yet - we are expecting record attendance - and I look forward to seeing you there! -
ActiveMQ-CPP v3.7.0 Released
This is a new Major release of ActiveMQ-CPP which contains bug fixes for issues that were found since v3.6.0 was released along with several new features which have been requested by a number of users.
* Added support of Optimized Acknowledge
* Added support for Non-blocking redelivery.
* Removed dependence on the APR-Util library (Still needs the main APR lib).
* Supports priority backups for Failover Transport
* Supports the cluster rebalancing feature.
* Message Audits to filter duplicates on Failover.
* A lot of other little bug fixes and improvements.
Building the project should be a lot simpler now as you only need to have APR v1.3+ installed, this is a big plus for Windows users as building the APR-Util libs on Windows is tricky at best. -
Lightweight Messaging For Web And Mobile With Apache ActiveMQ
Messaging once was a thing of enterprises but times are changing fast and devs now want to use it from virtually any environment. I thought its important to talk about messaging technologies available for web and mobile, so Ill give a talk about it at CamelOne and OSCON. If youre attending one of those give me a ping, so we can have a chat over some beers.
-
Webinar on May 16th 2013 - Using Apache Camel connectors for external connectivity
I have the pleasure of speaking at a webinar on thursday focusing on Apache Camel components.
Webinar about Apache Camel
components Any integration requires connectivity to applications,
services, or databases. Connectivity could be a file drop via FTPor
sFTP, a JDBC call to a database, or a webService call to an
application. Apache Camel comes with 100+s Camel components or
connectors that enable this functionality.
To archive that Apache Camel comes with 130+ components out of the box, ready for you to use. In this webinar we take a look at some of the popular components, as well how you can write your custom components.
The webinar is a mix between slides and live demonstration. The session is scheduled for one hour, where we leave about 10 minutes at the end for Q and A.
Register for this webinar and learn how:- Apache Camel speeds connectivity.
- To use Apache Camel components to create faster integration solutions.
- To build custom Camel components.
When
Thursday, May 16, 2013 at:- 15:00 UTC
- 11:00 am (New York)
- 4:00 pm (Paris)
- 8:30 pm (Mumbai)
How to register
The webinar is free and you can register for the event from this link.
-
Advanced Integration Testing using Fuse Fabric at Camel One 2013
I've already posted twice in the blog about integration testing using Pax-Examand Karaf. Surprisingly these two posts are among the most popular in this blog and I was consideringwritinga third part that would focus onFuse Fabric.
The idea was to write about usingFuse Fabricto create and manage distributed containers for your integration tests.
Finally, I decided give a presentation about this instead.
So if you are joining CamelOne 2013, you'll have the chance to attend to my presentation and learn more about:- Writing integration tests for OSGi applications.
- UsingFuse Fabricto manage & coordinate distributed tests.
- Scaling your tests to a large number of remote containers.
-
Video recordings (in Danish) from my latest getting started with Apache Camel presentation
Last week I visited rhus, Denmark to give a presentation about Apache Camel. This event was organized by JavaGruppen, and OpenMinds was kind to host the event, in their beautiful office centrally located in rhus.
Thanks to Thomas Salling whom was so kind to pick me up at the train station, I arrived safely and in time for the event.
Claus presenting Apache
Camel at Javagruppen meeting in rhus, Denmark - Photo by Sren
Glasius At the event we had a great turnup, of about 25 people. And
we were almost out of free chairs, and space in the room, as you
can see from the photos.
Attendees at the event -
Photo by Sren Glasius After the event we went for beers at Sct.
Clements which is a brewery inside the restaurant.
Having beers at Sct
Clemens after the event. My presentation was 2 hours and with a mix
of slides and live demonstrations. And as well taking in questions.
We had a 10 minutes break at the one hour mark. Giving such a long
presentation is of course a challenge. The response from the
attendees was positive and they didn't get bored etc. And we had
about 2/3 of the attendees whom didn't know about Apache Camel.
I also had the pleasure of meeting with two formercolleagueswhom I haven't seen in over 10 years. It was great to see you Michael and Simon.
Sren Berg Glasius, whom is known in the Groovy and Grailscommunities is head of organizing the GR8Conf conferences. The next GR8Conf takes place in a couple of weeks in Copenhagen, Denmark. So he is testing his video and presentation equipment, so we used this opportunity to video tape my entire presentation. Unfortunately there was some problems with the HDMI connection so we had to settle for VGA. But the end result is still very great. The video features both the slides and the camera feed in the same picture. This makes it very easy to follow the presentation.
Soren was so kind to invite me as a guest to the GR8Conf, so I will drop by in Copenhagen on the 23rd of March. Looking forward to see how far the Groovy and Grails have reached. We do see more and more people use Grails and Camel. Likewise the gradle build system seems to be cool as well.
The videos of the presentation is already online and you can find them here.
And the slides is also uploaded to slideshare here.
Thanks to Javagruppen and OpenMinds for hosting such a great event. I had a great time visiting rhus.
-
Join me at CamelOne this June!

For the past couple of years, FuseSource has held CamelOne, an annual conference specifically geared toward the open-source messaging and integration communities especially those at Apache around the Camel, ActiveMQ, ServiceMix, and CXF projects. Its a great place to see what cool new technology the Fuse folks are cranking out, and also meet other Fuse technology users and see what theyre doing!
With the recent (Sept 2012) acquisition of FuseSource by Red Hat, some have been wondering whether the conference still lives on worry no further the CamelOne conference will still be held!!! Last years event in Boston was super successful, so we will be doing it there again.
I will be giving a presentation this year on ActiveMQ Internals. So if youve ever been interested to take a peak into the broker core for the purposes of tweaking configuration or contributing back to the community, plan to be in attendance.
Of course no CamelOne is complete without meeting the rockstars that have been powering the Fuse technologies for a while, including Rob Davies, James Strachan, Hiram Chirino, Claus Ibsen, Guillaume Nodet, and others from the ActiveMQ, Camel, CXF, and ServiceMix communities!!
Registration for the event is still at early bird pricing ($150 till May 15th!), so register soon!
-
Talk on ServiceMix at CamelOne 2013
It's getting close now to CamelOne 2013, the conference all about
open source integration and messaging. I've been fortunate enough
to have been a part of previous CamelOne events over the years and
lemme tell you, it's been great. We try to keep fluff low, with
lots of hands on technical talks.
Like other years, this year I'm planning on giving a talk on Apache ServiceMix titled "Enterprise Integration with Apache Camel and ServiceMix". For those who don't know, Apache ServiceMix is an open source container combining features from Apache ActiveMQ, Camel, CXF, and Karaf. ServiceMix and similar Karaf-based containers like JBoss Fuse are a great choice for folks wanting to do enterprise integration with Camel.
For the talk I'll be giving an update on the ServiceMix project, discussing best practices for developing and running Camel-based integration solutions in ServiceMix, and of course I'll use live demos throughout to demonstrate the concepts.
The conference runs for 2 days June 10-11, 2013 and registration details can be found at http://www.camelone.org. Hope to see you there! :-)
-
Documentation and Version Control
In this post I'm going to take a look at the version control requirements for storing and archiving documentation. It's worth considering what those requirements are, because they are not identical to the version control requirements for developing application code. Documentation requires many, but not all, of the features offered by classic developer-oriented revision control systems. On the
-
FuseByExample
A few weeks ago, our first Red Hat JBoss Fuse release was completed. As with previous releases, this comes with a few examples that show you how to build e.g. a content-based routers or a JAX-RS web service. These examples are all very simple and focused on single technology.
In real life however, things often get quite a bit more complicated than what these examples are showing you. Based on their experience with customers, people like Charles Mouillard, Scott Cranton, Jakub Korab and Scott England-Sullivan have been creating a set of more elaborate example projects on GitHub.
FuseByExample is the name of the GitHub organisation where all these projects live. If you go there, you'll find a dozen examples that show you how to implement things like transactions using Aries' JTA support,using JPA for database access, using web sockets to build more dynamic web front-ends, ...
All of these examples have been updated to work with the new Red Hat JBoss Fuse 6.0 release so if you're taking a look at this new release, be sure to check out the stuff in FuseByExample as well to get a better idea of what is possible with this technology. And also, these are GitHub projects so feel free to create pull requests for improvements, bug fixes, ... We love contributions ;)
-
Plugging the HawtIO monitoring webapp into a stand-alone ActiveMQ instance
HawtIO is a new pluggable HTML5 dashboard for monitoring ActiveMQ, Camel, Karaf, Fuse Fabric, Tomcat, and other technologies. Actually, I was completely surprised to see the list of plugins already available and how HawtIO has already gained so much good traction. Not surprisingly though it does some pretty cool stuff
The purpose of this quick post is to help you plug HawtIO into your stand-alone ActiveMQ instances with minimal fuss. For production deployments, I would recommend using a hardened, production-ready version of ActiveMQ such as FuseMQ Enterprise, but some folks stick with the community versions and a standalone deployment. Lets say you had the latest version of ActiveMQ and wanted to pop HawtIO into it to see how hawt it is.
First, HawtIO is a webapp packaged as a normal war file that can be deployed to any servlet container. This means you can deploy it, for example, to a Tomcat instance which has an embedded ActiveMQ along with some Camel routes, and HawtIO would discover and allow you to monitor all three technologies from the same dashboard. But like I said before, this post is more about the stand-alone deployments. The stand-alone ActiveMQ itself doesnt run in a servlet container, but does contain an embedded Jetty server that it uses for its current web console. Basically, what we want to do is tell the embedded Jetty server to find the HawtIO war and load it up.
Start by downloading the HawtIO war and put it at your $ACTIVEMQ_HOME/hawtio folder (that folder wont exist out of the box, youll have to create it).
Then edit the Jetty config file in $ACTIVEMQ_HOME/conf/jetty.xml
Youll want to add the following WebAppContext to the handlers property:
<bean id="securityHandler" class="org.eclipse.jetty.security.ConstraintSecurityHandler"> ... <property name="handler"> <bean id="sec" class="org.eclipse.jetty.server.handler.HandlerCollection"> <property name="handlers"> <list> ... <bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/hawtio" /> <property name="war" value="${activemq.home}/hawtio/hawtio-default-1.1.war" /> <property name="logUrlOnStart" value="true" /> </bean>
Next, well need to tweak the contents of the hawtio war file because it will contain a conflicting slf4j jar that would normally already be on the classpath for ActiveMQ:
zip -d $ACTIVEMQ_HOME/hawtio/hawtio-web-1.0.war WEB-INF/lib/slf4j-api-1.6.1.jar
After that you should be good to go. Start ActiveMQ and Navigate your browser to http://localhost:8161/hawtio/
Then have fun hacking around!
Updated to use latest release, hawtio 1.1!
No need to do the extra step of modifying the contents of the WAR file. Just point to the WAR file in your jetty.xml config file, and youre off!
-
The Importance of Looking Good
One of the things that really bugs me is content that looks bad or amateurish. I don't think that looks can change the essential nature of a piece of content.
Bad content is still bad regardless of how pretty it looks.
Looks do, however, have some bearing on how seriously a piece of content is taken. If a well written or particularly interesting piece is presented in amateurish or simply ugly way, I may just skip it without bothering to find out if it is good. On the other hand, a well laid out piece of crap may get the chance to waste a few minutes of my time.
The care with which something is presented says a lot about how much the presenter values it or about the skill of the presenter. Something that looks thrown together or looks like it was pooped out by a some kid with a free Web publishing kit, why should I take it seriously? The person creating it didn't.
This is much worse when it is done by professional companies where their is their knowledge and experience. If the documentation is laid out to look like something out of the 90s or has the worst qualities of print with none of the Web goodness, what does that say about the quality of the content?
If the content lacks even the basics for ease of access, why should I trust that I will be rewarded for my struggles to find anything of use? -
How to change colors in Karaf shell console?
Karaf uses colored output, this is great!!
E.g. running log:tail or log:display prints the karaf log in different colors depending on the log level of the log message.
However sometimes the colors used by default don't work nicely on your terminals background.
You could change the background of the terminal but would it not be nicer to simple reconfigure the color codes used by Karaf?
Of course this is possible.
Simply add something like the following to $KARAF_HOME/etc/org.apache.karaf.log.cfg
#
# ANSI Colors
#
fatalColor = 31;1
errorColor = 31;1
warnColor = 35
infoColor = 36
debugColor = 39
traceColor = 39
and restart your Karaf/ServiceMix/Fuse ESB Enterprise/JBoss Fuse container.
How do these values map to actual colors? See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics, in particular the section on colors.
Appending a ";1" to the color value renders the text in bold as well. Other formatting options such as italic or blinking don't seem to be supported.
-
Intro to Camel By Example
Ive been using and distributing a Apache Camel based example project as part of informal training and JUG talks for several years. I wrote the example to demonstrate best practices for the use of Camel as well as the wonderful testing support baked into the Camel libraries in the context of a complete use case. The example extends the lessons provided in the examples found in the Apache Camel distribution by tying a number of concepts together just like developers do in real world solutions. I recently updated the example to demonstrate the flexibility of Camel to move from a simple deployment in a Tomcat instance to a scalable multi-node deployment using asynchronous messaging.
These updates aim to demonstrate the low-invasiveness of Apache Camel to your existing code base when deployed alongside traditional Web applications in a Servlet container or JEE application server as well as the ability of Camel to scale with your deployment as needed. The updates demonstrate how Camel can scale your integration and business logic on a collection of manually managed and deployed Tomcat instances or on a managed cluster of Fuse ESB(JBoss Fuse) instances leveraging Fuse Fabric and Fuse Management Console to provide more enterprise ready management, monitoring, and provisioning capabilities.
The example code and tutorial documentation are available on GitHub athttps://github.com/DavidValeri/intro-to-camel-by-example.
Note that with the Red Hat acquisition of FuseSource, Fuse ESB has been rebranded as JBoss Fuse. At this time, Fuse ESB 7.1 represents the latest GA release of the product line. The example code and tutorial referenced in this post will leverage Fuse ESB 7.1 until the GA release of the rebranded JBoss Fuse becomes available.
-
Switching ubuntu boot from graphics to text mode.
This one has always puzzled me and make me go round and round few times now on all my new VM's, so I decided to note down what I did this time.
To Change the Graphic boot to Text mode on startup all you need to do is modify your /etc/init/<your-display-manager><your-display-manager>.cfg</your-display-manager></your-display-manager> file.
In my case I was trying to do this with gdm.cfg based on many google results however, I missed a crucial point that I had selected another Display Manager lightdm. After trying few things I finally realized the mistake. So here is the snippet from /etc/init/lightdm.cfg (This should be same for gdm as well in gdm.cfg):
start on ((filesystem
and runlevel [!026]
and started dbus
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udev-fallback-graphics))
or runlevel PREVLEVEL=S)
stop on runlevel [016]You can change the runlevel in
stop on runlevel [016] but I didn't find it necessary, just changing it in start on section did the job. -
Now consulting independently
After a long time working as a consultant for others, I felt that the time was right to take off the training wheels and break out on my own. Earlier this month, I re-focused my company Ameliant to independent work, delivering consulting around the Apache suite of integration technologies that I have been blogging about for some time Camel, ActiveMQ, CXF and ServiceMix.
Today, Im pleased to launch the companys new site at ameliant.com. Its now also reachable from the little leaf motif on the blog. Im really pleased with the way it turned out.
Big thanks to Luke Burford at Lunamedia for the design and development of the site. Hes also the guy who put this blog design together, which is why the designs are so complementary.
I am looking forward to this new endeavour.
-
Map Existing Structures Instead of Using the Three Topic Types
It is not that I don't like the kernel that germinated topics. I do like the idea of breaking big ideas into smaller, more manageable, and reusable chunks. It is one of the cornerstones of good writing.
What I don't like is the reduction of all things into three containers that are both too restrictive and not specific enough. Tasks, for example, cannot contain any conceptual information despite the fact that for most complex actions a reader will need some conceptual information to ground the task and explain its purpose in the larger scheme. Also, given the context free nature of topics, a task cannot depend on any other tasks despite the fact that many tasks are meta-tasks where each step in the task is itself another task.
One way to solve the need for adding context to a task is to redefine task to include an overview block that allows for conceptual information. Another way is to define a concept type that, by definition, precedes a task to provide the required context. Both cases create a more specific, and more useful, architecture for writing.
Similarly, to solve the meta-task issue one could define a new task type that allows dependencies on other tasks. This type, called a procedure, doesn't need to have hard dependencies; it could allow for output generation without inclusion of the sub-tasks. However, it would make it harder to ignore the need for the sub-tasks.
It is not that information architects are not free to make new content types; it is that most don't. They have their three types and try to force everything into them. They ignore the fact that an existing information set will have organically developed topic types that make sense for it. In most instances the argument is that the starting point set was narrative and therefore flawed. It needs to be tamed into the three canonical types for its own good.
The mistake here is that by assuming the new model is better, they lose the native intelligence in the existing structure. They assume it has none and impose it. Unfortunately, this approach typically results in more work and no net increase in the value of the information.
A far better approach is to analyze the structures used through out the existing set and attempt to build types, based on the canonical types, into which the old structure map. This requires some upfront work, but makes the move into topics, or modules, smoother. It also retains the knowledge encoded into the existing architecture. It has grown up as a reflection of the needs of the information, the needs of the consumers, and the needs of the authors. Hopefully, the standardization of the existing structures will result in a net increase in value because it will smooth out the bumps in the existing set instead of chopping it up. It will also give the authors more investment in the task of migration and more able to spot places where it can be improved.
The other benefit of remembering that the structure of existing sets has value, is that it sparks an iterative process. The architecture can be modified as needed. New types can be introduced; old types can be refined or removed.

by
by
by
by

by
by
by
by
by