Red Hat JBoss Fuse 6.1 Apache Camel Development Guide Develop applications with Apache Camel Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Apache Camel Development Guide Develop applications with Apache Camel JBoss A-MQ Docs Team Content Services [email protected] Legal Notice Copyright © 2013 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 Guide to developing routes with Apache Camel. 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. . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. IMPLEMENTING A ROUTEBUILDER CLASS 10 1.2. BASIC JAVA DSL SYNTAX 11 1.3. ROUTER SCHEMA IN A SPRING XML FILE 14 1.4. ENDPOINTS 16 1.5. PROCESSORS 20 .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. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. PIPELINE PROCESSING 30 2.2. MULTIPLE INPUTS 33 2.3. EXCEPTION HANDLING 36 2.4. BEAN INTEGRATION 52 2.5. CREATING EXCHANGE INSTANCES 62 2.6. TRANSFORMING MESSAGE CONTENT 63 2.7. PROPERTY PLACEHOLDERS 74 2.8. ASPECT ORIENTED PROGRAMMING 84 2.9. THREADING MODEL 85 2.10. CONTROLLING START-UP AND SHUTDOWN OF ROUTES 93 2.11. SCHEDULED ROUTE POLICY 98 2.12. JMX NAMING 106 2.13. PERFORMANCE AND OPTIMIZATION 108 .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. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. OVERVIEW OF THE PATTERNS 110 .C .H .A .P .T .E .R . 4. .. M. E. S. S. A. G. .I N. G. .S .Y .S .T .E .M . S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 1. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. MESSAGE 117 4.2. MESSAGE CHANNEL 118 4.3. MESSAGE ENDPOINT 120 4.4. PIPES AND FILTERS 121 4.5. MESSAGE ROUTER 123 4.6. MESSAGE TRANSLATOR 125 .C .H .A .P .T .E .R . 5. .. M. E. S. S. A. G. .I N. G. .C .H .A . N. N. E. L. S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 2. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. POINT-TO-POINT CHANNEL 127 5.2. PUBLISH-SUBSCRIBE CHANNEL 128 5.3. DEAD LETTER CHANNEL 130 5.4. GUARANTEED DELIVERY 139 5.5. MESSAGE BUS 141 .C .H .A .P .T .E .R . 6. .. M. E. S. S. A. G. .E . C .O . N. S. T. R. U. C. T. I.O . N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 4. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. CORRELATION IDENTIFIER 143 6.2. EVENT MESSAGE 143 6.3. RETURN ADDRESS 145 .C .H .A .P .T .E .R . 7. .. M. E. S. S. A. G. .E . R . O. U. T. I.N .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 4. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1. CONTENT-BASED ROUTER 147 7.2. MESSAGE FILTER 148 7.3. RECIPIENT LIST 150 7.4. SPLITTER 159 7.5. AGGREGATOR 168 1 Red Hat JBoss Fuse 6.1 Apache Camel Development Guide 7.6. RESEQUENCER 187 7.7. ROUTING SLIP 191 7.8. THROTTLER 193 7.9. DELAYER 196 7.10. LOAD BALANCER 198 7.11. MULTICAST 207 7.12. COMPOSED MESSAGE PROCESSOR 214 7.13. SCATTER-GATHER 216 7.14. LOOP 219 7.15. SAMPLING 221 7.16. DYNAMIC ROUTER 223 .C .H .A .P .T .E .R . 8. .. M. E. S. S. A. G. .E . T .R .A . N. S. F. O. R. M. .A .T .I O. N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 2. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. CONTENT ENRICHER 227 8.2. CONTENT FILTER 232 8.3. NORMALIZER 233 8.4. CLAIM CHECK 234 8.5. SORT 236 8.6. VALIDATE 238 .C .H .A .P .T .E .R . 9. .. M. E. S. S. A. G. .I N. G. .E .N .D . P. O. I.N .T .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 4. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. MESSAGING MAPPER 240 9.2. EVENT DRIVEN CONSUMER 241 9.3. POLLING CONSUMER 242 9.4. COMPETING CONSUMERS 242 9.5. MESSAGE DISPATCHER 244 9.6. SELECTIVE CONSUMER 246 9.7. DURABLE SUBSCRIBER 248 9.8. IDEMPOTENT CONSUMER 251 9.9. TRANSACTIONAL CLIENT 257 9.10. MESSAGING GATEWAY 257 9.11. SERVICE ACTIVATOR 258 .C .H .A .P .T .E .R . 1. 0. .. S. Y. S. T.E .M . .M . A. N. A. G. .E M. .E .N .T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 6. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1. DETOUR 261 10.2. LOGEIP 262 10.3. WIRE TAP 263 .A .P .P .E .N .D .I X. .A .. .M . I.G .R .A . T.I .N .G . F. R. O. M. . S. E. R. V. I.C .E .M . I.X . E. I.P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 6. 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1. MIGRATING ENDPOINTS 269 A.2. COMMON ELEMENTS 271 A.3. SERVICEMIX EIP PATTERNS 272 A.4. CONTENT-BASED ROUTER 273 A.5. CONTENT ENRICHER 275 A.6. MESSAGE FILTER 277 A.7. PIPELINE 278 A.8. RESEQUENCER 279 A.9. STATIC RECIPIENT LIST 281 A.10. STATIC ROUTING SLIP 282 A.11. WIRE TAP 283 A.12. XPATH SPLITTER 285 .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. . . . . . . . . . . . . . . . . . . . . . 2. 8. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H .A .P .T .E .R . 1. 1. .. I.N .T .R .O .D . U. C. T. I.O .N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 8. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Table of Contents 11.1. OVERVIEW OF THE LANGUAGES 288 11.2. HOW TO INVOKE AN EXPRESSION LANGUAGE 289 .C .H .A .P .T .E .R . 1. 2. .. C. O. N. S. T. A. N. .T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 9. 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 294 XML EXAMPLE 294 JAVA EXAMPLE 294 .C .H .A .P .T .E .R . 1. 3. .. E.L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 9. 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 295 ADDING JUEL PACKAGE 295 STATIC IMPORT 295 VARIABLES 295 EXAMPLE 296 .C .H .A .P .T .E .R . 1. 4. .. T.H . E. .F .IL .E . L. A. N. G. .U .A .G .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 9. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1. WHEN TO USE THE FILE LANGUAGE 297 14.2. FILE VARIABLES 298 14.3. EXAMPLES 300 .C .H .A .P .T .E .R . 1. 5. .. G. R. O. O. .V .Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 0. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 303 ADDING THE SCRIPT MODULE 303 STATIC IMPORT 303 BUILT-IN ATTRIBUTES 303 EXAMPLE 304 USING THE PROPERTIES COMPONENT 304 .C .H .A .P .T .E .R . 1. 6. .. H. E. A. D. E. R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 0. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 306 XML EXAMPLE 306 JAVA EXAMPLE 306 .C .H .A .P .T .E .R . 1. 7. .. J.A .V .A .S .C .R .I P. T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 0. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 307 ADDING THE SCRIPT MODULE 307 STATIC IMPORT 307 BUILT-IN ATTRIBUTES 307 EXAMPLE 308 USING THE PROPERTIES COMPONENT 308 .C .H .A .P .T .E .R . 1. 8. .. J.O .S .Q .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 1. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 310 ADDING THE JOSQL MODULE 310 STATIC IMPORT 310 VARIABLES 310 EXAMPLE 311 .C .H .A .P .T .E .R . 1. 9. .. J.X .P .A .T .H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 1. 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 312 ADDING JXPATH PACKAGE 312 VARIABLES 312 EXAMPLE 313 .C .H .A .P .T .E .R . 2. 0. .. M. V. E. L. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 1. 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 314 3 Red Hat JBoss Fuse 6.1 Apache Camel Development Guide SYNTAX 314 ADDING THE MVEL MODULE 314 BUILT-IN VARIABLES 314 EXAMPLE 315 .C .H .A .P .T .E .R . 2. 1. .. 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. 1. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 316 ADDING THE OGNL MODULE 316 STATIC IMPORT 316 BUILT-IN VARIABLES 316 EXAMPLE 317 .C .H .A .P .T .E .R . 2. 2. .. P. H. P. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 1. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 318 ADDING THE SCRIPT MODULE 318 STATIC IMPORT 318 BUILT-IN ATTRIBUTES 318 EXAMPLE 319 USING THE PROPERTIES COMPONENT 319 .C .H .A .P .T .E .R . 2. 3. .. P. R. O. P. E. R. T. Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 320 XML EXAMPLE 320 JAVA EXAMPLE 320 .C .H .A .P .T .E .R . 2. 4. .. P. Y. T.H . O. N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 321 ADDING THE SCRIPT MODULE 321 STATIC IMPORT 321 BUILT-IN ATTRIBUTES 321 EXAMPLE 322 USING THE PROPERTIES COMPONENT 322 .C .H .A .P .T .E .R . 2. 5. .. R. E. F. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 323 STATIC IMPORT 323 XML EXAMPLE 323 JAVA EXAMPLE 323 .C .H .A .P .T .E .R . 2. 6. .. R. U. B. Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 324 ADDING THE SCRIPT MODULE 324 STATIC IMPORT 324 BUILT-IN ATTRIBUTES 324 EXAMPLE 325 USING THE PROPERTIES COMPONENT 325 .C .H .A .P .T .E .R . 2. 7. .. T.H . E. .S .I M. P. L. E. .L .A .N .G .U . A. G. E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 2. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.1. JAVA DSL 326 27.2. XML DSL 327 27.3. INVOKING AN EXTERNAL SCRIPT 328 27.4. EXPRESSIONS 329 27.5. PREDICATES 331 27.6. VARIABLE REFERENCE 333 27.7. OPERATOR REFERENCE 337 4 Table of Contents .C .H .A .P .T .E .R . 2. 8. .. S. P. E.L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 4. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 340 SYNTAX 340 ADDING SPEL PACKAGE 340 VARIABLES 340 XML EXAMPLE 341 JAVA EXAMPLE 341 .C .H .A .P .T .E .R . 2. 9. .. T.H . E. .X .P .A .T .H . L. A. N. G. U. .A .G .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 4. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29.1. JAVA DSL 343 29.2. XML DSL 344 29.3. XPATH INJECTION 346 29.4. XPATH BUILDER 347 29.5. ENABLING SAXON 348 29.6. EXPRESSIONS 350 29.7. PREDICATES 353 29.8. USING VARIABLES AND FUNCTIONS 354 29.9. VARIABLE NAMESPACES 355 29.10. FUNCTION REFERENCE 356 .C .H .A .P .T .E .R . 3. 0. .. X. Q. U. E. R. Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 5. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OVERVIEW 358 JAVA SYNTAX 358 ADDING THE SAXON MODULE 358 STATIC IMPORT 358 VARIABLES 358 EXAMPLE 359 .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. 6. 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H .A .P .T .E .R . 3. 1. .. 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. 6. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1. DOWNLOADING AND INSTALLING THE DEMONSTRATIONS 361 31.2. RUNNING THE DEMONSTRATIONS 361 .C .H .A .P .T .E .R . 3. 2. .. 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. 6. 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1. JAVA-FIRST OVERVIEW 365 32.2. DEFINE SEI AND RELATED CLASSES 366 32.3. ANNOTATE SEI FOR JAX-WS 369 32.4. INSTANTIATE THE WS ENDPOINT 372 32.5. JAVA-TO-WSDL MAVEN PLUG-IN 374 .C .H .A .P .T .E .R . 3. 3. .. 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. 7. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.1. WSDL-FIRST OVERVIEW 377 33.2. CUSTOMERSERVICE WSDL CONTRACT 378 33.3. WSDL-TO-JAVA MAVEN PLUG-IN 381 33.4. INSTANTIATE THE WS ENDPOINT 383 33.5. DEPLOY TO AN OSGI CONTAINER 384 .C .H .A .P .T .E .R . 3. 4. .. I.M .P .L .E .M . E. N. T. I.N .G . A. .W . S. .C .L .I E. N. T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 8. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.1. WS CLIENT OVERVIEW 388 34.2. WSDL-TO-JAVA MAVEN PLUG-IN 389 34.3. INSTANTIATE THE WS CLIENT PROXY 391 34.4. INVOKE WS OPERATIONS 393 34.5. DEPLOY TO AN OSGI CONTAINER 393 5 Red Hat JBoss Fuse 6.1 Apache Camel Development Guide .C .H .A .P .T .E .R . 3. 5. .. P. O. J.O .- B. .A .S .E .D . R. O. U. T. E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 9. 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.1. PROCESSING MESSAGES IN POJO FORMAT 397 35.2. WSDL-TO-JAVA MAVEN PLUG-IN 398 35.3. INSTANTIATE THE WS ENDPOINT 400 35.4. SORT MESSAGES BY OPERATION NAME 403 35.5. PROCESS OPERATION PARAMETERS 404 35.6. DEPLOY TO OSGI 406 .C .H .A .P .T .E .R . 3. 6. .. P. A. Y. L.O . A. D. -.B .A . S. E.D . .R .O .U .T .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 0. 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36.1. PROCESSING MESSAGES IN PAYLOAD FORMAT 409 36.2. INSTANTIATE THE WS ENDPOINT 410 36.3. SORT MESSAGES BY OPERATION NAME 412 36.4. SOAP/HTTP-TO-JMS BRIDGE USE CASE 413 36.5. GENERATING RESPONSES USING TEMPLATES 416 36.6. TYPECONVERTER FOR CXFPAYLOAD 419 36.7. DEPLOY TO OSGI 420 .C .H .A .P .T .E .R . 3. 7. .. P. R. O. V. I.D .E .R .- .B .A .S .E .D . R. O. U. .T .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 2. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37.1. PROVIDER-BASED JAX-WS ENDPOINT 423 37.2. CREATE A PROVIDER<?> IMPLEMENTATION CLASS 425 37.3. INSTANTIATE THE WS ENDPOINT 425 37.4. SORT MESSAGES BY OPERATION NAME 427 37.5. SOAP/HTTP-TO-JMS BRIDGE USE CASE 427 37.6. GENERATING RESPONSES USING TEMPLATES 430 37.7. TYPECONVERTER FOR SAXSOURCE 433 37.8. DEPLOY TO OSGI 433 .C .H .A .P .T .E .R . 3. 8. .. P. R. O. X. Y. I.N .G . .A . W. .E .B . S. E. R. V. I.C .E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 3. 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.1. PROXYING WITH HTTP 436 38.2. PROXYING WITH POJO FORMAT 438 38.3. PROXYING WITH PAYLOAD FORMAT 440 38.4. HANDLING HTTP HEADERS 441 .C .H .A .P .T .E .R . 3. 9. .. 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. 4. 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39.1. BASIC CONFIGURATION 444 39.2. HEADER FILTERING 446 39.3. IMPLEMENTING A CUSTOM FILTER 447 39.4. INSTALLING FILTERS 450 .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. 5. 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C .H .A .P .T .E .R . 4. 0. .. 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. 5. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40.1. EXCHANGES 453 40.2. MESSAGES 454 40.3. BUILT-IN TYPE CONVERTERS 458 40.4. BUILT-IN UUID GENERATORS 460 .C .H .A .P .T .E .R . 4. 1. .. I.M .P .L .E .M . E. N. T. I.N .G . A. .P .R . O. C. E. S. S. O. R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 6. 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1. PROCESSING MODEL 463 41.2. IMPLEMENTING A SIMPLE PROCESSOR 463 41.3. ACCESSING MESSAGE CONTENT 464 41.4. THE EXCHANGEHELPER CLASS 466 .C .H .A .P .T .E .R . 4. 2. .. T.Y .P .E . C. O. .N .V .E .R .T .E .R .S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 6. 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1. TYPE CONVERTER ARCHITECTURE 468 6
Description: