Christian Posta — Software Blog

Become the best you can be at your profession. If you've stopped learning, you've given up.

Apache Camel Developer’s Cookbook — ebook giveaway

Apache Camel Developer’s Cookbook by Scott Cranton and Jakub Korab is a large catalog of useful patterns, solutions, and best practices for developing and integrating applications with the popular Apache Camel library.

camel nose

The “recipe” format is very easy to follow; you can focus on the specific recipes that will help you solve a specific problem and be more productive than scouring the mailing lists or JIRAs for hours/days/weeks. I highly recommend you buy the book as it’s worth every penny. It’s targeted toward experienced users of Apache Camel (have used the library, or know in principal what it is and how to use it) and even the most seasoned veterans get a lot of useful tips from it. However, if you’re just getting started with this wonderful library, then a must have is Claus Ibsen and Jon Anstey‘s book Apache Camel in Action. After you’ve read that one, pick up this Apache Camel Developers Cookbook.

Here’s a snippet of things you can get out of the book:

  • Learn ways to structure your Camel projects
  • Understand common Enterprise Integration Pattern usage
  • Transform your messages Use Camel’s built-in testing framework
  • Extend Camel to better interoperate with your existing code
  • Learn the strategies for Error Handling Use Camel’s parallel processing and threading capabilities
  • Secure your Camel integration routes
  • Understand ACID Transaction processing within Camel

You can also take a peek at the review I put together when the book first came out.

For this blog post, I’ve teamed up with Packt Publishing who’s generously offereing three free e-book copies of this book to my readers. So how do I decide which three readers get a copy?

Easy.

If you’re new to Apache Camel or have used it in the past and think a recipe book like this could be helpful to you, please let me know in the comments. Feel free to browse the book description to give you ideas. For example, you can explain an integration scenario you might be working on (or want to work on) with Camel and what are some key best practices or step-by-step guides that would help you.

I will choose three readers who’ve left comments on August 21st 2014. Note, you’ll want to use your real email addresses as this is how you’ll be contacted.

Thanks, and look forward to hearing from you!

UPDATE: I have chosen the winners of the ebook giveaway, congrats to the following commenters (from below): For the others, I’m working with Packt to see what kind of discount we can get you!

Winners: Stu, Tihu, and Ugo Albarello.

Cheers and enjoy the book!

9 Responses to “Apache Camel Developer’s Cookbook — ebook giveaway”

  • martin-g says:

    First!

  • Ugo Albarello says:

    This one could make some company to my Camel in Action, ActiveMq in Action and Instant Apache ServiceMix How-to books!!

    • Ugo Albarello says:

      I’m pretty new to Camel in the practice.

      My first project was a replacement for a little .net program that runs on a Windows server that grabs a list of .xml, look for some filepaths of some images, and then use ftp to upload the image to another (Linux) server. This is working OK, but the company is banning the old plain FTP and wants this to be replaced with FTPS or SFTP protocols. I replace a 150 lines C# program with a much more versatile 10 “lines” Java DSL Camel route

      My next one: We have some integration made through web-services that sometimes are getting error because of database locks caused by the service itself (it seems that the integration use threading and a fire-and-forget style for calling the services). My idea is use Camel to control the throughput of the calls so we reduce the database locks.

      Although this examples are pretty easy, the team doesn’t use to work with other tools different to .NET and other Microsoft technologies (e.g. SQLServer Integration Services), so I see this tiny window as a big opportunity to introduce Apache Camel in our team’s toolbox.

      Thanks for your blog, and greetings from Colombia!

  • Matteo says:

    I used Apache Camel as a drop-in replacement for some legacy code doing simple ETL, so now the data pipeline is with Camel, and we have better control also monitoring via JMX.

    I’m working next as using it for a lightweight ESB to connect JavaEE applications with external systems and other JVM standalone apps.

    I think a recipe book like this one would help me a lot for best practice with error-handling, and async processing; also I believe a book like this one could help me a lot to understand best practice for testing the routes, in a complex integration scenario like the one I’m describing.

  • Juliano says:

    I’ve started using Camel 3 months ago and this book would be of great assistance.

  • Costa says:

    I have been usin Apache Camel, Karaf and ActiveMQ for the last 3 years. Regarding Apache Camel, I really enjoy the various ways with which it can be executed, its SPIs, its source code as a blueprint for architecting applications and its large number of available components! I have also developed some custom Camel components, myself!

  • Stu says:

    I have been using Camel for a few years and enjoy the flexibility and power of the framework, however, I am always keen to learn better ways of doing things – of particular interest to me is structuring projects with a large number of routes, better knowledge of the camel test framework, and transactional processing. I have used camel as the glue in a number of projects integrating web service endpoints, databases, drools, and asynchronous processing using JMS.

    from(“direct:christianPostaAndPacktPub”)
    .multicast(new GroupedExchangeAggregationStrategy()).parallelProcessing()
    .enrich(“seda:camelProjectStructures”).enrich(“seda:enterpriseIntegrationPatterns”)
    .enrich(“seda:camelTestSupport”).enrich(“seda:enhanceExistingCodeSupport”) .enrich(“seda:messageTransformers”).enrich(“seda:parallelProcessingErrorHandlingAndThreadingCapabilities”)
    .enrich(“seda:securingRoutes”).enrich(“seda:acidTransactionProcessing”)
    .end()
    .process(myEnhancedCamelKnowledge);

  • Ray says:

    I just started learning Camel in the past few weeks, and currently am working my way through the Camel in Action book. The tool can really help simplify things it seems (with respect to JBoss ESB in my case), and I like being able to use the Java DSL.

  • Tiho says:

    In my company – acting as a product architect – we have started using Camel about an year ago. In particular these days we use almost everything from Fabric8 to build our application – a gateway with kind of a API catalog. We have also chosen Camel as it best fits to our philosophy and really saves us time in the definition of flows, being internal or external. Its’ integration with OSGI is also something that we have considered as we wanted to go really modular where OSGi helps. We’ve been using Spring XML as our primary DSL, however now planning to use Route Builders and LDAP database (due to company internal requirements) – but this would also help us to create our dynamically loadable, editable, and removable routes. The reason behind that is that we might be having up to 1000 routes per single instance. Of course we have developed also our own Camel components – primarily on proprietary API – where especially with REST we have taken the approach to use directly Netty native Camel component and build around it due to performance issues which could arise later with CXF. Shoudl mention probably also the fact that we have incorporated our own internal message structure on top of Camel message due to the multitenancy API implementations. Recently I have spotted also that new Camel will be having native support of RESTful endpoints, which makes it even greater from our perspective. Shortly said, Camel is great, combined with Fabric8 is even greater!


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>