Red Hat Fuse 7.1 Apache Camel Development Guide En US
User Manual:
Open the PDF directly: View PDF
Page Count: 592 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Table of Contents
- PART I. IMPLEMENTING ENTERPRISE INTEGRATION PATTERNS
- CHAPTER 1. BUILDING BLOCKS FOR ROUTE DEFINITIONS
- CHAPTER 2. BASIC PRINCIPLES OF ROUTE BUILDING
- 2.1. PIPELINE PROCESSING
- 2.2. MULTIPLE INPUTS
- 2.3. EXCEPTION HANDLING
- 2.3.1. onException Clause
- Overview
- Trapping exceptions using onException
- Java DSL example
- XML DSL example
- Trapping multiple exceptions
- Deadletter channel
- Use original message
- Redelivery policy
- Conditional trapping
- Handling exceptions
- Suppressing exception rethrow
- Continuing processing
- Sending a response
- Exception thrown while handling an exception
- Scopes
- Route scope
- 2.3.2. Error Handler
- 2.3.3. doTry, doCatch, and doFinally
- 2.3.4. Propagating SOAP Exceptions
- 2.3.1. onException Clause
- 2.4. BEAN INTEGRATION
- Overview
- Bean registry
- Registry plug-in strategy
- Accessing a bean created in Java
- Accessing overloaded bean methods
- Specify parameters explicitly
- Basic method signatures
- Method signature for processing message bodies
- Method signature for processing exchanges
- Accessing a Spring bean from Spring XML
- Accessing a Spring bean from Java
- Bean shutdown order in Spring XML
- Parameter binding annotations
- Basic annotations
- Expression language annotations
- Inherited annotations
- Interface implementations
- Invoking static methods
- Invoking an OSGi service
- 2.5. CREATING EXCHANGE INSTANCES
- 2.6. TRANSFORMING MESSAGE CONTENT
- 2.7. PROPERTY PLACEHOLDERS
- Overview
- Property files
- Resolving properties
- Specifying locations using system properties and environment variables
- Configuring the properties component
- Placeholder syntax
- Substitution in endpoint URIs
- Substitution in Spring XML files
- Substitution of XML DSL attribute values
- Substitution of Java DSL EIP options
- Substitution in Simple language expressions
- Using Property Placeholders in the XML DSL
- Integration with OSGi blueprint property placeholders
- Implicit blueprint integration
- Explicit blueprint integration
- Integration with Spring property placeholders
- 2.8. THREADING MODEL
- Java thread pool API
- Apache Camel thread pool API
- Component threading model
- Processor threading model
- threads DSL options
- Creating a default thread pool
- Default thread pool profile settings
- Changing the default thread pool profile
- Customizing a processor’s thread pool
- Creating a custom thread pool
- Creating a custom thread pool profile
- Sharing a thread pool between components
- Customizing thread names
- 2.9. CONTROLLING START-UP AND SHUTDOWN OF ROUTES
- 2.10. SCHEDULED ROUTE POLICY
- 2.11. RELOADING CAMEL ROUTES
- 2.12. ONCOMPLETION
- 2.13. METRICS
- 2.14. JMX NAMING
- 2.15. PERFORMANCE AND OPTIMIZATION
- CHAPTER 3. INTRODUCING ENTERPRISE INTEGRATION PATTERNS
- CHAPTER 4. DEFINING REST SERVICES
- 4.1. OVERVIEW OF REST IN CAMEL
- 4.2. DEFINING SERVICES WITH REST DSL
- REST DSL is a facade
- Advantages of the REST DSL
- Components that integrate with REST DSL
- Configuring REST DSL to use a REST implementation
- Syntax
- REST DSL with Java
- REST DSL with XML
- Specifying a base path
- Using Dynamic To
- URI templates
- Embedded route syntax
- REST DSL and HTTP transport component
- Specifying the content type of requests and responses
- Additional HTTP methods
- Defining custom HTTP error messages
- Parameter Default Values
- Wrapping a JsonParserException in a custom HTTP error message
- REST DSL options
- 4.3. MARSHALLING TO AND FROM JAVA OBJECTS
- Marshalling Java objects for transmission over HTTP
- Integration of JSON and JAXB with the REST DSL
- Supported data format components
- How to enable object marshalling
- Configuring the binding mode
- Example
- Configure the Servlet component as the REST implementation
- Required dependencies
- Java type for responses
- Sample REST DSL route with JSON binding
- REST operations
- URLs to invoke the REST service
- 4.4. CONFIGURING THE REST DSL
- 4.5. SWAGGER INTEGRATION
- CHAPTER 5. MESSAGING SYSTEMS
- CHAPTER 6. MESSAGING CHANNELS
- 6.1. POINT-TO-POINT CHANNEL
- 6.2. PUBLISH-SUBSCRIBE CHANNEL
- 6.3. DEAD LETTER CHANNEL
- Overview
- Creating a dead letter channel in Java DSL
- XML DSL example
- Redelivery policy
- Redelivery headers
- Redelivery exchange properties
- Using the original message
- Redeliver delay pattern
- Which endpoint failed?
- onRedelivery processor
- Control redelivery during shutdown or stopping
- Using onExceptionOccurred Processor
- onException clause
- OnPrepareFailure
- 6.4. GUARANTEED DELIVERY
- 6.5. MESSAGE BUS
- CHAPTER 7. MESSAGE CONSTRUCTION
- CHAPTER 8. MESSAGE ROUTING
- 8.1. CONTENT-BASED ROUTER
- 8.2. MESSAGE FILTER
- 8.3. RECIPIENT LIST
- Overview
- Recipient list with fixed destinations
- Java DSL example
- XML configuration example
- Recipient list calculated at run time
- Java DSL example
- XML configuration example
- Sending to multiple recipients in parallel
- Stop on exception
- Ignore invalid endpoints
- Using custom AggregationStrategy
- Using custom thread pool
- Using method call as recipient list
- Bean as recipient list
- Using timeout
- Apply custom processing to the outgoing messages
- Options
- Using Exchange Pattern in Recipient List
- 8.4. SPLITTER
- Overview
- Java DSL example
- XML configuration example
- Splitting into groups of lines
- Skip first item
- Splitter reply
- Parallel execution
- Using a bean to perform splitting
- Exchange properties
- Splitter/aggregator pattern
- Java DSL example
- AggregationStrategy implementation
- Stream based processing
- Stream based processing with XML
- Options
- 8.5. AGGREGATOR
- Overview
- How the aggregator works
- Java DSL example
- XML DSL example
- Specifying the correlation expression
- Specifying the aggregation strategy
- Implementing a custom aggregation strategy
- Controlling the lifecycle of a custom aggregation strategy
- Exchange properties
- Specifying a completion condition
- Specifying the completion predicate
- Specifying a dynamic completion timeout
- Specifying a dynamic completion size
- Forcing completion of a single group from within an AggregationStrategy
- Forcing completion of all groups with a special message
- Using AggregateController
- Enforcing unique correlation keys
- Stream based processing using Simple expressions
- Grouped exchanges
- Batch consumer
- Persistent aggregation repository
- Threading options
- Aggregating into a List
- Aggregator options
- 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
- @DYNAMICROUTER ANNOTATION
- CHAPTER 9. SAGA EIP
- CHAPTER 10. MESSAGE TRANSFORMATION
- 10.1. CONTENT ENRICHER
- Overview
- Alternatives for enriching content
- Using message translators and processors to enrich content
- Using the enrich() method to enrich content
- Spring XML enrich example
- Default aggregation strategy when enriching content
- Options supported by the enrich() method
- Specifying an aggregation strategy when using the enrich() method
- Using dynamic URIs with enrich()
- Using the pollEnrich() method to enrich content
- Polling methods used by pollEnrich()
- Examples of using the pollEnrich() method
- Using dynamic URIs with pollEnrich()
- Options supported by the pollEnrich() method
- 10.2. CONTENT FILTER
- 10.3. NORMALIZER
- 10.4. CLAIM CHECK
- 10.5. SORT
- 10.6. TRANSFORMER
- 10.7. VALIDATOR
- 10.8. VALIDATE
- 10.1. CONTENT ENRICHER
- CHAPTER 11. MESSAGING ENDPOINTS
- CHAPTER 12. SYSTEM MANAGEMENT
- PART II. ROUTING EXPRESSION AND PREDICATE LANGUAGES
- CHAPTER 13. INTRODUCTION
- CHAPTER 14. CONSTANT
- CHAPTER 15. EL
- CHAPTER 16. THE FILE LANGUAGE
- CHAPTER 17. GROOVY
- CHAPTER 18. HEADER
- CHAPTER 19. JAVASCRIPT
- CHAPTER 20. JOSQL
- CHAPTER 21. JSONPATH
- CHAPTER 22. JXPATH
- CHAPTER 23. MVEL
- CHAPTER 24. THE OBJECT-GRAPH NAVIGATION LANGUAGE(OGNL)
- CHAPTER 25. PHP
- CHAPTER 26. EXCHANGE PROPERTY
- CHAPTER 27. PYTHON
- CHAPTER 28. REF
- CHAPTER 29. RUBY
- CHAPTER 30. THE SIMPLE LANGUAGE
- CHAPTER 31. SPEL
- CHAPTER 32. THE XPATH LANGUAGE
- CHAPTER 33. XQUERY
- PART III. ADVANCED CAMEL PROGRAMMING
- CHAPTER 34. UNDERSTANDING MESSAGE FORMATS
- CHAPTER 35. IMPLEMENTING A PROCESSOR
- CHAPTER 36. TYPE CONVERTERS
- CHAPTER 37. PRODUCER AND CONSUMER TEMPLATES
- 37.1. USING THE PRODUCER TEMPLATE
- 37.2. USING FLUENT PRODUCER TEMPLATES
- 37.3. USING THE CONSUMER TEMPLATE
- CHAPTER 38. IMPLEMENTING A COMPONENT
- CHAPTER 39. COMPONENT INTERFACE
- CHAPTER 40. ENDPOINT INTERFACE
- CHAPTER 41. CONSUMER INTERFACE
- CHAPTER 42. PRODUCER INTERFACE
- CHAPTER 43. EXCHANGE INTERFACE
- CHAPTER 44. MESSAGE INTERFACE
- PART IV. THE API COMPONENT FRAMEWORK
- CHAPTER 45. INTRODUCTION TO THE API COMPONENT FRAMEWORK
- CHAPTER 46. GETTING STARTED WITH THE FRAMEWORK
- 46.1. GENERATE CODE WITH THE MAVEN ARCHETYPE
- 46.2. GENERATED API SUB-PROJECT
- 46.3. GENERATED COMPONENT SUB-PROJECT
- Overview
- Providing the Java API in the component POM
- Providing the Javadoc metadata in the component POM
- Defining the file metadata for Example File Hello
- Configuring the API mapping
- Generated component implementation
- ExampleComponent class
- ExampleEndpoint class
- ExampleConsumer class
- ExampleProducer class
- ExampleConfiguration class
- URI format
- Default component instance
- 46.4. PROGRAMMING MODEL
- 46.5. SAMPLE COMPONENT IMPLEMENTATIONS
- CHAPTER 47. CONFIGURING THE API COMPONENT MAVEN PLUG-IN
- INDEX