Red Hat JBoss Fuse 6.3 Apache Camel Development Guide Develop applications with Apache Camel Last Updated: 2020-10-26 Red Hat JBoss Fuse 6.3 Apache Camel Development Guide Develop applications with Apache Camel JBoss A-MQ Docs Team Content Services [email protected] Legal Notice Copyright © 2016 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, the Red Hat 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 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 This guide describes how to develop JBoss Fuse applications with Apache Camel. It covers the basic building blocks, enterprise integration patterns, basic syntax for routing expression and predicate languages, creating web services with the Apache CXF component, using the Apache Camel API, and how to create a Camel component that wraps any Java API. 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 75 2.8. THREADING MODEL 85 2.9. CONTROLLING START-UP AND SHUTDOWN OF ROUTES 94 2.10. SCHEDULED ROUTE POLICY 98 2.11. ONCOMPLETION 108 2.12. METRICS 111 2.13. JMX NAMING 113 2.14. PERFORMANCE AND OPTIMIZATION 115 .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. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. OVERVIEW OF THE PATTERNS 116 .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 . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. OVERVIEW OF REST IN CAMEL 123 4.2. DEFINING SERVICES WITH REST DSL 125 4.3. MARSHALLING TO AND FROM JAVA OBJECTS 135 4.4. CONFIGURING THE REST DSL 144 4.5. SWAGGER INTEGRATION 149 .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 . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. MESSAGE 155 5.2. MESSAGE CHANNEL 156 5.3. MESSAGE ENDPOINT 158 5.4. PIPES AND FILTERS 161 5.5. MESSAGE ROUTER 163 5.6. MESSAGE TRANSLATOR 164 5.7. MESSAGE HISTORY 165 .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 . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. POINT-TO-POINT CHANNEL 167 6.2. PUBLISH-SUBSCRIBE CHANNEL 168 6.3. DEAD LETTER CHANNEL 170 6.4. GUARANTEED DELIVERY 180 6.5. MESSAGE BUS 182 .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 .8 .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1. CORRELATION IDENTIFIER 184 1 Red Hat JBoss Fuse 6.3 Apache Camel Development Guide 7.2. EVENT MESSAGE 184 7.3. RETURN ADDRESS 186 .C . H. .A . P. .T .E . R. . 8. .. .M . E. .S . S. .A .G . .E . .R .O . .U . T. .I N. .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 .8 .8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. CONTENT-BASED ROUTER 188 8.2. MESSAGE FILTER 189 8.3. RECIPIENT LIST 191 8.4. SPLITTER 200 8.5. AGGREGATOR 210 8.6. RESEQUENCER 230 8.7. ROUTING SLIP 233 8.8. THROTTLER 236 8.9. DELAYER 238 8.10. LOAD BALANCER 240 8.11. MULTICAST 249 8.12. COMPOSED MESSAGE PROCESSOR 256 8.13. SCATTER-GATHER 257 8.14. LOOP 260 8.15. SAMPLING 263 8.16. DYNAMIC ROUTER 265 .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 . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. CONTENT ENRICHER 269 9.2. CONTENT FILTER 274 9.3. NORMALIZER 275 9.4. CLAIM CHECK 276 9.5. SORT 278 9.6. VALIDATE 280 .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 .8 . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1. MESSAGING MAPPER 282 10.2. EVENT DRIVEN CONSUMER 283 10.3. POLLING CONSUMER 283 10.4. COMPETING CONSUMERS 284 10.5. MESSAGE DISPATCHER 286 10.6. SELECTIVE CONSUMER 288 10.7. DURABLE SUBSCRIBER 290 10.8. IDEMPOTENT CONSUMER 293 10.9. TRANSACTIONAL CLIENT 299 10.10. MESSAGING GATEWAY 300 10.11. SERVICE ACTIVATOR 300 .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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .0 . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1. DETOUR 303 11.2. LOGEIP 304 11.3. WIRE TAP 305 .C . H. .A . P. .T .E . R. . 1.2 . .. S. .E .R . V. .I C. .E . .C . O. . M. .P . O. . N. .E . N. .T . .R .U . .N . T. .I M. .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .1 .1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ABSTRACT 311 WORKING WITH CAMEL AND SCR 311 CREATING A SERVICE COMPONENT 311 EXAMPLE OF A SERVICE COMPONENT CLASS 312 EXAMPLE OF A ROUTEBUILDER CLASS 313 USING APACHE CAMEL SCR BUNDLE AS A TEMPLATE 314 2 Table of Contents USING APACHE CAMEL-ARCHETYPE-SCR 314 .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. 1. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C . H. .A . P. .T .E . R. . 1.3 . .. I.N . T. .R . O. .D . .U . C. .T .I .O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 1.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1. OVERVIEW OF THE LANGUAGES 318 13.2. HOW TO INVOKE AN EXPRESSION LANGUAGE 319 .C . H. .A . P. .T .E . R. . 1.4 . .. C. .O . .N . S. .T .A . N. . T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .2 . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 324 XML EXAMPLE 324 JAVA EXAMPLE 324 .C . H. .A . P. .T .E . R. . 1.5 . .. E. .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .2 . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 325 ADDING JUEL PACKAGE 325 STATIC IMPORT 325 VARIABLES 325 EXAMPLE 326 .C . H. .A . P. .T .E . R. . 1.6 . .. T. .H . E. . F. I.L . E. . L. .A .N . .G . U. .A . G. . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .2 . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.1. WHEN TO USE THE FILE LANGUAGE 327 16.2. FILE VARIABLES 328 16.3. EXAMPLES 330 .C . H. .A . P. .T .E . R. . 1.7 . .. G. .R . O. . O. .V . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .3 . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 333 ADDING THE SCRIPT MODULE 333 STATIC IMPORT 333 BUILT-IN ATTRIBUTES 333 EXAMPLE 334 USING THE PROPERTIES COMPONENT 334 CUSTOMIZING GROOVY SHELL 334 .C . H. .A . P. .T .E . R. . 1.8 . .. H. .E . A. .D . E. .R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .3 . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 336 XML EXAMPLE 336 JAVA EXAMPLE 336 .C . H. .A . P. .T .E . R. . 1.9 . .. J. .A . V. .A . S. C. .R . I.P . T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .3 . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 337 ADDING THE SCRIPT MODULE 337 STATIC IMPORT 337 BUILT-IN ATTRIBUTES 337 EXAMPLE 338 USING THE PROPERTIES COMPONENT 338 .C . H. .A . P. .T .E . R. . 2. 0. .. .J . O. .S . Q. .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .3 . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 339 ADDING THE JOSQL MODULE 339 STATIC IMPORT 339 VARIABLES 339 EXAMPLE 340 .C . H. .A . P. .T .E . R. . 2. 1. .. J. S. .O . .N . P. .A . T. H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . 4. .1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 341 3 Red Hat JBoss Fuse 6.3 Apache Camel Development Guide ADDING THE JSONPATH PACKAGE 341 JAVA EXAMPLE 341 XML EXAMPLE 341 SUPPRESS EXCEPTIONS 342 JSONPATH INJECTION 342 INTEGRATING JACKSON WITH CAMEL TYPECONVERTERS 343 REFERENCE 343 .C . H. .A . P. .T .E . R. . 2. 2. .. .J .X . P. .A . T. .H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .4 .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 344 ADDING JXPATH PACKAGE 344 VARIABLES 344 EXAMPLE 345 .C . H. .A . P. .T .E . R. . 2. 3. .. .M . .V . E. L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .4 .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 346 SYNTAX 346 ADDING THE MVEL MODULE 346 BUILT-IN VARIABLES 346 EXAMPLE 347 .C . H. .A . P. .T .E . R. . 2. 4. .. .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. .4 .8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 348 CAMEL ON EAP DEPLOYMENT 348 ADDING THE OGNL MODULE 348 STATIC IMPORT 348 BUILT-IN VARIABLES 348 EXAMPLE 349 .C . H. .A . P. .T .E . R. . 2. 5. .. .P . H. .P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .5 .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 350 ADDING THE SCRIPT MODULE 350 STATIC IMPORT 350 BUILT-IN ATTRIBUTES 350 EXAMPLE 351 USING THE PROPERTIES COMPONENT 351 .C . H. .A . P. .T .E . R. . 2. 6. .. .E . X. .C . H. .A . N. .G . .E . P. .R . O. . P. E. .R . T. .Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .5 . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 352 XML EXAMPLE 352 JAVA EXAMPLE 352 .C . H. .A . P. .T .E . R. . 2. 7. .. .P . Y. .T .H . .O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .5 . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 353 ADDING THE SCRIPT MODULE 353 STATIC IMPORT 353 BUILT-IN ATTRIBUTES 353 EXAMPLE 354 USING THE PROPERTIES COMPONENT 354 .C . H. .A . P. .T .E . R. . 2. 8. .. .R . E. .F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .5 . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 355 STATIC IMPORT 355 XML EXAMPLE 355 JAVA EXAMPLE 355 4 Table of Contents .C . H. .A . P. .T .E . R. . 2. 9. .. .R . U. .B . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .5 . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 356 ADDING THE SCRIPT MODULE 356 STATIC IMPORT 356 BUILT-IN ATTRIBUTES 356 EXAMPLE 357 USING THE PROPERTIES COMPONENT 357 .C . H. .A . P. .T .E . R. . 3. 0. .. .T . H. .E . .S . I.M . .P . L. E. . L. .A . N. .G . U. .A . G. . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .5 . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30.1. JAVA DSL 358 30.2. XML DSL 359 30.3. INVOKING AN EXTERNAL SCRIPT 360 30.4. EXPRESSIONS 360 30.5. PREDICATES 363 30.6. VARIABLE REFERENCE 365 30.7. OPERATOR REFERENCE 369 .C . H. .A . P. .T .E . R. . 3. 1. .. S. .P . E. L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .7 . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 372 SYNTAX 372 ADDING SPEL PACKAGE 372 VARIABLES 372 XML EXAMPLE 373 JAVA EXAMPLE 373 .C . H. .A . P. .T .E . R. . 3. 2. .. .T . H. .E . .X .P . A. .T . H. . L. .A . N. .G . .U . A. .G . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 .7 . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1. JAVA DSL 375 32.2. XML DSL 376 32.3. XPATH INJECTION 378 32.4. XPATH BUILDER 379 32.5. ENABLING SAXON 380 32.6. EXPRESSIONS 381 32.7. PREDICATES 385 32.8. USING VARIABLES AND FUNCTIONS 386 32.9. VARIABLE NAMESPACES 387 32.10. FUNCTION REFERENCE 388 .C . H. .A . P. .T .E . R. . 3. 3. .. .X . Q. .U . .E .R . Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. .8 .9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 389 JAVA SYNTAX 389 ADDING THE SAXON MODULE 389 CAMEL ON EAP DEPLOYMENT 389 STATIC IMPORT 389 VARIABLES 390 EXAMPLE 390 .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 . 9. .1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C . H. .A . P. .T .E . R. . 3. 4. .. .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 .9 . 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.1. DOWNLOADING AND INSTALLING THE DEMONSTRATIONS 392 34.2. RUNNING THE DEMONSTRATIONS 392 .C . H. .A . P. .T .E . R. . 3. 5. .. .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 .9 . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.1. JAVA-FIRST OVERVIEW 395 35.2. DEFINE SEI AND RELATED CLASSES 396 5 Red Hat JBoss Fuse 6.3 Apache Camel Development Guide 35.3. ANNOTATE SEI FOR JAX-WS 399 35.4. INSTANTIATE THE WS ENDPOINT 402 35.5. JAVA-TO-WSDL MAVEN PLUG-IN 404 .C . H. .A . P. .T .E . R. . 3. 6. .. .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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 0. .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36.1. WSDL-FIRST OVERVIEW 406 36.2. CUSTOMERSERVICE WSDL CONTRACT 407 36.3. WSDL-TO-JAVA MAVEN PLUG-IN 409 36.4. INSTANTIATE THE WS ENDPOINT 411 36.5. DEPLOY TO AN OSGI CONTAINER 412 .C . H. .A . P. .T .E . R. . 3. 7. .. .I M. . P. .L .E . M. . E. .N . T. .I N. .G . . A. . W . .S . .C . L. .I E. .N . T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . 1. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37.1. WS CLIENT OVERVIEW 416 37.2. WSDL-TO-JAVA MAVEN PLUG-IN 417 37.3. INSTANTIATE THE WS CLIENT PROXY 419 37.4. INVOKE WS OPERATIONS 421 37.5. DEPLOY TO AN OSGI CONTAINER 421 .C . H. .A . P. .T .E . R. . 3. 8. .. .P . O. .J . O. . -. B. .A . S. E. .D . .R . O. .U . .T .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .2 .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.1. PROCESSING MESSAGES IN POJO FORMAT 424 38.2. WSDL-TO-JAVA MAVEN PLUG-IN 425 38.3. INSTANTIATE THE WS ENDPOINT 427 38.4. SORT MESSAGES BY OPERATION NAME 430 38.5. PROCESS OPERATION PARAMETERS 431 38.6. DEPLOY TO OSGI 433 .C . H. .A . P. .T .E . R. . 3. 9. .. .P . A. .Y . L. .O . A. .D . -. B. .A . S. .E . D. . R. .O . U. .T . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .3 .6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39.1. PROCESSING MESSAGES IN PAYLOAD FORMAT 436 39.2. STREAM CACHING 437 39.3. INSTANTIATE THE WS ENDPOINT 438 39.4. SORT MESSAGES BY OPERATION NAME 440 39.5. SOAP/HTTP-TO-JMS BRIDGE USE CASE 440 39.6. GENERATING RESPONSES USING TEMPLATES 443 39.7. TYPECONVERTER FOR CXFPAYLOAD 446 39.8. DEPLOY TO OSGI 447 .C . H. .A . P. .T .E . R. . 4. .0 . .. P. R. .O . .V . I.D . E. .R . -. B. .A . S. E. .D . .R . O. .U . .T .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .5 .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40.1. PROVIDER-BASED JAX-WS ENDPOINT 450 40.2. CREATE A PROVIDER<?> IMPLEMENTATION CLASS 451 40.3. INSTANTIATE THE WS ENDPOINT 452 40.4. SORT MESSAGES BY OPERATION NAME 453 40.5. SOAP/HTTP-TO-JMS BRIDGE USE CASE 454 40.6. GENERATING RESPONSES USING TEMPLATES 457 40.7. TYPECONVERTER FOR SAXSOURCE 459 40.8. DEPLOY TO OSGI 460 .C . H. .A . P. .T .E . R. . 4. .1 .. P. .R . O. .X . Y. .I N. . G. . A. . W. . E. .B . .S .E . R. .V . I.C . E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .6 . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1. PROXYING WITH HTTP 463 41.2. PROXYING WITH POJO FORMAT 465 41.3. PROXYING WITH PAYLOAD FORMAT 466 41.4. HANDLING HTTP HEADERS 468 .C . H. .A . P. .T .E . R. . 4. .2 .. .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 . 7. .1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1. BASIC CONFIGURATION 471 42.2. HEADER FILTERING 473 6
Description: