

Ask HN: Java-based integration development learning path - theGREENsuit

Hello all, I&#x27;m interested in getting my hands into integration. My background is Java based web development: Struts, Spring, some exposure to Grails. I don&#x27;t have experience in web services or integration. The apps I&#x27;ve worked on were more CRUD-like systems without any integration.<p>I&#x27;m trying to figure out a learning path of where to start and what to learn next. The technology I want to get familiar with is: Camel, CXF, ActiveMQ. This is because that is what is used at the place I work. I&#x27;m not in a developer position at work and the people that do this type of work for us are a third party. I&#x27;m looking to learn some of this stuff on my own.<p>I&#x27;m looking for a more structured learning environment rather than just &quot;playing with it&quot;. I think it would be a bit overwhelming to try to learn it all at once. Learning for me is easier when I focus on 1 thing at a time, which is why I want to break it up into pieces instead of throwing a bunch of tools together and figuring it out.<p>I&#x27;m open to doing virtual classroom courses. I found a 3-day Camel course offered by RedHat and it seems like it would be a good start.<p>For those that have experience with these tools, is Camel a good starting point? Then, say, look into CXF and ActiveMQ?<p>Thanks in advance for any advice.
======
mindcrime
IMO, Camel pretty much rocks. The _Camel In Action_ book is pretty good too.
I'm also a fan of ActiveMQ, although I may have a slight preference for
HornetQ as far as Java based JMS providers go.

CXF is also good stuff.

I don't know about courses, but given the way I learn, here's what I'd do (and
this isn't far from what I did when I first wanted to learn Camel) - figure
out some kind of project you can build, that could use Camel, and just start
building it.

If you're already building apps using Spring/Grails/etc. then build yourself a
simple little CRUD app of some sort... used a totally made up domain if you
want (a buddy of mine was making a "Teletubby Tracker" app) and then start
thinking about how you might decompose it into a more modular form ("SOA-ify"
if you will) and then break the back-end out into services, expose then using
CXF, and have your front-end put messages on a Queue, route with Camel, and
then update the backend as appropriate. It's fine if it's made up, your goal
is to learn, not to build The Next Big Thing, right?

Another piece you might add to the stack at some point is a BPM engine like
Activiti.

This approach might or might not be for you (learning styles differ and all
that), but "build something" has always worked best for me.

Also, and hopefully without being too self-promotional - if you want to hack
on some of this stuff in the setting of a cool open source project, I have
some stuff I'm working with that uses Grails, Camel, JMS, (not so much CXF
though, at least not at the moment) and Activiti. If you would like to poke at
our code and maybe get involved, shoot me an email and I'll try to help out.

~~~
theGREENsuit
Thanks for sharing your thoughts. I think the approach of building something,
one piece at a time, is how I'll go with it. I just found it overwhelming to
try to tackle too much all at once. After doing some more research and talking
with a buddy that work in that area, I got my hands on Camel In Action, so
I'll be starting there, adding other pieces as I go along. Thanks again :)

~~~
mhuisking
Hi, Check these out:
[https://github.com/FuseByExample](https://github.com/FuseByExample) and also
the sample code here: [https://github.com/CamelCookbook/camel-cookbook-
examples](https://github.com/CamelCookbook/camel-cookbook-examples). You
already know about Claus' work. Oh, Charles Moulliard
[http://www.slideshare.net/cmoulliard](http://www.slideshare.net/cmoulliard)
has a lot of good stuff too. Enjoy! Camel/AMQ/Fabric8 are a lot of fun. (as
fun as integration can get)

~~~
theGREENsuit
Bookmarked. Thanks!

