Jump To Close Expand all Collapse all Table of contents Apache Camel Development Guide I. Implementing Enterprise Integration Patterns Expand section "I. Implementing Enterprise Integration Patterns" Collapse section "I. Implementing Enterprise Integration Patterns" 1. Building Blocks for Route Definitions Expand section "1. Building Blocks for Route Definitions" Collapse section "1. Building Blocks for Route Definitions" 1.1. Implementing a RouteBuilder Class 1.2. Basic Java DSL Syntax 1.3. Router Schema in a Spring XML File 1.4. Endpoints 1.5. Processors 2. Basic Principles of Route Building Expand section "2. Basic Principles of Route Building" Collapse section "2. Basic Principles of Route Building" 2.1. Pipeline Processing 2.2. Multiple Inputs 2.3. Exception Handling Expand section "2.3. Exception Handling" Collapse section "2.3. Exception Handling" 2.3.1. onException Clause 2.3.2. Error Handler 2.3.3. doTry, doCatch, and doFinally 2.3.4. Propagating SOAP Exceptions 2.4. Bean Integration 2.5. Creating Exchange Instances 2.6. Transforming Message Content Expand section "2.6. Transforming Message Content" Collapse section "2.6. Transforming Message Content" 2.6.1. Simple Message Transformations 2.6.2. Marshalling and Unmarshalling 2.6.3. Endpoint Bindings 2.7. Property Placeholders 2.8. Threading Model 2.9. Controlling Start-Up and Shutdown of Routes Expand section "2.9. Controlling Start-Up and Shutdown of Routes" Collapse section "2.9. Controlling Start-Up and Shutdown of Routes" 2.9.1. RouteIdFactory 2.10. Scheduled Route Policy Expand section "2.10. Scheduled Route Policy" Collapse section "2.10. Scheduled Route Policy" 2.10.1. Overview of Scheduled Route Policies 2.10.2. Simple Scheduled Route Policy 2.10.3. Cron Scheduled Route Policy 2.10.4. Route Policy Factory 2.11. Reloading Camel Routes Expand section "2.11. Reloading Camel Routes" Collapse section "2.11. Reloading Camel Routes" 2.11.1. Enabling Live Reload 2.12. OnCompletion 2.13. Metrics 2.14. JMX Naming 2.15. Performance and Optimization 3. Introducing Enterprise Integration Patterns Expand section "3. Introducing Enterprise Integration Patterns" Collapse section "3. Introducing Enterprise Integration Patterns" 3.1. Overview of the Patterns 4. Defining REST Services Expand section "4. Defining REST Services" Collapse section "4. Defining REST Services" 4.1. Overview of REST in Camel 4.2. Defining Services with REST DSL 4.3. Marshalling to and from Java Objects 4.4. Configuring the REST DSL 4.5. Swagger Integration 5. Messaging Systems Expand section "5. Messaging Systems" Collapse section "5. Messaging Systems" 5.1. Message 5.2. Message Channel 5.3. Message Endpoint 5.4. Pipes and Filters 5.5. Message Router 5.6. Message Translator 5.7. Message History 6. Messaging Channels Expand section "6. Messaging Channels" Collapse section "6. Messaging Channels" 6.1. Point-to-Point Channel 6.2. Publish-Subscribe Channel 6.3. Dead Letter Channel 6.4. Guaranteed Delivery 6.5. Message Bus 7. Message Construction Expand section "7. Message Construction" Collapse section "7. Message Construction" 7.1. Correlation Identifier 7.2. Event Message 7.3. Return Address 8. Message Routing Expand section "8. Message Routing" Collapse section "8. Message Routing" 8.1. Content-Based Router 8.2. Message Filter 8.3. Recipient List 8.4. Splitter 8.5. Aggregator 8.6. Resequencer 8.7. Routing Slip 8.8. Throttler 8.9. Delayer 8.10. Load Balancer 8.11. Hystrix 8.12. Service Call 8.13. Multicast 8.14. Composed Message Processor 8.15. Scatter-Gather 8.16. Loop 8.17. Sampling 8.18. Dynamic Router 9. Message Transformation Expand section "9. Message Transformation" Collapse section "9. Message Transformation" 9.1. Content Enricher 9.2. Content Filter 9.3. Normalizer 9.4. Claim Check 9.5. Sort 9.6. Transformer Expand section "9.6. Transformer" Collapse section "9.6. Transformer" 9.6.1. How the Transformer works? Expand section "9.6.1. How the Transformer works?" Collapse section "9.6.1. How the Transformer works?" 9.6.1.1. Data type format 9.6.1.2. Supported Transformers 9.6.1.3. Common Options 9.6.1.4. DataFormat Transformer Options 9.6.2. Endpoint Transformer Options 9.6.3. Custom Transformer Options 9.6.4. Transformer Example Expand section "9.6.4. Transformer Example" Collapse section "9.6.4. Transformer Example" 9.6.4.1. Part I 9.6.4.2. Part II 9.7. Validator Expand section "9.7. Validator" Collapse section "9.7. Validator" 9.7.1. Data type format 9.7.2. Supported Validators 9.7.3. Common Option 9.7.4. Predicate Validator Option 9.7.5. Endpoint Validator Options 9.7.6. Custom Validator Options 9.7.7. Validator Examples Expand section "9.7.7. Validator Examples" Collapse section "9.7.7. Validator Examples" 9.7.7.1. Part I 9.7.7.2. Part II 9.8. Validate 10. Messaging Endpoints Expand section "10. Messaging Endpoints" Collapse section "10. Messaging Endpoints" 10.1. Messaging Mapper 10.2. Event Driven Consumer 10.3. Polling Consumer 10.4. Competing Consumers 10.5. Message Dispatcher 10.6. Selective Consumer 10.7. Durable Subscriber 10.8. Idempotent Consumer 10.9. Transactional Client 10.10. Messaging Gateway 10.11. Service Activator 11. System Management Expand section "11. System Management" Collapse section "11. System Management" 11.1. Detour 11.2. LogEIP 11.3. Wire Tap II. Routing Expression and Predicate Languages Expand section "II. Routing Expression and Predicate Languages" Collapse section "II. Routing Expression and Predicate Languages" 12. Introduction Expand section "12. Introduction" Collapse section "12. Introduction" 12.1. Overview of the Languages 12.2. How to Invoke an Expression Language 13. Constant 14. EL 15. The File Language Expand section "15. The File Language" Collapse section "15. The File Language" 15.1. When to Use the File Language 15.2. File Variables 15.3. Examples 16. Groovy 17. Header 18. JavaScript 19. JoSQL 20. JsonPath 21. JXPath 22. MVEL 23. The Object-Graph Navigation Language(OGNL) 24. PHP 25. Exchange Property 26. Python 27. Ref 28. Ruby 29. The Simple Language Expand section "29. The Simple Language" Collapse section "29. The Simple Language" 29.1. Java DSL 29.2. XML DSL 29.3. Invoking an External Script 29.4. Expressions 29.5. Predicates 29.6. Variable Reference 29.7. Operator Reference 30. SpEL 31. The XPath Language Expand section "31. The XPath Language" Collapse section "31. The XPath Language" 31.1. Java DSL 31.2. XML DSL 31.3. XPath Injection 31.4. XPath Builder 31.5. Enabling Saxon 31.6. Expressions 31.7. Predicates 31.8. Using Variables and Functions 31.9. Variable Namespaces 31.10. Function Reference 32. XQuery III. Advanced Camel Programming Expand section "III. Advanced Camel Programming" Collapse section "III. Advanced Camel Programming" 33. Understanding Message Formats Expand section "33. Understanding Message Formats" Collapse section "33. Understanding Message Formats" 33.1. Exchanges 33.2. Messages 33.3. Built-In Type Converters 33.4. Built-In UUID Generators 34. Implementing a Processor Expand section "34. Implementing a Processor" Collapse section "34. Implementing a Processor" 34.1. Processing Model 34.2. Implementing a Simple Processor 34.3. Accessing Message Content 34.4. The ExchangeHelper Class 35. Type Converters Expand section "35. Type Converters" Collapse section "35. Type Converters" 35.1. Type Converter Architecture 35.2. Handling Duplicate Type Converters 35.3. Implementing Type Converter Using Annotations 35.4. Implementing a Type Converter Directly 36. Producer and Consumer Templates Expand section "36. Producer and Consumer Templates" Collapse section "36. Producer and Consumer Templates" 36.1. Using the Producer Template Expand section "36.1. Using the Producer Template" Collapse section "36.1. Using the Producer Template" 36.1.1. Introduction to the Producer Template 36.1.2. Synchronous Send 36.1.3. Synchronous Request with InOut Pattern 36.1.4. Asynchronous Send 36.1.5. Asynchronous Request with InOut Pattern 36.1.6. Asynchronous Send with Callback 36.2. Using Fluent Producer Templates 36.3. Using the Consumer Template 37. Implementing a Component Expand section "37. Implementing a Component" Collapse section "37. Implementing a Component" 37.1. Component Architecture Expand section "37.1. Component Architecture" Collapse section "37.1. Component Architecture" 37.1.1. Factory Patterns for a Component 37.1.2. Using a Component in a Route 37.1.3. Consumer Patterns and Threading 37.1.4. Asynchronous Processing 37.2. How to Implement a Component 37.3. Auto-Discovery and Configuration Expand section "37.3. Auto-Discovery and Configuration" Collapse section "37.3. Auto-Discovery and Configuration" 37.3.1. Setting Up Auto-Discovery 37.3.2. Configuring a Component 38. Component Interface Expand section "38. Component Interface" Collapse section "38. Component Interface" 38.1. The Component Interface 38.2. Implementing the Component Interface 39. Endpoint Interface Expand section "39. Endpoint Interface" Collapse section "39. Endpoint Interface" 39.1. The Endpoint Interface 39.2. Implementing the Endpoint Interface 40. Consumer Interface Expand section "40. Consumer Interface" Collapse section "40. Consumer Interface" 40.1. The Consumer Interface 40.2. Implementing the Consumer Interface 41. Producer Interface Expand section "41. Producer Interface" Collapse section "41. Producer Interface" 41.1. The Producer Interface 41.2. Implementing the Producer Interface 42. Exchange Interface Expand section "42. Exchange Interface" Collapse section "42. Exchange Interface" 42.1. The Exchange Interface 43. Message Interface Expand section "43. Message Interface" Collapse section "43. Message Interface" 43.1. The Message Interface 43.2. Implementing the Message Interface IV. The API Component Framework Expand section "IV. The API Component Framework" Collapse section "IV. The API Component Framework" 44. Introduction to the API Component Framework Expand section "44. Introduction to the API Component Framework" Collapse section "44. Introduction to the API Component Framework" 44.1. What is the API Component Framework? 44.2. How to use the Framework 45. Getting Started with the Framework Expand section "45. Getting Started with the Framework" Collapse section "45. Getting Started with the Framework" 45.1. Generate Code with the Maven Archetype 45.2. Generated API Sub-Project 45.3. Generated Component Sub-Project 45.4. Programming Model 45.5. Sample Component Implementations 46. Configuring the API Component Maven Plug-In Expand section "46. Configuring the API Component Maven Plug-In" Collapse section "46. Configuring the API Component Maven Plug-In" 46.1. Overview of the Plug-In Configuration 46.2. Javadoc Options 46.3. Method Aliases 46.4. Nullable Options 46.5. Argument Name Substitution 46.6. Excluded Arguments 46.7. Extra Options Index Legal Notice Settings Close Language: English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Red Hat Training A Red Hat training course is available for Red Hat Fuse Part III. Advanced Camel Programming This guide describes how to use the Apache Camel API. Previous Next