Red Hat JBoss Fuse 6.2 Apache Camel Development Guide Develop applications with Apache Camel Last Updated: 2017-09-26 Red Hat JBoss Fuse 6.2 Apache Camel Development Guide Develop applications with Apache Camel JBoss A-MQ Docs Team Content Services [email protected] Legal Notice Copyright © 2015 Red Hat. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. Abstract REVISIT - Table of Contents Table of Contents .P .A . .R . T. .I .. .I M. .P . L. .E .M . .E . N. .T . I.N . G. . E. .N . T. .E .R . P. .R . I. S. E. . I.N . T. .E . G. .R . A. .T . I.O . N. . P. .A . T. .T . E. R. .N . .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H . A. . P. T. .E . R. . 1. .. B. .U . I.L . D. .I N. .G . .B . L. .O . C. .K . S. .F . O. .R . .R . O. .U . T. .E . .D . E. .F .I .N . I.T . I.O . N. .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. Implementing a RouteBuilder Class 11 1.2. Basic Java DSL Syntax 12 1.3. Router Schema in a Spring XML File 15 1.4. Endpoints 16 1.5. Processors 22 .C .H . A. . P. T. .E . R. . 2. .. B. .A . .S .I .C . .P .R . I. N. .C . I.P . L. E. .S . .O . F. . R . .O . U. .T .E . .B . U. .I .L .D . I. N. .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Pipeline Processing 31 2.2. Multiple Inputs 33 2.3. Exception Handling 37 2.4. Bean Integration 53 2.5. Creating Exchange Instances 64 2.6. Transforming Message Content 65 2.7. Property Placeholders 76 2.8. Threading Model 87 2.9. Controlling Start-Up and Shutdown of Routes 95 2.10. Scheduled Route Policy 100 2.11. Metrics 109 2.12. JMX Naming 112 2.13. Performance and Optimization 114 .C .H . A. . P. T. .E . R. . 3. .. I. N. .T . R. .O . D. .U . C. .I N. .G . .E . N. .T . E. .R . P. R. .I .S . E. .I .N . T. E. .G . R. .A . T. .I O. .N . . P. A. . T. T. .E . R. .N . S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 .5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Overview of the Patterns 115 .C .H . A. . P. T. .E . R. . 4. .. .D . E. .F .I N. . I.N . G. . R. .E . S. T. . S. .E .R . .V . I.C . E. S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 2. .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. Overview of REST in Camel 122 4.2. Defining Services with REST DSL 124 4.3. Marshalling to and from Java Objects 133 4.4. Configuring the REST DSL 142 4.5. Swagger Integration 147 .C .H . A. . P. T. .E . R. . 5. .. M. . E. .S .S . A. .G . I. N. .G . .S .Y . S. .T . E. M. . S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 5. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. Message 150 5.2. Message Channel 151 5.3. Message Endpoint 153 5.4. Pipes and Filters 154 5.5. Message Router 156 5.6. Message Translator 158 5.7. Message History 159 .C .H . A. . P. T. .E . R. . 6. .. M. . E. .S .S . A. .G . I. N. .G . .C .H . .A . N. .N . E. .L .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 6. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. Point-to-Point Channel 160 6.2. Publish-Subscribe Channel 161 6.3. Dead Letter Channel 163 6.4. Guaranteed Delivery 172 6.5. Message Bus 174 .C .H . A. . P. T. .E . R. . 7. .. M. . E. S. .S . A. .G . E. . C. O. . N. .S .T . R. .U . C. .T . I.O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 7. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1. Correlation Identifier 176 7.2. Event Message 176 1 Red Hat JBoss Fuse 6.2 Apache Camel Development Guide 7.3. Return Address 178 .C .H . A. . P. T. .E . R. . 8. .. .M . E. .S .S . A. .G . E. . R. .O . U. .T . I.N . .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 8. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. Content-Based Router 180 8.2. Message Filter 181 8.3. Recipient List 183 8.4. Splitter 192 8.5. Aggregator 202 8.6. Resequencer 221 8.7. Routing Slip 225 8.8. Throttler 228 8.9. Delayer 230 8.10. Load Balancer 232 8.11. Multicast 241 8.12. Composed Message Processor 248 8.13. Scatter-Gather 250 8.14. Loop 253 8.15. Sampling 256 8.16. Dynamic Router 257 .C .H . A. . P. T. .E . R. . 9. .. M. . E. .S .S . A. .G . E. . T. .R . A. .N . S. .F .O . R. .M . .A . T. .I O. .N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. .6 . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. Content Enricher 261 9.2. Content Filter 266 9.3. Normalizer 267 9.4. Claim Check 268 9.5. Sort 270 9.6. Validate 271 .C .H . A. . P. T. .E . R. . 1. 0. .. M. . E. .S .S . A. .G . I. N. .G . .E .N . .D . P. O. . I.N . T. .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 7. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1. Messaging Mapper 273 10.2. Event Driven Consumer 274 10.3. Polling Consumer 274 10.4. Competing Consumers 275 10.5. Message Dispatcher 277 10.6. Selective Consumer 279 10.7. Durable Subscriber 281 10.8. Idempotent Consumer 284 10.9. Transactional Client 289 10.10. Messaging Gateway 290 10.11. Service Activator 291 .C .H . A. . P. T. .E . R. . 1. 1.. .S . Y. .S . T. E. .M . . M. .A . N. . A. .G . E. M. . E. .N . T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 . 9. .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1. Detour 294 11.2. LogEIP 295 11.3. Wire Tap 296 1. SERVICE COMPONENT RUNTIME 301 .P .A . .R . T. .I .I .. R. .O . U. .T . I.N . G. . E. .X . P. .R . E. .S .S . I.O . .N . .A . N. .D . .P . R. .E . D. .I C. .A . T. .E . .L .A . N. .G . U. .A . .G .E . S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 0. .7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H . A. . P. T. .E . R. . 1. 2. .. I. N. .T .R . O. . D. .U . C. .T .I .O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 0. .8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1. OVERVIEW OF THE LANGUAGES 308 12.2. HOW TO INVOKE AN EXPRESSION LANGUAGE 309 .C .H . A. . P. T. .E . R. . 1. 3. .. C. .O . N. .S . T. .A . N. .T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .1 .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 314 2 Table of Contents XML EXAMPLE 314 JAVA EXAMPLE 314 .C .H . A. . P. T. .E . R. . 1. 4. .. E. .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .1 .5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 315 ADDING JUEL PACKAGE 315 STATIC IMPORT 315 VARIABLES 315 EXAMPLE 316 .C .H . A. . P. T. .E . R. . 1. 5. .. T. .H . E. . F. I. L. E. . L. A. .N . .G . U. .A . G. .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .1 .7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1. WHEN TO USE THE FILE LANGUAGE 317 15.2. FILE VARIABLES 318 15.3. EXAMPLES 320 .C .H . A. . P. T. .E . R. . 1. 6. .. G. .R . O. .O . .V . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 323 ADDING THE SCRIPT MODULE 323 STATIC IMPORT 323 BUILT-IN ATTRIBUTES 323 EXAMPLE 324 USING THE PROPERTIES COMPONENT 324 CUSTOMIZING GROOVY SHELL 325 .C .H . A. . P. T. .E . R. . 1. 7. .. H. .E . A. .D . E. .R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 326 XML EXAMPLE 326 JAVA EXAMPLE 326 .C .H . A. . P. T. .E . R. . 1. 8. .. J. .A . V. .A . S. .C . R. .I P. .T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. .7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 327 ADDING THE SCRIPT MODULE 327 STATIC IMPORT 327 BUILT-IN ATTRIBUTES 327 EXAMPLE 328 USING THE PROPERTIES COMPONENT 328 .C .H . A. . P. T. .E . R. . 1. 9. .. J. .O . S. .Q . L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 3. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 330 ADDING THE JOSQL MODULE 330 STATIC IMPORT 330 VARIABLES 330 EXAMPLE 331 .C .H . A. . P. T. .E . R. . 2. 0. .. .J . S. .O . N. .P . A. .T .H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 3. .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 332 ADDING THE JSONPATH PACKAGE 332 JAVA EXAMPLE 332 XML EXAMPLE 332 JSONPATH INJECTION 333 REFERENCE 333 .C .H . A. . P. T. .E . R. . 2. 1. .. J. .X . P. .A . T. H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 3. .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 334 ADDING JXPATH PACKAGE 334 3 Red Hat JBoss Fuse 6.2 Apache Camel Development Guide VARIABLES 334 EXAMPLE 335 .C .H . A. . P. T. .E . R. . 2. 2. .. .M . .V . E. L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 3. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 336 SYNTAX 336 ADDING THE MVEL MODULE 336 BUILT-IN VARIABLES 336 EXAMPLE 337 .C .H . A. . P. T. .E . R. . 2. 3. .. .T . H. .E . .O . B. .J .E . C. .T .- .G . R. .A . P. .H . .N . A. . V. .I G. .A . T. .I O. .N . .L . A. .N . G. .U . A. .G . E. .( .O . G. .N . L. ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 3. .8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 338 ADDING THE OGNL MODULE 338 STATIC IMPORT 338 BUILT-IN VARIABLES 338 EXAMPLE 339 .C .H . A. . P. T. .E . R. . 2. 4. .. .P . H. .P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 340 ADDING THE SCRIPT MODULE 340 STATIC IMPORT 340 BUILT-IN ATTRIBUTES 340 EXAMPLE 341 USING THE PROPERTIES COMPONENT 341 .C .H . A. . P. T. .E . R. . 2. 5. .. .E . X. .C . H. .A . N. .G . E. . P. .R . O. .P . E. R. .T . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 342 XML EXAMPLE 342 JAVA EXAMPLE 342 .C .H . A. . P. T. .E . R. . 2. 6. .. .P . Y. .T . H. .O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 343 ADDING THE SCRIPT MODULE 343 STATIC IMPORT 343 BUILT-IN ATTRIBUTES 343 EXAMPLE 344 USING THE PROPERTIES COMPONENT 344 .C .H . A. . P. T. .E . R. . 2. 7. .. .R . E. .F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 345 STATIC IMPORT 345 XML EXAMPLE 345 JAVA EXAMPLE 345 .C .H . A. . P. T. .E . R. . 2. 8. .. .R . U. .B . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 346 ADDING THE SCRIPT MODULE 346 STATIC IMPORT 346 BUILT-IN ATTRIBUTES 346 EXAMPLE 347 USING THE PROPERTIES COMPONENT 347 .C .H . A. . P. T. .E . R. . 2. 9. .. .T . H. .E . .S .I .M . P. .L . E. .L . A. .N . G. .U . A. .G . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29.1. JAVA DSL 348 29.2. XML DSL 349 4 Table of Contents 29.3. INVOKING AN EXTERNAL SCRIPT 350 29.4. EXPRESSIONS 350 29.5. PREDICATES 353 29.6. VARIABLE REFERENCE 355 29.7. OPERATOR REFERENCE 359 .C .H . A. . P. T. .E . R. . 3. 0. .. .S . P. .E . L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 6. .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 362 SYNTAX 362 ADDING SPEL PACKAGE 362 VARIABLES 362 XML EXAMPLE 363 JAVA EXAMPLE 363 .C .H . A. . P. T. .E . R. . 3. 1. .. T. .H . E. . X. .P . A. .T .H . . L. A. .N . G. .U . A. .G . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 6. .5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1. JAVA DSL 365 31.2. XML DSL 366 31.3. XPATH INJECTION 368 31.4. XPATH BUILDER 369 31.5. ENABLING SAXON 370 31.6. EXPRESSIONS 372 31.7. PREDICATES 375 31.8. USING VARIABLES AND FUNCTIONS 376 31.9. VARIABLE NAMESPACES 377 31.10. FUNCTION REFERENCE 378 .C .H . A. . P. T. .E . R. . 3. 2. .. .X . Q. .U . E. .R . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 8. .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 380 JAVA SYNTAX 380 ADDING THE SAXON MODULE 380 STATIC IMPORT 380 VARIABLES 380 EXAMPLE 381 .P .A . .R . T. .I .I I.. .W . .E . B. . S. E. .R . V. .I .C .E . S. . A. .N . D. . R. .O . U. .T . I. N. .G . .W . I. T. H. . C. .A . M. . E. .L . C. .X . F. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 8. .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H . A. . P. T. .E . R. . 3. 3. .. .D . E. .M . O. . N. .S .T . R. .A . T. .I O. .N . . C. O. . D. .E . F. .O . R. . C. .A . M. . E. L. ./ .C . X. .F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 8. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.1. DOWNLOADING AND INSTALLING THE DEMONSTRATIONS 383 33.2. RUNNING THE DEMONSTRATIONS 383 .C .H . A. . P. T. .E . R. . 3. 4. .. .J . A. .V . A. .- .F .I .R . S. T. . S. .E .R . .V .I .C . E. .I .M . P. .L . E. M. . E. .N . T. A. . T. I. O. .N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 8. .7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.1. JAVA-FIRST OVERVIEW 387 34.2. DEFINE SEI AND RELATED CLASSES 388 34.3. ANNOTATE SEI FOR JAX-WS 391 34.4. INSTANTIATE THE WS ENDPOINT 394 34.5. JAVA-TO-WSDL MAVEN PLUG-IN 396 .C .H . A. . P. T. .E . R. . 3. 5. .. .W . .S .D . .L .- .F .I .R . S. T. . S. .E .R . V. .I .C . E. .I .M . P. .L . E. M. . E. .N . T. A. . T. I. O. .N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 9. .9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.1. WSDL-FIRST OVERVIEW 399 35.2. CUSTOMERSERVICE WSDL CONTRACT 400 35.3. WSDL-TO-JAVA MAVEN PLUG-IN 403 35.4. INSTANTIATE THE WS ENDPOINT 405 35.5. DEPLOY TO AN OSGI CONTAINER 406 .C .H . A. . P. T. .E . R. . 3. 6. .. .I M. . P. .L .E . M. . E. N. .T . I.N . .G . .A . .W . S. . C. .L .I .E .N . .T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 0. .9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Red Hat JBoss Fuse 6.2 Apache Camel Development Guide 36.1. WS CLIENT OVERVIEW 409 36.2. WSDL-TO-JAVA MAVEN PLUG-IN 410 36.3. INSTANTIATE THE WS CLIENT PROXY 412 36.4. INVOKE WS OPERATIONS 414 36.5. DEPLOY TO AN OSGI CONTAINER 414 .C .H . A. . P. T. .E . R. . 3. 7. .. .P . O. .J .O . -. B. .A . S. .E . D. . R. .O . U. .T . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 .1 .7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37.1. PROCESSING MESSAGES IN POJO FORMAT 417 37.2. WSDL-TO-JAVA MAVEN PLUG-IN 418 37.3. INSTANTIATE THE WS ENDPOINT 420 37.4. SORT MESSAGES BY OPERATION NAME 423 37.5. PROCESS OPERATION PARAMETERS 424 37.6. DEPLOY TO OSGI 426 .C .H . A. . P. T. .E . R. . 3. 8. .. .P . A. .Y . L. .O . A. .D . -. B. .A . S. .E .D . . R . .O . U. .T .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 2. .9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.1. PROCESSING MESSAGES IN PAYLOAD FORMAT 429 38.2. INSTANTIATE THE WS ENDPOINT 430 38.3. SORT MESSAGES BY OPERATION NAME 432 38.4. SOAP/HTTP-TO-JMS BRIDGE USE CASE 433 38.5. GENERATING RESPONSES USING TEMPLATES 436 38.6. TYPECONVERTER FOR CXFPAYLOAD 439 38.7. DEPLOY TO OSGI 440 .C .H . A. . P. T. .E . R. . 3. 9. .. .P . R. .O . V. .I D. . E. R. .- .B . A. .S . E. .D . .R . O. .U . T. .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 4. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39.1. PROVIDER-BASED JAX-WS ENDPOINT 443 39.2. CREATE A PROVIDER<?> IMPLEMENTATION CLASS 444 39.3. INSTANTIATE THE WS ENDPOINT 445 39.4. SORT MESSAGES BY OPERATION NAME 446 39.5. SOAP/HTTP-TO-JMS BRIDGE USE CASE 447 39.6. GENERATING RESPONSES USING TEMPLATES 450 39.7. TYPECONVERTER FOR SAXSOURCE 453 39.8. DEPLOY TO OSGI 453 .C .H . A. . P. T. .E . R. . 4. .0 .. . P . R. .O . .X . Y. .I N. .G . .A . .W . .E . B. . S. E. .R . V. .I C. .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 5. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40.1. PROXYING WITH HTTP 456 40.2. PROXYING WITH POJO FORMAT 458 40.3. PROXYING WITH PAYLOAD FORMAT 459 40.4. HANDLING HTTP HEADERS 461 .C .H . A. . P. T. .E . R. . 4. .1 .. F. .I L. .T .E . R. .I .N . G. . S. O. . A. .P . .M . E. .S .S . A. .G . E. . H. .E . A. .D . E. .R . S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 6. .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1. BASIC CONFIGURATION 464 41.2. HEADER FILTERING 466 41.3. IMPLEMENTING A CUSTOM FILTER 467 41.4. INSTALLING FILTERS 470 .P .A . .R . T. .I .V . .. P. R. .O . .G . R. .A . M. .M . .I N. .G . .E . I.P . .C . O. .M . .P .O . .N . E. .N . T. S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .7 .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H . A. . P. T. .E . R. . 4. .2 .. .U . N. . D. .E .R . S. .T . A. .N . D. .I .N . G. . M. .E . S. .S .A . G. .E . .F . O. .R . M. .A . T. .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .7 .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1. EXCHANGES 473 42.2. MESSAGES 474 42.3. BUILT-IN TYPE CONVERTERS 478 42.4. BUILT-IN UUID GENERATORS 480 .C .H . A. . P. T. .E . R. . 4. .3 .. .I .M . P. .L .E . M. . E. N. . T. I. N. .G . .A . .P . R. .O . C. .E .S . S. .O . R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 8. .3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.1. PROCESSING MODEL 483 6
Description: