Hello all, I'm interested in getting my hands into integration. My background is Java based web development: Struts, Spring, some exposure to Grails. I don't have experience in web services or integration. The apps I've worked on were more CRUD-like systems without any integration.<p>I'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'm not in a developer position at work and the people that do this type of work for us are a third party. I'm looking to learn some of this stuff on my own.<p>I'm looking for a more structured learning environment rather than just "playing with it". 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'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.
IMO, Camel pretty much rocks. The <i>Camel In Action</i> 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.<p>CXF is also good stuff.<p>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.<p>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?<p>Another piece you might add to the stack at some point is a BPM engine like Activiti.<p>This approach might or might not be for you (learning styles differ and all that), but "build something" has always worked best for me.<p>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.