| <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>JSONPath :: Apache Camel</title> <link rel="canonical" href="https://camel.apache.org/components/4.10.x/languages/jsonpath-language.html"> <meta name="description" content="Evaluates a JSONPath expression against a JSON message body."> <meta name="generator" content="Antora 3.1.7"> <link rel="stylesheet" href="../../../_/css/site-2955eb42a8.css"> <meta name="application-name" content="Apache Camel"> <meta property="og:title" content="JSONPath"> <meta property="og:site_name" content="Apache Camel"> <meta property="og:url" content="https://camel.apache.org"> <meta property="og:description" content="Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data."> <meta property="og:type" content="website"> <meta property="og:image" content="https://camel.apache.org/_/img/logo-d-a567cee6fa.svg"> <link rel="manifest" href="../../../site.webmanifest"> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="../../../apple-touch-icon-57x57.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../../apple-touch-icon-114x114.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../../apple-touch-icon-72x72.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../../apple-touch-icon-144x144.png"> <link rel="apple-touch-icon-precomposed" sizes="60x60" href="../../../apple-touch-icon-60x60.png"> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="../../../apple-touch-icon-120x120.png"> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="../../../apple-touch-icon-76x76.png"> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../../apple-touch-icon-152x152.png"> <link rel="icon" type="image/png" href="../../../favicon-196x196.png" sizes="196x196"> <link rel="icon" type="image/png" href="../../../favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="../../../favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="../../../favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="../../../favicon-128.png" sizes="128x128"> </head> <body class="article"> <header class="header"> <nav class="navbar" aria-label="Main menu"> <div class="navbar-brand"> <a class="nav-logo" href="../../.."></a> <div id="topbar-nav" class="navbar-menu"> <div class="navbar-end"> <a class="navbar-item-section navbar-item navbar-topics" href="../../../blog/"> <img alt="Blog" src="/_/img/blog-4c7fa4cb60.svg"> Blog </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../../docs/"> <img alt="Documentation" src="/_/img/documentation-abb1b7f8b1.svg"> Documentation </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../../community/"> <img alt="Community" src="/_/img/community-2ec8a3dc8b.svg"> Community </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../../download/"> <img alt="Download" src="/_/img/download-63cdd75074.svg"> Download </a> <a class="navbar-item-section navbar-item navbar-topics" href="../../../security/"> <img alt="Security" src="/_/img/security-06abe157b3.svg"> Security </a> </div> </div> <div class="navbar-fill"></div> <div class="break-row"></div> <div class="navbar-search results-hidden"> <input id="search" class="search" placeholder="Search" autocomplete="off"> <img src="../../../_/img/cancel-1ed239489b.svg" alt="Clear" id="search-cancel"> <div id="search_results"></div> </div> <div class="navbar-tools"> <a rel="noopener noreferrer nofollow" href="https://github.com/apache/camel/" title="Collaborate on GitHub"><svg focusable="false" class="brand-icon"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#github"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://camel.zulipchat.com" title="Chat on Zulip"><svg focusable="false" class="brand-icon"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#zulip"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://twitter.com/ApacheCamel" title="Follow Apache Camel on Twitter"><svg focusable="false" class="brand-icon"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#twitter"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://www.linkedin.com/groups/2447439/" title="Apache Camel group on Linkedin"><svg focusable="false" class="brand-icon"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#linkedin"/></svg></a> </div> <button class="navbar-burger" data-target="topbar-nav" type="button" aria-label="Menu"> <span></span> <span></span> <span></span> </button> </div> </nav> </header> <a id="top"></a> <div class="body"> <div class="nav-container" data-component="components" data-version="next"> <aside class="nav" aria-label="Side menu"> <div class="panels"> <div class="nav-panel-menu is-active"> <input class="search" placeholder="Quick lookup"> <nav class="nav-menu" data-panel="menu" aria-label="Topics"> <h3 class="title"><a href="../index.html">Camel Components</a></h3> <ul class="nav-list"> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../index.html">Components</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../activemq-component.html">ActiveMQ 5.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../activemq6-component.html">ActiveMQ 6.x</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../ai-summary.html">AI</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../chatscript-component.html">ChatScript</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../djl-component.html">Deep Java Library</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kserve-component.html">KServe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../langchain4j-chat-component.html">LangChain4j Chat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../langchain4j-embeddings-component.html">LangChain4j Embeddings</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../langchain4j-tools-component.html">LangChain4j Tools</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../langchain4j-web-search-component.html">LangChain4j Web Search</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../milvus-component.html">Milvus</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../neo4j-component.html">Neo4j</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../pinecone-component.html">Pinecone</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../qdrant-component.html">Qdrant</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../tensorflow-serving-component.html">TensorFlow Serving</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../torchserve-component.html">TorchServe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../weaviate-component.html">weaviate</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../amqp-component.html">AMQP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../arangodb-component.html">ArangoDb</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../as2-component.html">AS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../asterisk-component.html">Asterisk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../atmosphere-websocket-component.html">Atmosphere Websocket</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../atom-component.html">Atom</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../avro-component.html">Avro RPC</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../aws-summary.html">AWS</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-athena-component.html">AWS Athena</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-bedrock-component.html">AWS Bedrock</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-bedrock-agent-component.html">AWS Bedrock Agent</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-bedrock-agent-runtime-component.html">AWS Bedrock Agent Runtime</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-cloudtrail-component.html">AWS Cloudtrail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-cw-component.html">AWS CloudWatch</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-config-component.html">AWS Config Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-ddb-component.html">AWS DynamoDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-ddbstream-component.html">AWS DynamoDB Streams</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-ec2-component.html">AWS Elastic Compute Cloud (EC2)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-ecs-component.html">AWS Elastic Container Service (ECS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-eks-component.html">AWS Elastic Kubernetes Service (EKS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-eventbridge-component.html">AWS Eventbridge</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-iam-component.html">AWS Identity and Access Management (IAM)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-kms-component.html">AWS Key Management Service (KMS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-kinesis-component.html">AWS Kinesis</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-kinesis-firehose-component.html">AWS Kinesis Firehose</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-lambda-component.html">AWS Lambda</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-msk-component.html">AWS Managed Streaming for Apache Kafka (MSK)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-mq-component.html">AWS MQ</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-redshift-data-component.html">AWS RedshiftData</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-s3-component.html">AWS S3 Storage Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws-secrets-manager-component.html">AWS Secrets Manager</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-sts-component.html">AWS Security Token Service (STS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-ses-component.html">AWS Simple Email Service (SES)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-sns-component.html">AWS Simple Notification System (SNS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-sqs-component.html">AWS Simple Queue Service (SQS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-step-functions-component.html">AWS StepFunctions</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-timestream-component.html">AWS Timestream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../aws2-translate-component.html">AWS Translate</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../pqc-component.html">PQC Algorithms</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../azure-summary.html">Azure</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-cosmosdb-component.html">Azure CosmosDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-eventhubs-component.html">Azure Event Hubs</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-files-component.html">Azure Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-key-vault-component.html">Azure Key Vault</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-servicebus-component.html">Azure ServiceBus</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-storage-blob-component.html">Azure Storage Blob Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-storage-datalake-component.html">Azure Storage Data Lake Service</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../azure-storage-queue-component.html">Azure Storage Queue Service</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../bean-component.html">Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../bean-validator-component.html">Bean Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../bonita-component.html">Bonita</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../box-component.html">Box</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../braintree-component.html">Braintree</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../browse-component.html">Browse</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../caffeine-cache-component.html">Caffeine Cache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../caffeine-loadcache-component.html">Caffeine LoadCache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cql-component.html">Cassandra CQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../chunk-component.html">Chunk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../class-component.html">Class</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../clickup-component.html">ClickUp</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cm-sms-component.html">CM SMS Gateway</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../coap-component.html">CoAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cometd-component.html">CometD</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../consul-component.html">Consul</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../controlbus-component.html">Control Bus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../couchbase-component.html">Couchbase</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../couchdb-component.html">CouchDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cron-component.html">Cron</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../crypto-component.html">Crypto (JCE)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cxf-component.html">CXF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../cxfrs-component.html">CXF-RS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dapr-component.html">Dapr</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformat-component.html">Data Format</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataset-component.html">Dataset</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataset-test-component.html">DataSet Test</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../debezium-summary.html">Debezium</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-db2-component.html">Debezium DB2 Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-mongodb-component.html">Debezium MongoDB Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-mysql-component.html">Debezium MySQL Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-oracle-component.html">Debezium Oracle Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-postgres-component.html">Debezium PostgresSQL Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../debezium-sqlserver-component.html">Debezium SQL Server Connector</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dfdl-component.html">DFDL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dhis2-component.html">DHIS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../digitalocean-component.html">DigitalOcean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../direct-component.html">Direct</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../disruptor-component.html">Disruptor</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../disruptor-vm-component.html">Disruptor VM</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dns-component.html">DNS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../docker-component.html">Docker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../drill-component.html">Drill</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dropbox-component.html">Dropbox</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dynamic-router-component.html">Dynamic Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dynamic-router-control-component.html">Dynamic Router Control</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ehcache-component.html">Ehcache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../elasticsearch-component.html">Elasticsearch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../elasticsearch-rest-client-component.html">Elasticsearch Low level Rest Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../exec-component.html">Exec</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../fhir-component.html">FHIR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../file-component.html">File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../file-watch-component.html">File Watch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../flatpack-component.html">Flatpack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../flink-component.html">Flink</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../flowable-component.html">Flowable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../fop-component.html">FOP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../freemarker-component.html">Freemarker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ftp-component.html">FTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ftps-component.html">FTPS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../geocoder-component.html">Geocoder</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../git-component.html">Git</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../github-component.html">GitHub</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../google-summary.html">Google</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-bigquery-component.html">Google BigQuery</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-bigquery-sql-component.html">Google BigQuery Standard SQL</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-calendar-component.html">Google Calendar</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-calendar-stream-component.html">Google Calendar Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-functions-component.html">Google Cloud Functions</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-drive-component.html">Google Drive</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-mail-component.html">Google Mail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-mail-stream-component.html">Google Mail Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-pubsub-component.html">Google Pubsub</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-pubsub-lite-component.html">Google PubSub Lite</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-secret-manager-component.html">Google Secret Manager</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-sheets-component.html">Google Sheets</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-sheets-stream-component.html">Google Sheets Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../google-storage-component.html">Google Storage</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../grape-component.html">Grape</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../graphql-component.html">GraphQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../grpc-component.html">gRPC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../guava-eventbus-component.html">Guava EventBus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../hashicorp-vault-component.html">Hashicorp Vault</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../hazelcast-summary.html">Hazelcast</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-atomicvalue-component.html">Hazelcast Atomic Number</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-instance-component.html">Hazelcast Instance</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-list-component.html">Hazelcast List</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-map-component.html">Hazelcast Map</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-multimap-component.html">Hazelcast Multimap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-queue-component.html">Hazelcast Queue</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-replicatedmap-component.html">Hazelcast Replicated Map</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-ringbuffer-component.html">Hazelcast Ringbuffer</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-seda-component.html">Hazelcast SEDA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-set-component.html">Hazelcast Set</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hazelcast-topic-component.html">Hazelcast Topic</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../http-component.html">HTTP</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../hwcloud-summary.html">Huawei Cloud</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-frs-component.html">Huawei Cloud Face Recognition Service (FRS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-imagerecognition-component.html">Huawei Cloud Image Recognition</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-dms-component.html">Huawei Distributed Message Service (DMS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-functiongraph-component.html">Huawei FunctionGraph</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-iam-component.html">Huawei Identity and Access Management (IAM)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-obs-component.html">Huawei Object Storage Service (OBS)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../hwcloud-smn-component.html">Huawei Simple Message Notification (SMN)</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ibm-secrets-manager-component.html">IBM Secrets Manager</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../iec60870-client-component.html">IEC 60870 Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../iec60870-server-component.html">IEC 60870 Server</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../ignite-summary.html">Ignite</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-cache-component.html">Ignite Cache</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-compute-component.html">Ignite Compute</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-events-component.html">Ignite Events</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-idgen-component.html">Ignite ID Generator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-messaging-component.html">Ignite Messaging</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-queue-component.html">Ignite Queues</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../ignite-set-component.html">Ignite Sets</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../infinispan-component.html">Infinispan</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../infinispan-embedded-component.html">Infinispan Embedded</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../influxdb-component.html">InfluxDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../influxdb2-component.html">InfluxDB2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../irc-component.html">IRC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ironmq-component.html">IronMQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jcache-component.html">JCache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jcr-component.html">JCR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jdbc-component.html">JDBC</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jetty-component.html">Jetty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jgroups-component.html">JGroups</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jgroups-raft-component.html">JGroups raft</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jira-component.html">Jira</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jms-component.html">JMS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jmx-component.html">JMX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jolt-component.html">JOLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jooq-component.html">JOOQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jpa-component.html">JPA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jslt-component.html">JSLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../json-validator-component.html">JSON Schema Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jsonata-component.html">JSONata</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../json-patch-component.html">JsonPatch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jt400-component.html">JT400</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../jte-component.html">JTE</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../kafka-component.html">Kafka</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../kamelet-component.html">Kamelet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../knative-component.html">Knative</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../knative-http-component.html">Knative Http</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../kubernetes-summary.html">Kubernetes</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-config-maps-component.html">Kubernetes ConfigMap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-cronjob-component.html">Kubernetes Cronjob</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-custom-resources-component.html">Kubernetes Custom Resources</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-deployments-component.html">Kubernetes Deployments</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-events-component.html">Kubernetes Event</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-hpa-component.html">Kubernetes HPA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-job-component.html">Kubernetes Job</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-namespaces-component.html">Kubernetes Namespaces</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-nodes-component.html">Kubernetes Nodes</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-persistent-volumes-component.html">Kubernetes Persistent Volume</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-persistent-volumes-claims-component.html">Kubernetes Persistent Volume Claim</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-pods-component.html">Kubernetes Pods</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-replication-controllers-component.html">Kubernetes Replication Controller</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-resources-quota-component.html">Kubernetes Resources Quota</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-secrets-component.html">Kubernetes Secrets</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-service-accounts-component.html">Kubernetes Service Account</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../kubernetes-services-component.html">Kubernetes Services</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openshift-build-configs-component.html">OpenShift Build Config</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openshift-builds-component.html">OpenShift Builds</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openshift-deploymentconfigs-component.html">OpenShift Deployment Configs</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../kudu-component.html">Kudu</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../language-component.html">Language</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ldap-component.html">LDAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ldif-component.html">LDIF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../log-component.html">Log Data</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../lucene-component.html">Lucene</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../lumberjack-component.html">Lumberjack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mail-component.html">Mail</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mapstruct-component.html">MapStruct</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../master-component.html">Master</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../metrics-component.html">Metrics</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../micrometer-component.html">Micrometer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mina-component.html">Mina</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../minio-component.html">Minio</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mllp-component.html">MLLP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mock-component.html">Mock</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mongodb-component.html">MongoDB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mongodb-gridfs-component.html">MongoDB GridFS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mustache-component.html">Mustache</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mvel-component.html">MVEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mybatis-component.html">MyBatis</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../mybatis-bean-component.html">MyBatis Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../nats-component.html">Nats</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../netty-component.html">Netty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../netty-http-component.html">Netty HTTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../nitrite-component.html">Nitrite</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../oaipmh-component.html">OAI-PMH</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../oauth-component.html">OAuth</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../olingo2-component.html">Olingo2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../olingo4-component.html">Olingo4</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../opensearch-component.html">OpenSearch</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../openstack-summary.html">OpenStack</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-cinder-component.html">OpenStack Cinder</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-glance-component.html">OpenStack Glance</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-keystone-component.html">OpenStack Keystone</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-neutron-component.html">OpenStack Neutron</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-nova-component.html">OpenStack Nova</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../openstack-swift-component.html">OpenStack Swift</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../optaplanner-component.html">OptaPlanner</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../paho-component.html">Paho</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../paho-mqtt5-component.html">Paho MQTT 5</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../pdf-component.html">PDF</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../platform-http-component.html">Platform HTTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../plc4x-component.html">PLC4X</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../pgevent-component.html">PostgresSQL Event</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../pg-replication-slot-component.html">PostgresSQL Replication Slot</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../lpr-component.html">Printer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../properties-component.html">Properties</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../pubnub-component.html">PubNub</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../pulsar-component.html">Pulsar</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../quartz-component.html">Quartz</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../quickfix-component.html">QuickFix</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../reactive-streams-component.html">Reactive Streams</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ref-component.html">Ref</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../rest-component.html">REST</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../rest-api-component.html">REST API</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../rest-openapi-component.html">REST OpenApi</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../robotframework-component.html">Robot Framework</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../rocketmq-component.html">RocketMQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../rss-component.html">RSS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../saga-component.html">Saga</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../salesforce-component.html">Salesforce</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sap-netweaver-component.html">SAP NetWeaver</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../scheduler-component.html">Scheduler</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../schematron-component.html">Schematron</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../scp-component.html">SCP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../seda-component.html">SEDA</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../service-component.html">Service</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../servicenow-component.html">ServiceNow</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../servlet-component.html">Servlet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sftp-component.html">SFTP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sjms-component.html">Simple JMS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sjms2-component.html">Simple JMS2</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../slack-component.html">Slack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../smb-component.html">SMB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../smooks-component.html">Smooks</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../smpp-component.html">SMPP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../snmp-component.html">SNMP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../solr-component.html">Solr</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../splunk-component.html">Splunk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../splunk-hec-component.html">Splunk HEC</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../spring-summary.html">Spring</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-batch-component.html">Spring Batch</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-event-component.html">Spring Event</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-jdbc-component.html">Spring JDBC</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-ldap-component.html">Spring LDAP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-rabbitmq-component.html">Spring RabbitMQ</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-redis-component.html">Spring Redis</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../spring-ws-component.html">Spring WebService</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sql-component.html">SQL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../sql-stored-component.html">SQL Stored Procedure</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../ssh-component.html">SSH</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../stax-component.html">StAX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../stitch-component.html">Stitch</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../stomp-component.html">Stomp</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../stream-component.html">Stream</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../string-template-component.html">String Template</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../stub-component.html">Stub</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../tahu-summary.html">Tahu</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../tahu-edge-component.html">Tahu Edge Node / Device</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../tahu-host-component.html">Tahu Host Application</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../telegram-component.html">Telegram</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../thrift-component.html">Thrift</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../thymeleaf-component.html">Thymeleaf</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../tika-component.html">Tika</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../timer-component.html">Timer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../twilio-component.html">Twilio</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../twitter-directmessage-component.html">Twitter Direct Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../twitter-search-component.html">Twitter Search</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../twitter-timeline-component.html">Twitter Timeline</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../undertow-component.html">Undertow</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../validator-component.html">Validator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../velocity-component.html">Velocity</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../vertx-component.html">Vert.x</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../vertx-http-component.html">Vert.x HTTP Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../vertx-websocket-component.html">Vert.x WebSocket</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../wasm-component.html">Wasm</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../weather-component.html">Weather</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../web3j-component.html">Web3j Ethereum Blockchain</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../webhook-component.html">Webhook</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../whatsapp-component.html">WhatsApp</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../wordpress-component.html">WordPress</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../workday-component.html">Workday</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xchange-component.html">XChange</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xj-component.html">XJ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xmlsecurity-sign-component.html">XML Security Sign</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xmlsecurity-verify-component.html">XML Security Verify</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xmpp-component.html">XMPP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xquery-component.html">XQuery</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xslt-component.html">XSLT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../xslt-saxon-component.html">XSLT Saxon</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../zeebe-component.html">Zeebe</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../zendesk-component.html">Zendesk</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../zookeeper-component.html">ZooKeeper</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../zookeeper-master-component.html">ZooKeeper Master</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../dataformats/index.html">Data Formats</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/asn1-dataformat.html">ASN.1 File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/avro-dataformat.html">Avro</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/avroJackson-dataformat.html">Avro Jackson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/barcode-dataformat.html">Barcode</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/base64-dataformat.html">Base64</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/beanio-dataformat.html">BeanIO</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/bindy-dataformat.html">Bindy</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/cbor-dataformat.html">CBOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/crypto-dataformat.html">Crypto (Java Cryptographic Extension)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/csv-dataformat.html">CSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/dfdl-dataformat.html">DFDL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/fhirJson-dataformat.html">FHIR JSon</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/fhirXml-dataformat.html">FHIR XML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/flatpack-dataformat.html">Flatpack</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/fory-dataformat.html">Fory</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/grok-dataformat.html">Grok</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/gzipDeflater-dataformat.html">GZip Deflater</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/hl7-dataformat.html">HL7</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/ical-dataformat.html">iCal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/iso8583-dataformat.html">ISO-8583</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/jacksonXml-dataformat.html">Jackson XML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/jaxb-dataformat.html">JAXB</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/fastjson-dataformat.html">JSON Fastjson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/gson-dataformat.html">JSON Gson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/jackson-dataformat.html">JSON Jackson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/jsonb-dataformat.html">JSON JSON-B</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/jsonApi-dataformat.html">JSonApi</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/lzf-dataformat.html">LZF Deflate Compression</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/mimeMultipart-dataformat.html">MIME Multipart</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/parquetAvro-dataformat.html">Parquet File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/pgp-dataformat.html">PGP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/protobuf-dataformat.html">Protobuf</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/protobufJackson-dataformat.html">Protobuf Jackson</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/rss-dataformat.html">RSS</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/smooks-dataformat.html">Smooks</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/soap-dataformat.html">SOAP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/swiftMt-dataformat.html">SWIFT MT</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/swiftMx-dataformat.html">SWIFT MX</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/syslog-dataformat.html">Syslog</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/tarFile-dataformat.html">Tar File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/thrift-dataformat.html">Thrift</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/univocityCsv-dataformat.html">uniVocity CSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/univocityFixed-dataformat.html">uniVocity Fixed Length</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/univocityTsv-dataformat.html">uniVocity TSV</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/xmlSecurity-dataformat.html">XML Security</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/snakeYaml-dataformat.html">YAML SnakeYAML</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/zipDeflater-dataformat.html">Zip Deflater</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../dataformats/zipFile-dataformat.html">Zip File</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="index.html">Languages</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="bean-language.html">Bean Method</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="constant-language.html">Constant</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="csimple-language.html">CSimple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="datasonnet-language.html">DataSonnet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="exchangeProperty-language.html">ExchangeProperty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="file-language.html">File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="groovy-language.html">Groovy</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="header-language.html">Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="hl7terser-language.html">HL7 Terser</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="java-language.html">Java</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="js-language.html">JavaScript</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="joor-language.html">jOOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="jq-language.html">JQ</a> </li> <li class="nav-item is-current-page" data-depth="2"> <a class="nav-link" href="jsonpath-language.html">JSONPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="mvel-language.html">MVEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ognl-language.html">OGNL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="python-language.html">Python</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="ref-language.html">Ref</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="simple-language.html">Simple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="spel-language.html">SpEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="tokenize-language.html">Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="variable-language.html">Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="wasm-language.html">Wasm</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xtokenize-language.html">XML Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xpath-language.html">XPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="xquery-language.html">XQuery</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../others/index.html">Miscellaneous Components</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../others/langchain4j-tokenizer.html">LangChain4j Tokenizer</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/attachments.html">Attachments</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/aws-xray.html">AWS XRay</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/azure-schema-registry.html">Azure Schema Registry</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/cli-connector.html">CLI Connector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/cloudevents.html">Cloudevents</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/csimple-joor.html">CSimple jOOR</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/cxf-transport.html">CXF Transport</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/debug.html">Debug</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/dsl.html">DSL</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../others/dsl-modeline.html">DSL Modeline</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../others/java-joor-dsl.html">Java DSL (runtime compiled)</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../others/java-xml-jaxb-dsl.html">Jaxb XML Dsl</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../others/kamelet-main.html">Kamelet Main</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../others/java-xml-io-dsl.html">XML Io Dsl</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../others/yaml-dsl.html">YAML DSL</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/elytron.html">Elytron</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/headersmap.html">Headersmap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/jandex.html">Jandex</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/jasypt.html">Jasypt</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/jfr.html">JFR</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/jta.html">JTA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/leveldb.html">LevelDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/lra.html">LRA</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/mail-microsoft-oauth.html">Mail Microsoft Oauth</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/main.html">Main</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/observation.html">Micrometer Observability</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/micrometer-prometheus.html">Micrometer Prometheus</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/microprofile-config.html">Microprofile Config</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/microprofile-fault-tolerance.html">Microprofile Fault Tolerance</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/microprofile-health.html">Microprofile Health</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/observability-services.html">Observability Services</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/openapi-java.html">Openapi Java</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/openapi-validator.html">Openapi Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/opentelemetry.html">OpenTelemetry</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/opentelemetry2.html">Opentelemetry2</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/platform-http-jolokia.html">Platform HTTP Jolokia</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/platform-http-main.html">Platform Http Main</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/platform-http-vertx.html">Platform Http Vertx</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/reactive-executor-tomcat.html">Reactive Executor Tomcat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/reactive-executor-vertx.html">Reactive Executor Vert.x</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/reactor.html">Reactor</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/redis.html">Redis</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/resilience4j.html">Resilience4j</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/resourceresolver-github.html">Resourceresolver Github</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/rxjava.html">RxJava</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/shiro.html">Shiro</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../others/spring-cloud-config.html">Spring Cloud Config</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/spring-main.html">Spring Main</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/spring-security.html">Spring Security</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/spring-xml.html">Spring XML</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/springdoc.html">Springdoc</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/telemetry.html">Telemetry</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/telemetry-dev.html">Telemetry Dev</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/test-junit5.html">Test JUnit5</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/test-main-junit5.html">Test Main JUnit5</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/test-spring-junit5.html">Test Spring JUnit5</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/threadpoolfactory-vertx.html">ThreadPoolFactory Vert.x</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/tracing.html">Tracing</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/undertow-spring-security.html">Undertow Spring Security</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../others/wal.html">Write Ahead Log Strategy for Resume API</a> </li> </ul> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle" type="button" aria-label="Expand or contract topic"></button> <a class="nav-link" href="../eips/enterprise-integration-patterns.html">Enterprise Integration Patterns</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/aggregate-eip.html">Aggregate</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/batchConfig-eip.html">BatchConfig</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/bean-eip.html">Bean</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/change-data-capture.html">Change Data Capture</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/channel-adapter.html">Channel Adapter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/choice-eip.html">Choice</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/circuitBreaker-eip.html">Circuit Breaker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/claimCheck-eip.html">Claim Check</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/competing-consumers.html">Competing Consumers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/composed-message-processor.html">Composed Message Processor</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/content-enricher.html">Content Enricher</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/content-filter-eip.html">Content Filter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/convertBodyTo-eip.html">Convert Body To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/convertHeaderTo-eip.html">Convert Header To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/convertVariableTo-eip.html">Convert Variable To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/correlation-identifier.html">Correlation Identifier</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/customLoadBalancer-eip.html">Custom Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/dead-letter-channel.html">Dead Letter Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/delay-eip.html">Delay</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/durable-subscriber.html">Durable Subscriber</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/dynamicRouter-eip.html">Dynamic Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/enrich-eip.html">Enrich</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/eventDrivenConsumer-eip.html">Event Driven Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/event-message.html">Event Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/failoverLoadBalancer-eip.html">Failover Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/faultToleranceConfiguration-eip.html">Fault Tolerance Configuration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/fault-tolerance-eip.html">Fault Tolerance EIP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/filter-eip.html">Filter</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/from-eip.html">From</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/guaranteed-delivery.html">Guaranteed Delivery</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/idempotentConsumer-eip.html">Idempotent Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/intercept.html">Intercept</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/kamelet-eip.html">Kamelet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/loadBalance-eip.html">Load Balance</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/log-eip.html">Logger</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/loop-eip.html">Loop</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/marshal-eip.html">Marshal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message.html">Message</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-broker.html">Message Broker</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-bus.html">Message Bus</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-channel.html">Message Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-dispatcher.html">Message Dispatcher</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-endpoint.html">Message Endpoint</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-expiration.html">Message Expiration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-history.html">Message History</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-router.html">Message Router</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/message-translator.html">Message Translator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/messaging-bridge.html">Messaging Bridge</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/messaging-gateway.html">Messaging Gateway</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/messaging-mapper.html">Messaging Mapper</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/multicast-eip.html">Multicast</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/normalizer.html">Normalizer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/onFallback-eip.html">On Fallback</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/pipeline-eip.html">Pipeline</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/point-to-point-channel.html">Point to Point Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/poll-eip.html">Poll</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/pollEnrich-eip.html">Poll Enrich</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/polling-consumer.html">Polling Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/process-eip.html">Process</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/process-manager.html">Process Manager</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/publish-subscribe-channel.html">Publish Subscribe Channel</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/randomLoadBalancer-eip.html">Random Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/recipientList-eip.html">Recipient List</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/removeHeader-eip.html">Remove Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/removeHeaders-eip.html">Remove Headers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/removeProperties-eip.html">Remove Properties</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/removeProperty-eip.html">Remove Property</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/removeVariable-eip.html">Remove Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/requestReply-eip.html">Request Reply</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/resequence-eip.html">Resequence</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/resilience4jConfiguration-eip.html">Resilience4j Configuration</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/resilience4j-eip.html">Resilience4j EIP</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/resume-strategies.html">Resume Strategies</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/return-address.html">Return Address</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/rollback-eip.html">Rollback</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/roundRobinLoadBalancer-eip.html">Round Robin Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/routingSlip-eip.html">Routing Slip</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/saga-eip.html">Saga</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/sample-eip.html">Sample</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/scatter-gather.html">Scatter-Gather</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/script-eip.html">Script</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/selective-consumer.html">Selective Consumer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/service-activator.html">Service Activator</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/serviceCall-eip.html">Service Call</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setBody-eip.html">Set Body</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setHeader-eip.html">Set Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setHeaders-eip.html">Set Headers</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setProperty-eip.html">Set Property</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setVariable-eip.html">Set Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/setVariables-eip.html">Set Variables</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/sort-eip.html">Sort</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/split-eip.html">Split</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/step-eip.html">Step</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/stickyLoadBalancer-eip.html">Sticky Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/stop-eip.html">Stop</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/streamConfig-eip.html">StreamConfig</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/threads-eip.html">Threads</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/throttle-eip.html">Throttle</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/to-eip.html">To</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/toD-eip.html">To D</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/topicLoadBalancer-eip.html">Topic Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/transactional-client.html">Transactional Client</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/transform-eip.html">Transform</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/unmarshal-eip.html">Unmarshal</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/validate-eip.html">Validate</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/weightedLoadBalancer-eip.html">Weighted Load Balancer</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../eips/wireTap-eip.html">Wire Tap</a> </li> </ul> </li> </ul> </li> </ul> </nav> </div> <div class="nav-panel-explore" data-panel="explore"> <div class="context"> <span class="title">Camel Components</span> <span class="version">Next (Pre-release)</span> </div> <ul class="components"> <li class="component"> <span class="title"> <a href="../../../manual/index.html">User manual</a> </span></li> <li class="component is-current"><span class="title">Camel Components</span> <ul class="versions"> <li class="version is-current"> <a href="../index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../4.10.x/index.html">4.10.x (LTS)</a> </li> <li class="version"> <a href="../../4.8.x/index.html">4.8.x (LTS)</a> </li> <li class="version"> <a href="../../3.22.x/index.html">3.22.x (LTS)</a> </li> </ul></li> <li class="component"> <span class="title"> <a href="../../../camel-core/index.html">Camel Core</a> </span></li> <li class="component"><span class="title">Camel K</span> <ul class="versions"> <li class="version"> <a href="../../../camel-k/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../../camel-k/2.7.x/index.html">2.7.x (LTS)</a> </li> <li class="version"> <a href="../../../camel-k/2.5.x/index.html">2.5.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Kafka Connector</span> <ul class="versions"> <li class="version"> <a href="../../../camel-kafka-connector/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../../camel-kafka-connector/4.10.x/index.html">4.10.x</a> </li> </ul></li> <li class="component"><span class="title">Kamelet Catalog</span> <ul class="versions"> <li class="version"> <a href="../../../camel-kamelets/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../../camel-kamelets/4.10.x/index.html">4.10.x (LTS)</a> </li> <li class="version"> <a href="../../../camel-kamelets/4.8.x/index.html">4.8.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Karaf</span> <ul class="versions"> <li class="version"> <a href="../../../camel-karaf/4.9.x/index.html">4.9.x</a> </li> <li class="version"> <a href="../../../camel-karaf/4.8.x/index.html">4.8.x</a> </li> <li class="version"> <a href="../../../camel-karaf/3.22.x/index.html">3.22.x (LTS)</a> </li> </ul></li> <li class="component"><span class="title">Camel Quarkus</span> <ul class="versions"> <li class="version"> <a href="../../../camel-quarkus/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../../camel-quarkus/3.20.x/index.html">3.20.x</a> </li> <li class="version"> <a href="../../../camel-quarkus/3.15.x/index.html">3.15.x</a> </li> </ul></li> <li class="component"><span class="title">Camel Spring Boot</span> <ul class="versions"> <li class="version"> <a href="../../../camel-spring-boot/next/index.html">Next (Pre-release)</a> </li> <li class="version"> <a href="../../../camel-spring-boot/4.10.x/index.html">4.10.x (LTS)</a> </li> <li class="version"> <a href="../../../camel-spring-boot/4.8.x/index.html">4.8.x (LTS)</a> </li> <li class="version"> <a href="../../../camel-spring-boot/3.22.x/index.html">3.22.x (LTS)</a> </li> </ul></li> </ul> </div> </div> </aside> </div> <main class="article"> <nav class="toolbar" aria-label="Toolbar"> <button class="nav-toggle" type="button" aria-label="Toggle submenu"></button> <nav class="breadcrumbs" aria-label="breadcrumbs"> <ul> <li><a href="../index.html">Camel Components</a></li> <li><a href="index.html">Languages</a></li> <li><a href="jsonpath-language.html">JSONPath</a></li> </ul> </nav> <div class="page-versions"> <button class="version-menu-toggle" type="button" title="Show other versions of page">Next (Pre-release)</button> <div class="version-menu"> <a class="version is-current" href="jsonpath-language.html">Next (Pre-release)</a> <a class="version" href="../../4.10.x/languages/jsonpath-language.html">4.10.x (LTS)</a> <a class="version" href="../../4.8.x/languages/jsonpath-language.html">4.8.x (LTS)</a> <a class="version" href="../../3.22.x/languages/jsonpath-language.html">3.22.x (LTS)</a> </div> </div> <div class="edit-this-page"><a href="https://github.com/apache/camel/edit/main/docs/components/modules/languages/pages/jsonpath-language.adoc">Edit this Page</a></div> </nav> <div class="content"> <article class="doc"> <h1 class="page">JSONPath</h1> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"> <p><strong>Since Camel 2.13</strong></p> </div> <div class="paragraph"> <p>Camel supports <a href="https://github.com/json-path/JsonPath/">JSONPath</a> to allow using <a href="../../../manual/expression.html" class="xref page">Expression</a> or <a href="../../../manual/predicate.html" class="xref page">Predicate</a> on JSON messages.</p> </div> </div> </div> <div class="sect1"> <h2 id="_jsonpath_options"><a class="anchor" href="#_jsonpath_options"></a>JSONPath Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The JSONPath language supports 9 options, which are listed below.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Default</th> <th class="tableblock halign-left valign-top">Java Type</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_suppressExceptions" class="paragraph"> <p><a href="#_language_option_suppressExceptions" class="anchor"></a><strong>suppressExceptions</strong> (common)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to suppress exceptions such as PathNotFoundException.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_allowSimple" class="paragraph"> <p><a href="#_language_option_allowSimple" class="anchor"></a><strong>allowSimple</strong> (advanced)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to allow in inlined Simple exceptions in the JSONPath expression.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_allowEasyPredicate" class="paragraph"> <p><a href="#_language_option_allowEasyPredicate" class="anchor"></a><strong>allowEasyPredicate</strong> (advanced)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to allow using the easy predicate parser to pre-parse predicates.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_writeAsString" class="paragraph"> <p><a href="#_language_option_writeAsString" class="anchor"></a><strong>writeAsString</strong> (common)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_unpackArray" class="paragraph"> <p><a href="#_language_option_unpackArray" class="anchor"></a><strong>unpackArray</strong> (common)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to unpack a single element json-array into an object.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_option" class="paragraph"> <p><a href="#_language_option_option" class="anchor"></a><strong>option</strong> (advanced)</p> </div></div></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Enum</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To configure additional options on JSONPath. Multiple values can be separated by comma.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>DEFAULT_PATH_LEAF_TO_NULL</p> </li> <li> <p>ALWAYS_RETURN_LIST</p> </li> <li> <p>AS_PATH_LIST</p> </li> <li> <p>SUPPRESS_EXCEPTIONS</p> </li> <li> <p>REQUIRE_PROPERTIES</p> </li> </ul> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_source" class="paragraph"> <p><a href="#_language_option_source" class="anchor"></a><strong>source</strong> (common)</p> </div></div></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_resultType" class="paragraph"> <p><a href="#_language_option_resultType" class="anchor"></a><strong>resultType</strong> (common)</p> </div></div></td> <td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Sets the class of the result type (type from output).</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><div class="content"><div id="_language_option_trim" class="paragraph"> <p><a href="#_language_option_trim" class="anchor"></a><strong>trim</strong> (advanced)</p> </div></div></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Boolean</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to trim the value to remove leading and trailing whitespaces and line breaks.</p> </div></div></td> </tr> </tbody> </table></div> </div> </div> <div class="sect1"> <h2 id="_usage"><a class="anchor" href="#_usage"></a>Usage</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_jsonpath_syntax"><a class="anchor" href="#_jsonpath_syntax"></a>JSONPath Syntax</h3> <div class="paragraph"> <p>Using the JSONPath syntax takes some time to learn, even for basic predicates. So for example, to find out all the cheap books you have to do:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">$.store.book[?(@.price < 20)]</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_easy_jsonpath_syntax"><a class="anchor" href="#_easy_jsonpath_syntax"></a>Easy JSONPath Syntax</h3> <div class="paragraph"> <p>However, what if you could just write it as:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">store.book.price < 20</code></pre> </div> </div> <div class="paragraph"> <p>And you can omit the path if you just want to look at nodes with a price key:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">price < 20</code></pre> </div> </div> <div class="paragraph"> <p>To support this there is a <code>EasyPredicateParser</code> which kicks-in if you have defined the predicate using a basic style. That means the predicate must not start with the <code>$</code> sign, and only include one operator.</p> </div> <div class="paragraph"> <p>The easy syntax is:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">left OP right</code></pre> </div> </div> <div class="paragraph"> <p>You can use Camel simple language in the right operator, eg:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">store.book.price < ${header.limit}</code></pre> </div> </div> <div class="paragraph"> <p>See the <a href="https://github.com/json-path/JsonPath">JSONPath</a> project page for more syntax examples.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_examples"><a class="anchor" href="#_examples"></a>Examples</h2> <div class="sectionbody"> <div class="paragraph"> <p>For example, you can use JSONPath in a <a href="../../../manual/predicate.html" class="xref page">Predicate</a> with the <a href="../eips/choice-eip.html" class="xref page">Content-Based Router</a> EIP.</p> </div> <div id="_tabs_1" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_1_java" class="tab"> <p>Java</p> </li> <li id="_tabs_1_xml_dsl" class="tab"> <p>XML DSL</p> </li> </ul> </div> <div id="_tabs_1_java--panel" class="tabpanel" aria-labelledby="_tabs_1_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("queue:books.new") |
| .choice() |
| .when().jsonpath("$.store.book[?(@.price < 10)]") |
| .to("jms:queue:book.cheap") |
| .when().jsonpath("$.store.book[?(@.price < 30)]") |
| .to("jms:queue:book.average") |
| .otherwise() |
| .to("jms:queue:book.expensive");</code></pre> </div> </div> </div> <div id="_tabs_1_xml_dsl--panel" class="tabpanel" aria-labelledby="_tabs_1_xml_dsl"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <choice> |
| <when> |
| <jsonpath>$.store.book[?(@.price &lt; 10)]</jsonpath> |
| <to uri="mock:cheap"/> |
| </when> |
| <when> |
| <jsonpath>$.store.book[?(@.price &lt; 30)]</jsonpath> |
| <to uri="mock:average"/> |
| </when> |
| <otherwise> |
| <to uri="mock:expensive"/> |
| </otherwise> |
| </choice> |
| </route></code></pre> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_supported_message_body_types"><a class="anchor" href="#_supported_message_body_types"></a>Supported message body types</h3> <div class="paragraph"> <p>Camel JSONPath supports message body using the following types:</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Type</th> <th class="tableblock halign-left valign-top">Comment</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>File</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Reading from files</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>String</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Plain strings</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Map</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Message bodies as <code>java.util.Map</code> types</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>List</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Message bodies as <code>java.util.List</code> types</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>POJO</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Optional</strong> If Jackson is on the classpath, then camel-jsonpath is able to use Jackson to read the message body as POJO and convert to <code>java.util.Map</code> which is supported by JSONPath. For example, you can add <code>camel-jackson</code> as dependency to include Jackson.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InputStream</code></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">If none of the above types matches, then Camel will attempt to read the message body as a <code>java.io.InputStream</code>.</p></td> </tr> </tbody> </table></div> <div class="paragraph"> <p>If a message body is of unsupported type, then an exception is thrown by default. However, you can configure JSONPath to suppress exceptions (see below)</p> </div> </div> <div class="sect2"> <h3 id="_suppressing_exceptions"><a class="anchor" href="#_suppressing_exceptions"></a>Suppressing exceptions</h3> <div class="paragraph"> <p>By default, jsonpath will throw an exception if the json payload does not have a valid path accordingly to the configured jsonpath expression. In some use-cases, you may want to ignore this in case the json payload contains optional data. Therefore, you can set the option <code>suppressExceptions</code> to <code>true</code> to ignore this as shown:</p> </div> <div id="_tabs_2" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_2_java" class="tab"> <p>Java</p> </li> <li id="_tabs_2_xml_dsl" class="tab"> <p>XML DSL</p> </li> </ul> </div> <div id="_tabs_2_java--panel" class="tabpanel" aria-labelledby="_tabs_2_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .choice() |
| // use true to suppress exceptions |
| .when().jsonpath("person.middlename", true) |
| .to("mock:middle") |
| .otherwise() |
| .to("mock:other");</code></pre> </div> </div> </div> <div id="_tabs_2_xml_dsl--panel" class="tabpanel" aria-labelledby="_tabs_2_xml_dsl"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <choice> |
| <when> |
| <jsonpath suppressExceptions="true">person.middlename</jsonpath> |
| <to uri="mock:middle"/> |
| </when> |
| <otherwise> |
| <to uri="mock:other"/> |
| </otherwise> |
| </choice> |
| </route></code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>This option is also available on the <code>@JsonPath</code> annotation.</p> </div> </div> <div class="sect2"> <h3 id="_inline_simple_expressions"><a class="anchor" href="#_inline_simple_expressions"></a>Inline Simple expressions</h3> <div class="paragraph"> <p>It’s possible to inlined <a href="simple-language.html" class="xref page">Simple</a> language in the JSONPath expression using the simple syntax <code>${xxx}</code>.</p> </div> <div class="paragraph"> <p>An example is shown below:</p> </div> <div id="_tabs_3" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_3_java" class="tab"> <p>Java</p> </li> <li id="_tabs_3_xml_dsl" class="tab"> <p>XML DSL</p> </li> </ul> </div> <div id="_tabs_3_java--panel" class="tabpanel" aria-labelledby="_tabs_3_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .choice() |
| .when().jsonpath("$.store.book[?(@.price < ${header.cheap})]") |
| .to("mock:cheap") |
| .when().jsonpath("$.store.book[?(@.price < ${header.average})]") |
| .to("mock:average") |
| .otherwise() |
| .to("mock:expensive");</code></pre> </div> </div> </div> <div id="_tabs_3_xml_dsl--panel" class="tabpanel" aria-labelledby="_tabs_3_xml_dsl"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <choice> |
| <when> |
| <jsonpath>$.store.book[?(@.price &lt; ${header.cheap})]</jsonpath> |
| <to uri="mock:cheap"/> |
| </when> |
| <when> |
| <jsonpath>$.store.book[?(@.price &lt; ${header.average})]</jsonpath> |
| <to uri="mock:average"/> |
| </when> |
| <otherwise> |
| <to uri="mock:expensive"/> |
| </otherwise> |
| </choice> |
| </route></code></pre> </div> </div> </div> </div> </div> <div class="paragraph"> <p>You can turn off support for inlined Simple expression by setting the option <code>allowSimple</code> to <code>false</code> as shown:</p> </div> <div id="_tabs_4" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_4_java" class="tab"> <p>Java</p> </li> <li id="_tabs_4_xml_dsl" class="tab"> <p>XML DSL</p> </li> </ul> </div> <div id="_tabs_4_java--panel" class="tabpanel" aria-labelledby="_tabs_4_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">.when().jsonpath("$.store.book[?(@.price < 10)]", false, false)</code></pre> </div> </div> </div> <div id="_tabs_4_xml_dsl--panel" class="tabpanel" aria-labelledby="_tabs_4_xml_dsl"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><jsonpath allowSimple="false">$.store.book[?(@.price &lt; 10)]</jsonpath></code></pre> </div> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_using_variables_as_source"><a class="anchor" href="#_using_variables_as_source"></a>Using variables as source</h3> <div class="paragraph"> <p>By default, the message body is the source for the jsonpath evaluation. However, if you need to refer to a variable or message header instead as the body, then this is easy as shown below:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setVariable("cars", constant("[\"Ford\", \"BMW\", \"Fiat\"]")) |
| .setBody(simple("${jsonpath(variable:cars , $.length())}")) |
| .to("mock:cars");</code></pre> </div> </div> <div class="paragraph"> <p>Here we set a variable named <em>cars</em> with a json array of 3 cars. Then we want to count the length of the array using jsonpath length function. Notice how we use the inlined simple language, and can easily refer to the variable as the source using <code>variable:cars</code>.</p> </div> </div> <div class="sect2"> <h3 id="_jsonpath_injection"><a class="anchor" href="#_jsonpath_injection"></a>JSONPath injection</h3> <div class="paragraph"> <p>You can use <a href="../../../manual/bean-integration.html" class="xref page">Bean Integration</a> to invoke a method on a bean and use various languages such as JSONPath (via the <code>@JsonPath</code> annotation) to extract a value from the message and bind it to a method parameter, as shown below:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class Foo { |
| |
| @Consume("activemq:queue:books.new") |
| public void doSomething(@JsonPath("$.store.book[*].author") String author, @Body String json) { |
| // process the inbound message here |
| } |
| }</code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_encoding_detection"><a class="anchor" href="#_encoding_detection"></a>Encoding Detection</h3> <div class="paragraph"> <p>The encoding of the JSON document is detected automatically, if the document is encoded in unicode (UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE) as specified in RFC-4627. If the encoding is a non-unicode encoding, you can either make sure that you enter the document in String format to JSONPath, or you can specify the encoding in the header <code>CamelJsonPathJsonEncoding</code> which is defined as a constant in: <code>JsonpathConstants.HEADER_JSON_ENCODING</code>.</p> </div> </div> <div class="sect2"> <h3 id="_split_json_data_into_sub_rows_as_json"><a class="anchor" href="#_split_json_data_into_sub_rows_as_json"></a>Split JSON data into sub rows as JSON</h3> <div class="paragraph"> <p>You can use JSONPath to split a JSON document, such as:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .split().jsonpath("$.store.book[*]", List.class) |
| .to("log:book");</code></pre> </div> </div> <div class="admonitionblock important"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-important" title="Important"></i> </td> <td class="content"> Notice how we specify <code>List.class</code> as the result-type. This is because if there is only a single element (only 1 book), then jsonpath will return the single entity as a <code>Map</code> instead of <code>List<Map></code>. Therefore, we tell Camel that the result should always be a <code>List</code>, and Camel will then automatic wrap the single element into a new <code>List</code> object. </td> </tr> </table></div> </div> <div class="paragraph"> <p>Then each book is logged, however the message body is a <code>Map</code> instance. Sometimes you may want to output this as plain String JSON value instead, which can be done with the <code>writeAsString</code> option as shown:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .split().jsonpathWriteAsString("$.store.book[*]", List.class) |
| .to("log:book");</code></pre> </div> </div> <div class="paragraph"> <p>Then each book is logged as a String JSON value.</p> </div> </div> <div class="sect2"> <h3 id="_unpack_a_single_element_array_into_an_object"><a class="anchor" href="#_unpack_a_single_element_array_into_an_object"></a>Unpack a single-element array into an object</h3> <div class="paragraph"> <p>It is possible to unpack a single-element array into an object:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setBody().jsonpathUnpack("$.store.book", Book.class) |
| .to("log:book");</code></pre> </div> </div> <div class="paragraph"> <p>If a book array contains only one book, it will be converted into a Book object.</p> </div> </div> <div class="sect2"> <h3 id="_using_header_as_input"><a class="anchor" href="#_using_header_as_input"></a>Using header as input</h3> <div class="paragraph"> <p>By default, JSONPath uses the message body as the input source. However, you can also use a header as input by specifying the <code>headerName</code> option.</p> </div> <div class="paragraph"> <p>For example, to count the number of books from a JSON document that was stored in a header named <code>books</code> you can do:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader("numberOfBooks") |
| .jsonpath("$..store.book.length()", false, int.class, "books") |
| .to("mock:result");</code></pre> </div> </div> <div class="paragraph"> <p>In the <code>jsonpath</code> expression above we specify the name of the header as <code>books</code>, and we also told that we wanted the result to be converted as an integer by <code>int.class</code>.</p> </div> <div class="paragraph"> <p>The same example in XML DSL would be:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><route> |
| <from uri="direct:start"/> |
| <setHeader name="numberOfBooks"> |
| <jsonpath headerName="books" resultType="int">$..store.book.length()</jsonpath> |
| </setHeader> |
| <to uri="mock:result"/> |
| </route></code></pre> </div> </div> </div> <div class="sect2"> <h3 id="_transforming_a_json_message"><a class="anchor" href="#_transforming_a_json_message"></a>Transforming a JSon message</h3> <div class="paragraph"> <p>For basic JSon transformation where you have a fixed structure, you can represent with a combination of using Camel simple and JSonPath language as:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-json hljs" data-lang="json">{ |
| "company": "${jsonpath($.customer.name)}", |
| "location": "${jsonpath($.customer.address.country)}", |
| "gold": ${jsonpath($.customer.orders.length() > 5)} |
| }</code></pre> </div> </div> <div class="paragraph"> <p>Here we use the simple language to define the structure and use JSonPath as inlined functions via the <code>${jsonpath(exp)}</code> syntax.</p> </div> <div class="paragraph"> <p>This makes it possible to use simple as a template language to define a basic structure and then JSonPath to grab the data from an incoming JSon message. The output of the transformation is also JSon, but with simple you could also make it XML or plain text based:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><customer gold="${jsonpath($.customer.orders.length() > 5)}"> |
| <company>${jsonpath($.customer.name)}</company> |
| <location>${jsonpath($.customer.address.country)}</location> |
| </customer></code></pre> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_spring_boot_auto_configuration"><a class="anchor" href="#_spring_boot_auto_configuration"></a>Spring Boot Auto-Configuration</h2> <div class="sectionbody"> <div class="paragraph"> <p>When using jsonpath with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><dependency> |
| <groupId>org.apache.camel.springboot</groupId> |
| <artifactId>camel-jsonpath-starter</artifactId> |
| <version>x.x.x</version> |
| <!-- use the same version as your Camel core version --> |
| </dependency></code></pre> </div> </div> <div class="paragraph"> <p>The component supports 9 options, which are listed below.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Name</th> <th class="tableblock halign-left valign-top">Description</th> <th class="tableblock halign-center valign-top">Default</th> <th class="tableblock halign-left valign-top">Type</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_allow-easy-predicate"></a> <a href="#_sb_option_camel_language_jsonpath_allow-easy-predicate" class="anchor"></a><strong>camel.language.jsonpath.allow-easy-predicate</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to allow using the easy predicate parser to pre-parse predicates.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_allow-simple"></a> <a href="#_sb_option_camel_language_jsonpath_allow-simple" class="anchor"></a><strong>camel.language.jsonpath.allow-simple</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to allow in inlined Simple exceptions in the JSONPath expression.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_enabled"></a> <a href="#_sb_option_camel_language_jsonpath_enabled" class="anchor"></a><strong>camel.language.jsonpath.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the jsonpath language. This is enabled by default.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_option"></a> <a href="#_sb_option_camel_language_jsonpath_option" class="anchor"></a><strong>camel.language.jsonpath.option</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To configure additional options on JSONPath. Multiple values can be separated by comma.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_source"></a> <a href="#_sb_option_camel_language_jsonpath_source" class="anchor"></a><strong>camel.language.jsonpath.source</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source. Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_suppress-exceptions"></a> <a href="#_sb_option_camel_language_jsonpath_suppress-exceptions" class="anchor"></a><strong>camel.language.jsonpath.suppress-exceptions</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to suppress exceptions such as PathNotFoundException.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_trim"></a> <a href="#_sb_option_camel_language_jsonpath_trim" class="anchor"></a><strong>camel.language.jsonpath.trim</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to trim the value to remove leading and trailing whitespaces and line breaks.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_unpack-array"></a> <a href="#_sb_option_camel_language_jsonpath_unpack-array" class="anchor"></a><strong>camel.language.jsonpath.unpack-array</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to unpack a single element json-array into an object.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_language_jsonpath_write-as-string"></a> <a href="#_sb_option_camel_language_jsonpath_write-as-string" class="anchor"></a><strong>camel.language.jsonpath.write-as-string</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Boolean</p></td> </tr> </tbody> </table></div> </div> </div> </article> <aside class="toc sidebar" aria-label="Table of contents" data-title="Contents" data-levels="2"> <div class="toc-menu"></div> </aside> </div> </main> </div> <div class="footer-tools"> <a href="#top" title="Reach the top of the page">Back to top</a> </div> <footer> <div class="footer"> <figure class="logo"> <img src="../../../_/img/logo-d-a567cee6fa.svg" class="logo-small mt-60" alt="Apache Camel Logo" aria-label="white silhouette of a camel in front of a sand dune"> </figure> <input id="footer-toggle-overview" type="checkbox" title="Show/Hide Overview section"> <dl> <dt><label for="footer-toggle-overview">Overview</label><label for="footer-toggle-overview">+</label></dt> <dd><a href="../../../blog/">Blog</a></dd> <dd><a href="../../../docs/">Documentation</a></dd> <dd><a href="../../../community/support/">Community</a></dd> <dd><a href="../../../download/">Download</a></dd> </dl> <input id="footer-toggle-documentation" type="checkbox" title="Show/Hide Documentation section"> <dl> <dt><label for="footer-toggle-documentation">Documentation</label><label for="footer-toggle-documentation">+</label></dt> <dd><a href="../../../manual/">User Manual</a></dd> <dd><a href="../../../components/next/index.html">Components</a></dd> <dd><a href="../../../camel-k/next/">Camel-K</a></dd> <dd><a href="../../../camel-kafka-connector/next/">Camel Kafka Connector</a></dd> <dd><a href="../../../camel-quarkus/next/">Camel Quarkus</a></dd> <dd><a href="../../../camel-spring-boot/next/">Camel Spring Boot</a></dd> <dd><a href="../../../camel-karaf/3.22.x/">Camel Karaf</a></dd> <dd><a href="../../../manual/faq/index.html">FAQ</a></dd> </dl> <input id="footer-toggle-community" type="checkbox" title="Show/Hide Community section"> <dl> <dt><label for="footer-toggle-community">Community</label><label for="footer-toggle-community">+</label></dt> <dd><a href="../../../community/support/">Support</a></dd> <dd><a href="../../../community/contributing/">Contributing</a></dd> <dd><a href="../../../community/mailing-list/">Mailing Lists</a></dd> <dd><a href="../../../community/user-stories/">User stories</a></dd> <dd><a href="../../../community/articles/">Articles</a></dd> <dd><a href="../../../community/books/">Books</a></dd> <dd><a href="../../../community/team/">Team</a></dd> </dl> <input id="footer-toggle-about" type="checkbox" title="Show/Hide Acknowledgements section"> <dl> <dt><label for="footer-toggle-about">About</label><label for="footer-toggle-about">+</label></dt> <dd><a href="../../../acknowledgments/">Acknowledgments</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/licenses/" title="License">License</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/security/" title="Security">Security</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></dd> <dd><a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></dd> </dl> <p class="remark"> © 2004-2025 The <a href="https://apache.org">Apache Software Foundation</a>.<br> Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p> <div class="resources"> <div class="context"> <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a> </div> <div class="context"> <a target="_blank" rel="noopener noreferrer nofollow" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a> </div> <div class="context"> <a href="../../../sitemap/">Sitemap</a> </div> </div> <div class="footer-icons"> <a rel="noopener noreferrer nofollow" href="https://github.com/apache/camel/" title="Collaborate on GitHub"><svg class="brand-icon" focusable="false"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#github"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://camel.zulipchat.com" title="Chat on Zulip"><svg class="brand-icon" focusable="false"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#zulip"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://twitter.com/ApacheCamel" title="Follow Apache Camel on Twitter"><svg class="brand-icon" focusable="false"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#twitter"/></svg></a> <a rel="noopener noreferrer nofollow" href="https://www.linkedin.com/groups/2447439/" title="Apache Camel group on Linkedin"><svg class="brand-icon" focusable="false"><use xlink:href="../../../_/img/brand-logos-f2e689f4d4.svg#linkedin"/></svg></a> </div> </div> </footer> <script src="../../../_/js/vendor/algoliasearch-bad45193e2.js"></script> <script src="../../../_/js/site-c215fb6972.js"></script> <script async src="../../../_/js/vendor/highlight-621a10fe1b.js"></script> <script async src="../../../_/js/vendor/svg4everybody-a0c573f2b9.js"></script> <script async src="../../../_/js/vendor/tabs-5aea11bcf5.js" data-sync-storage-key="preferred-tab"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "name": "Apache Camel", "url": "https://camel.apache.org", "sameAs": [ "https://twitter.com/ApacheCamel" ], "logo": "../../../_/img/logo-d-a567cee6fa.svg", "description": "Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL." } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Apache Camel", "item": "https://camel.apache.org/" }, { "@type": "ListItem", "position": 2, "name": "Camel Components", "item": "https://camel.apache.org/components/4.10.x/index.html" }, { "@type": "ListItem", "position": 3, "name": "Next (Pre-release)", "item": "https://camel.apache.org/components/next/index.html" }, { "@type": "ListItem", "position": 4, "name": "Languages", "item": "https://camel.apache.org/components/next/languages/index.html" }, { "@type": "ListItem", "position": 5, "name": "JSONPath", "item": "https://camel.apache.org/components/next/languages/jsonpath-language.html" }] } </script> </body> </html> |