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 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. Metrics 2.12. JMX Naming 2.13. 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. Multicast 8.12. Composed Message Processor 8.13. Scatter-Gather 8.14. Loop 8.15. Sampling 8.16. 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. 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. Web Services and Routing with Camel CXF Expand section "III. Web Services and Routing with Camel CXF" Collapse section "III. Web Services and Routing with Camel CXF" 33. Demonstration Code for Camel/CXF Expand section "33. Demonstration Code for Camel/CXF" Collapse section "33. Demonstration Code for Camel/CXF" 33.1. Downloading and Installing the Demonstrations 33.2. Running the Demonstrations 34. Java-First Service Implementation Expand section "34. Java-First Service Implementation" Collapse section "34. Java-First Service Implementation" 34.1. Java-First Overview 34.2. Define SEI and Related Classes 34.3. Annotate SEI for JAX-WS 34.4. Instantiate the WS Endpoint 34.5. Java-to-WSDL Maven Plug-In 35. WSDL-First Service Implementation Expand section "35. WSDL-First Service Implementation" Collapse section "35. WSDL-First Service Implementation" 35.1. WSDL-First Overview 35.2. CustomerService WSDL Contract 35.3. WSDL-to-Java Maven Plug-In 35.4. Instantiate the WS Endpoint 35.5. Deploy to an OSGi Container 36. Implementing a WS Client Expand section "36. Implementing a WS Client" Collapse section "36. Implementing a WS Client" 36.1. WS Client Overview 36.2. WSDL-to-Java Maven Plug-In 36.3. Instantiate the WS Client Proxy 36.4. Invoke WS Operations 36.5. Deploy to an OSGi Container 37. Pojo-Based Route Expand section "37. Pojo-Based Route" Collapse section "37. Pojo-Based Route" 37.1. Processing Messages in POJO Format 37.2. WSDL-to-Java Maven Plug-In 37.3. Instantiate the WS Endpoint 37.4. Sort Messages by Operation Name 37.5. Process Operation Parameters 37.6. Deploy to OSGi 38. Payload-Based Route Expand section "38. Payload-Based Route" Collapse section "38. Payload-Based Route" 38.1. Processing Messages in PAYLOAD Format 38.2. Instantiate the WS Endpoint 38.3. Sort Messages by Operation Name 38.4. SOAP/HTTP-to-JMS Bridge Use Case 38.5. Generating Responses Using Templates 38.6. TypeConverter for CXFPayload 38.7. Deploy to OSGi 39. Provider-Based Route Expand section "39. Provider-Based Route" Collapse section "39. Provider-Based Route" 39.1. Provider-Based JAX-WS Endpoint 39.2. Create a Provider<?> Implementation Class 39.3. Instantiate the WS Endpoint 39.4. Sort Messages by Operation Name 39.5. SOAP/HTTP-to-JMS Bridge Use Case 39.6. Generating Responses Using Templates 39.7. TypeConverter for SAXSource 39.8. Deploy to OSGi 40. Proxying a Web Service Expand section "40. Proxying a Web Service" Collapse section "40. Proxying a Web Service" 40.1. Proxying with HTTP 40.2. Proxying with POJO Format 40.3. Proxying with PAYLOAD Format 40.4. Handling HTTP Headers 41. Filtering SOAP Message Headers Expand section "41. Filtering SOAP Message Headers" Collapse section "41. Filtering SOAP Message Headers" 41.1. Basic Configuration 41.2. Header Filtering 41.3. Implementing a Custom Filter 41.4. Installing Filters IV. Programming EIP Components Expand section "IV. Programming EIP Components" Collapse section "IV. Programming EIP Components" 42. Understanding Message Formats Expand section "42. Understanding Message Formats" Collapse section "42. Understanding Message Formats" 42.1. Exchanges 42.2. Messages 42.3. Built-In Type Converters 42.4. Built-In UUID Generators 43. Implementing a Processor Expand section "43. Implementing a Processor" Collapse section "43. Implementing a Processor" 43.1. Processing Model 43.2. Implementing a Simple Processor 43.3. Accessing Message Content 43.4. The ExchangeHelper Class 44. Type Converters Expand section "44. Type Converters" Collapse section "44. Type Converters" 44.1. Type Converter Architecture 44.2. Implementing Type Converter Using Annotations 44.3. Implementing a Type Converter Directly 45. Producer and Consumer Templates Expand section "45. Producer and Consumer Templates" Collapse section "45. Producer and Consumer Templates" 45.1. Using the Producer Template Expand section "45.1. Using the Producer Template" Collapse section "45.1. Using the Producer Template" 45.1.1. Introduction to the Producer Template 45.1.2. Synchronous Send 45.1.3. Synchronous Request with InOut Pattern 45.1.4. Asynchronous Send 45.1.5. Asynchronous Request with InOut Pattern 45.1.6. Asynchronous Send with Callback 45.2. Using the Consumer Template 46. Implementing a Component Expand section "46. Implementing a Component" Collapse section "46. Implementing a Component" 46.1. Component Architecture Expand section "46.1. Component Architecture" Collapse section "46.1. Component Architecture" 46.1.1. Factory Patterns for a Component 46.1.2. Using a Component in a Route 46.1.3. Consumer Patterns and Threading 46.1.4. Asynchronous Processing 46.2. How to Implement a Component 46.3. Auto-Discovery and Configuration Expand section "46.3. Auto-Discovery and Configuration" Collapse section "46.3. Auto-Discovery and Configuration" 46.3.1. Setting Up Auto-Discovery 46.3.2. Configuring a Component 47. Component Interface Expand section "47. Component Interface" Collapse section "47. Component Interface" 47.1. The Component Interface 47.2. Implementing the Component Interface 48. Endpoint Interface Expand section "48. Endpoint Interface" Collapse section "48. Endpoint Interface" 48.1. The Endpoint Interface 48.2. Implementing the Endpoint Interface 49. Consumer Interface Expand section "49. Consumer Interface" Collapse section "49. Consumer Interface" 49.1. The Consumer Interface 49.2. Implementing the Consumer Interface 50. Producer Interface Expand section "50. Producer Interface" Collapse section "50. Producer Interface" 50.1. The Producer Interface 50.2. Implementing the Producer Interface 51. Exchange Interface Expand section "51. Exchange Interface" Collapse section "51. Exchange Interface" 51.1. The Exchange Interface 52. Message Interface Expand section "52. Message Interface" Collapse section "52. Message Interface" 52.1. The Message Interface 52.2. Implementing the Message Interface V. The API Component Framework Expand section "V. The API Component Framework" Collapse section "V. The API Component Framework" 53. Introduction to the API Component Framework Expand section "53. Introduction to the API Component Framework" Collapse section "53. Introduction to the API Component Framework" 53.1. What is the API Component Framework? 53.2. How to use the Framework 54. Getting Started with the Framework Expand section "54. Getting Started with the Framework" Collapse section "54. Getting Started with the Framework" 54.1. Generate Code with the Maven Archetype 54.2. Generated API Sub-Project 54.3. Generated Component Sub-Project 54.4. Programming Model 54.5. Sample Component Implementations 55. Configuring the API Component Maven Plug-In Expand section "55. Configuring the API Component Maven Plug-In" Collapse section "55. Configuring the API Component Maven Plug-In" 55.1. Overview of the Plug-In Configuration 55.2. Javadoc Options 55.3. Method Aliases 55.4. Nullable Options 55.5. Argument Name Substitution 55.6. Excluded Arguments 55.7. Extra Options Index Trademark Disclaimer 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 IV. Programming EIP Components Abstract This guide describes how to use the Apache Camel API. Previous Next