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. OnCompletion 2.12. Metrics 2.13. JMX Naming 2.14. 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 12. Service Component Runtime II. Routing Expression and Predicate Languages Expand section "II. Routing Expression and Predicate Languages" Collapse section "II. Routing Expression and Predicate Languages" 13. Introduction Expand section "13. Introduction" Collapse section "13. Introduction" 13.1. Overview of the Languages 13.2. How to Invoke an Expression Language 14. Constant 15. EL 16. The File Language Expand section "16. The File Language" Collapse section "16. The File Language" 16.1. When to Use the File Language 16.2. File Variables 16.3. Examples 17. Groovy 18. Header 19. JavaScript 20. JoSQL 21. JSonPath 22. JXPath 23. MVEL 24. The Object-Graph Navigation Language(OGNL) 25. PHP 26. Exchange Property 27. Python 28. Ref 29. Ruby 30. The Simple Language Expand section "30. The Simple Language" Collapse section "30. The Simple Language" 30.1. Java DSL 30.2. XML DSL 30.3. Invoking an External Script 30.4. Expressions 30.5. Predicates 30.6. Variable Reference 30.7. Operator Reference 31. SpEL 32. The XPath Language Expand section "32. The XPath Language" Collapse section "32. The XPath Language" 32.1. Java DSL 32.2. XML DSL 32.3. XPath Injection 32.4. XPath Builder 32.5. Enabling Saxon 32.6. Expressions 32.7. Predicates 32.8. Using Variables and Functions 32.9. Variable Namespaces 32.10. Function Reference 33. 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" 34. Demonstration Code for Camel/CXF Expand section "34. Demonstration Code for Camel/CXF" Collapse section "34. Demonstration Code for Camel/CXF" 34.1. Downloading and Installing the Demonstrations 34.2. Running the Demonstrations 35. Java-First Service Implementation Expand section "35. Java-First Service Implementation" Collapse section "35. Java-First Service Implementation" 35.1. Java-First Overview 35.2. Define SEI and Related Classes 35.3. Annotate SEI for JAX-WS 35.4. Instantiate the WS Endpoint 35.5. Java-to-WSDL Maven Plug-In 36. WSDL-First Service Implementation Expand section "36. WSDL-First Service Implementation" Collapse section "36. WSDL-First Service Implementation" 36.1. WSDL-First Overview 36.2. CustomerService WSDL Contract 36.3. WSDL-to-Java Maven Plug-In 36.4. Instantiate the WS Endpoint 36.5. Deploy to an OSGi Container 37. Implementing a WS Client Expand section "37. Implementing a WS Client" Collapse section "37. Implementing a WS Client" 37.1. WS Client Overview 37.2. WSDL-to-Java Maven Plug-In 37.3. Instantiate the WS Client Proxy 37.4. Invoke WS Operations 37.5. Deploy to an OSGi Container 38. Pojo-Based Route Expand section "38. Pojo-Based Route" Collapse section "38. Pojo-Based Route" 38.1. Processing Messages in POJO Format 38.2. WSDL-to-Java Maven Plug-In 38.3. Instantiate the WS Endpoint 38.4. Sort Messages by Operation Name 38.5. Process Operation Parameters 38.6. Deploy to OSGi 39. Payload-Based Route Expand section "39. Payload-Based Route" Collapse section "39. Payload-Based Route" 39.1. Processing Messages in PAYLOAD Format 39.2. Stream Caching 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 CXFPayload 39.8. Deploy to OSGi 40. Provider-Based Route Expand section "40. Provider-Based Route" Collapse section "40. Provider-Based Route" 40.1. Provider-Based JAX-WS Endpoint 40.2. Create a Provider<?> Implementation Class 40.3. Instantiate the WS Endpoint 40.4. Sort Messages by Operation Name 40.5. SOAP/HTTP-to-JMS Bridge Use Case 40.6. Generating Responses Using Templates 40.7. TypeConverter for SAXSource 40.8. Deploy to OSGi 41. Proxying a Web Service Expand section "41. Proxying a Web Service" Collapse section "41. Proxying a Web Service" 41.1. Proxying with HTTP 41.2. Proxying with POJO Format 41.3. Proxying with PAYLOAD Format 41.4. Handling HTTP Headers 42. Filtering SOAP Message Headers Expand section "42. Filtering SOAP Message Headers" Collapse section "42. Filtering SOAP Message Headers" 42.1. Basic Configuration 42.2. Header Filtering 42.3. Implementing a Custom Filter 42.4. Installing Filters IV. Programming EIP Components Expand section "IV. Programming EIP Components" Collapse section "IV. Programming EIP Components" 43. Understanding Message Formats Expand section "43. Understanding Message Formats" Collapse section "43. Understanding Message Formats" 43.1. Exchanges 43.2. Messages 43.3. Built-In Type Converters 43.4. Built-In UUID Generators 44. Implementing a Processor Expand section "44. Implementing a Processor" Collapse section "44. Implementing a Processor" 44.1. Processing Model 44.2. Implementing a Simple Processor 44.3. Accessing Message Content 44.4. The ExchangeHelper Class 45. Type Converters Expand section "45. Type Converters" Collapse section "45. Type Converters" 45.1. Type Converter Architecture 45.2. Handling Duplicate Type Converters 45.3. Implementing Type Converter Using Annotations 45.4. Implementing a Type Converter Directly 46. Producer and Consumer Templates Expand section "46. Producer and Consumer Templates" Collapse section "46. Producer and Consumer Templates" 46.1. Using the Producer Template Expand section "46.1. Using the Producer Template" Collapse section "46.1. Using the Producer Template" 46.1.1. Introduction to the Producer Template 46.1.2. Synchronous Send 46.1.3. Synchronous Request with InOut Pattern 46.1.4. Asynchronous Send 46.1.5. Asynchronous Request with InOut Pattern 46.1.6. Asynchronous Send with Callback 46.2. Using the Consumer Template 47. Implementing a Component Expand section "47. Implementing a Component" Collapse section "47. Implementing a Component" 47.1. Component Architecture Expand section "47.1. Component Architecture" Collapse section "47.1. Component Architecture" 47.1.1. Factory Patterns for a Component 47.1.2. Using a Component in a Route 47.1.3. Consumer Patterns and Threading 47.1.4. Asynchronous Processing 47.2. How to Implement a Component 47.3. Auto-Discovery and Configuration Expand section "47.3. Auto-Discovery and Configuration" Collapse section "47.3. Auto-Discovery and Configuration" 47.3.1. Setting Up Auto-Discovery 47.3.2. Configuring a Component 48. Component Interface Expand section "48. Component Interface" Collapse section "48. Component Interface" 48.1. The Component Interface 48.2. Implementing the Component Interface 49. Endpoint Interface Expand section "49. Endpoint Interface" Collapse section "49. Endpoint Interface" 49.1. The Endpoint Interface 49.2. Implementing the Endpoint Interface 50. Consumer Interface Expand section "50. Consumer Interface" Collapse section "50. Consumer Interface" 50.1. The Consumer Interface 50.2. Implementing the Consumer Interface 51. Producer Interface Expand section "51. Producer Interface" Collapse section "51. Producer Interface" 51.1. The Producer Interface 51.2. Implementing the Producer Interface 52. Exchange Interface Expand section "52. Exchange Interface" Collapse section "52. Exchange Interface" 52.1. The Exchange Interface 53. Message Interface Expand section "53. Message Interface" Collapse section "53. Message Interface" 53.1. The Message Interface 53.2. Implementing the Message Interface V. The API Component Framework Expand section "V. The API Component Framework" Collapse section "V. The API Component Framework" 54. Introduction to the API Component Framework Expand section "54. Introduction to the API Component Framework" Collapse section "54. Introduction to the API Component Framework" 54.1. What is the API Component Framework? 54.2. How to use the Framework 55. Getting Started with the Framework Expand section "55. Getting Started with the Framework" Collapse section "55. Getting Started with the Framework" 55.1. Generate Code with the Maven Archetype 55.2. Generated API Sub-Project 55.3. Generated Component Sub-Project 55.4. Programming Model 55.5. Sample Component Implementations 56. Configuring the API Component Maven Plug-In Expand section "56. Configuring the API Component Maven Plug-In" Collapse section "56. Configuring the API Component Maven Plug-In" 56.1. Overview of the Plug-In Configuration 56.2. Javadoc Options 56.3. Method Aliases 56.4. Nullable Options 56.5. Argument Name Substitution 56.6. Excluded Arguments 56.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