This guide is intended to serve as a study reference for people planning to take the Red Hat Certificate of Expertise in Camel Development Exam (EX421). It contains all of the information & resources that you need to properly prepare yourself for the exam.

Audience & Prerequisites

The following audiences may be interested in earning the Red Hat Certificate of Expertise in Camel Development:

  • Enterprise Java developers who are familiar with service-oriented architecture (SOA) principles and are responsible for integrating enterprise applications.
  • Enterprise SOA architects with some Java development experience and knowledge of enterprise integration.

Exam candidates should:

  • Have taken the Camel Development with Red Hat JBoss Fuse (JB421) course or have extensive work experience in enterprise integration using Apache Camel
  • Have familiarity working in a Red Hat Enterprise Linux® environment
  • Review the Red Hat Certificate of Expertise in Camel Development exam (EX421) objectives

Exam format

This exam is a performance-based evaluation of the candidate’s Camel development skills and knowledge. Candidates perform tasks associated with the development and maintenance of enterprise integration patterns using Red Hat JBoss Fuse. Performance-based testing means that candidates must perform tasks similar to what they perform on the job.

This is a closed exam where candidates do not have access to the internet and candidates are not permitted to bring any papers, books or electronic aids to the exam. Candidates are, however, provided with a local copy of the official JBoss Fuse documentation. Candidates should familiarize themselves with this documentation when preparing for the exam.

This exam consists of 1 section lasting 4 hours.

Scores and reporting

Official scores for exams come exclusively from Red Hat Certification Central. Red Hat does not authorize examiners or training partners to report results to candidates directly. Scores on the exam are usually reported within 3 U.S. business days.

Recommended training

Camel Development with Red Hat JBoss Fuse (JB421) is the recommended training course for preparing for this exam.

Additional Information

If you would like additional information about the exam and its format, you can check out the Red Hat FAQ hosted by the exam company.

Exam Objectives & Resources

This section will break down the exam by objectives and relate each objective back to the appropriate section in the JB421 training course and official documentation. Additional resources may also be referenced for some objectives when there is a need to provide more detail.

Create & Maintain Camel Routes

Camel routes are the core construct within Camel and are used for routing messages. They are composed of Components and Endpoints and are created using one of many DSL’s or XML based languages. The most common methods for creating a route are using the Java DSL or Spring XML.

Use the Java language DSL

The Java based DSL uses a fluent builder style. The Java DSL is available by extending the RouteBuilder class and implementing the configure method.

Use the CamelContext XML

The CamelContext XML is used with the Spring XML to create and define Camel routes. You can configure a CamelContext inside any spring.xml using the CamelContextFactoryBean. This will automatically start the CamelContext along with any referenced Routes along any referenced Component and Endpoint instances.

Understand Exchange messages

An exchange stores messages received and transmitted using Camel routes. It stores routing information, the properties of the route/exchange itself, and the headers and properties of messages. The exchange is composed of an ID, Exchange Pattern (MEP), Properties, and two messages (In & Out).

Work with the Message Body

The message body contains data that will be processed by the receiver and/or manipulated by Camel processors.

Work with the Message Headers

Message headers contain metadata such as sender information and security details in a java.util.Map collection.

Work with the Message Attachments

Attachments contain file-based contents to be transmitted to a receiver.

Work with the In/out Messages

The In/Out messages are the messages on the Camel Exchange and are manipulated by the Camel processors.

Consume and produce files

Work with CSV files

CSV File operations in Camel are performed using Bindy.

Work with XML file

Work with databases and Camel JPA

Understand transactional routes

Understand & use common EIPs

EIP’s are Design Patterns that are intended to be used in ESB’s and other SOA systems to solve common integration problems. Camel supports most of the Enterprise Integration Patterns from the excellent book by Gregor Hohpe and Bobby Woolf.

Work with Content-based router EIP

The Content Based Router EIP pattern allows you to route messages to the correct destination based on the contents of a message exchange. Expressions are utilized to evaluate the content of the exchange and determine where to route the message.docs.redhat.

  • Official Resources
  • Community References
  • Additional Reading
    • Book - Camel in Action v1, Section 2.5.1
    • Book - Enterprise Integration Patterns, Chapter 7
  • Gotchas
    • When using the Java DSL there are limitations on how “deep” you can go into a route. If your code does not compile when using a CBR try using .endChoice() to return control back to the CBR. You can find more detailed information here Note that this is not an issue with XML Routes.

Work with Wire Tap EIP

The wire tap pattern enables you to route a copy of the message to a separate tap location, while the original message is forwarded to the ultimate destination.

Work with Splitter EIP

A splitter is a type of router that splits an incoming message into a series of outgoing messages. Each of the outgoing messages contains a piece of the original message.

Work with Aggregator EIP

The aggregator pattern enables you to combine a batch of related messages into a single message.

Work with RecipientList EIP

A recipient list is a type of router that sends each incoming message to multiple different destinations. In addition, a recipient list typically requires that the list of recipients be calculated at run time.

Understand & use common Camel components

Work with File2 component

Work with FTP component

Work with JPA2 component

Work with JMS component

Work with Direct component

Testing Routes

Work with Mock endpoints

  • Official Resources
    • Training Course - JB421, Sections 9.5 & 9.6
  • Community References
  • Additional Reading
    • Book - Camel in Action v1, Section 6.2

Understand JUnit 4 integration

  • Official Resources
    • Training Course - JB421, Sections 9.1 & 9.2
  • Community References
  • Additional Reading
    • Book - Camel in Action v1, Section 6.1

Work with CamelTest APIs

  • Official Resources
    • Training Course- JB421, Sections 9.3 & 9.4
  • Community References
  • Additional Reading
    • Book - Camel in Action v1, Section 6.1

Dynamically Route Messages

Use conditional routes

Conditional routing in Camel is primarily accomplished by the combination of a Content Based Router and an Expression. In addition to the Content Based Router EIP you should be familiar with Expressions, Predicates, and the Simple Expression Language.

Exception Handling

Apache Camel provides several different mechanisms, which let you handle exceptions at different levels of granularity: you can handle exceptions within a route using doTry, doCatch, and doFinally; or you can specify what action to take for each exception type and apply this rule to all routes in a RouteBuilder using onException; or you can specify what action to take for all exception types and apply this rule to all routes in a RouteBuilder using errorHandler.

Catch and handle exceptions

Work with Use the dead-letter queue

Additional recommended reading

The following books may be useful in your exam preperation however they are not required reading and you should be able to pass the exam without reading these books.



Published

24 August 2015

Tags