| <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>CSimple :: Apache Camel</title> <link rel="canonical" href="https://camel.apache.org/components/4.10.x/languages/csimple-language.html"> <meta name="description" content="Evaluate a compiled simple expression."> <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="CSimple"> <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 is-current-page" 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" 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="csimple-language.html">CSimple</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="csimple-language.html">Next (Pre-release)</a> <a class="version" href="../../4.10.x/languages/csimple-language.html">4.10.x (LTS)</a> <a class="version" href="../../4.8.x/languages/csimple-language.html">4.8.x (LTS)</a> <a class="version" href="../../3.22.x/languages/csimple-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/csimple-language.adoc">Edit this Page</a></div> </nav> <div class="content"> <article class="doc"> <h1 class="page">CSimple</h1> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"> <p><strong>Since Camel 3.7</strong></p> </div> <div class="paragraph"> <p>The CSimple language is <strong>compiled</strong> <a href="simple-language.html" class="xref page">Simple</a> language.</p> </div> </div> </div> <div class="sect1"> <h2 id="_different_between_csimple_and_simple"><a class="anchor" href="#_different_between_csimple_and_simple"></a>Different between CSimple and Simple</h2> <div class="sectionbody"> <div class="paragraph"> <p>The simple language is a dynamic expression language which is runtime parsed into a set of Camel Expressions or Predicates.</p> </div> <div class="paragraph"> <p>The csimple language is parsed into regular Java source code and compiled together with all the other source code, or compiled once during bootstrap via the <code>camel-csimple-joor</code> module.</p> </div> <div class="paragraph"> <p>The simple language is generally very lightweight and fast, however for some use-cases with dynamic method calls via OGNL paths, then the simple language does runtime introspection and reflection calls. This has an overhead on performance, and was one of the reasons why csimple was created.</p> </div> <div class="paragraph"> <p>The csimple language requires to be typesafe and method calls via OGNL paths requires to know the type during parsing. This means for csimple languages expressions you would need to provide the class type in the script, whereas simple introspects this at runtime.</p> </div> <div class="paragraph"> <p>In other words the simple language is using <em>duck typing</em> (if it looks like a duck, and quacks like a duck, then it is a duck) and csimple is using Java type (typesafety). If there is a type error then simple will report this at runtime, and with csimple there will be a Java compilation error.</p> </div> <div class="sect2"> <h3 id="_additional_csimple_functions"><a class="anchor" href="#_additional_csimple_functions"></a>Additional CSimple functions</h3> <div class="paragraph"> <p>The csimple language includes some additional functions to support common use-cases working with <code>Collection</code>, <code>Map</code> or array types. The following functions <em>bodyAsIndex</em>, <em>headerAsIndex</em>, and <em>exchangePropertyAsIndex</em> is used for these use-cases as they are typed.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <colgroup> <col> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Function</th> <th class="tableblock halign-left valign-top">Type</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">bodyAsIndex(<em>type</em>, <em>index</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To be used for collecting the body from an existing <code>Collection</code>, <code>Map</code> or array (lookup by the index) and then converting the body to the given type determined by its classname. The converted body can be null.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">mandatoryBodyAsIndex(<em>type</em>, <em>index</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To be used for collecting the body from an existing <code>Collection</code>, <code>Map</code> or array (lookup by the index) and then converting the body to the given type determined by its classname. Expects the body to be not null.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">headerAsIndex(<em>key</em>, <em>type</em>, <em>index</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To be used for collecting a header from an existing <code>Collection</code>, <code>Map</code> or array (lookup by the index) and then converting the header value to the given type determined by its classname. The converted header can be null.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">exchangePropertyAsIndex(<em>key</em>, <em>type</em>, <em>index</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To be used for collecting an exchange property from an existing <code>Collection</code>, <code>Map</code> or array (lookup by the index) and then converting the exchange property to the given type determined by its classname. The converted exchange property can be null.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">variableAsIndex(<em>key</em>, <em>type</em>, <em>index</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To be used for collecting a variable from an existing <code>Collection</code>, <code>Map</code> or array (lookup by the index) and then converting the variable to the given type determined by its classname. The converted variable can be null.</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">messageAs(<em>type</em>)</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Type</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Converts the message to the given type determined by its classname. The converted message can be null.</p></td> </tr> </tbody> </table></div> <div class="paragraph"> <p>For example given the following simple expression:</p> </div> <div class="exampleblock"> <div class="content"> <div class="paragraph"> <p>Hello ${body[0].name}</p> </div> </div> </div> <div class="paragraph"> <p>This script has no type information, and the simple language will resolve this at runtime, by introspecting the message body and if it’s a collection based then lookup the first element, and then invoke a method named <code>getName</code> via reflection.</p> </div> <div class="paragraph"> <p>In csimple (compiled) we want to pre compile this and therefore the end user must provide type information with the <em>bodyAsIndex</em> function:</p> </div> <div class="exampleblock"> <div class="content"> <div class="paragraph"> <p>Hello ${bodyAsIndex(com.foo.MyUser, 0).name}</p> </div> </div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_compilation"><a class="anchor" href="#_compilation"></a>Compilation</h2> <div class="sectionbody"> <div class="paragraph"> <p>The csimple language is parsed into regular Java source code and compiled together with all the other source code, or it can be compiled once during bootstrap via the <code>camel-csimple-joor</code> module.</p> </div> <div class="paragraph"> <p>There are two ways to compile csimple</p> </div> <div class="ulist"> <ul> <li> <p>using the <code>camel-csimple-maven-plugin</code> generating source code at built time.</p> </li> <li> <p>using <code>camel-csimple-joor</code> which does runtime in-memory compilation during bootstrap of Camel.</p> </li> </ul> </div> <div class="sect2"> <h3 id="_using_camel_csimple_maven_plugin"><a class="anchor" href="#_using_camel_csimple_maven_plugin"></a>Using camel-csimple-maven-plugin</h3> <div class="paragraph"> <p>The <code>camel-csimple-maven-plugin</code> Maven plugin is used for discovering all the csimple scripts from the source code, and then automatic generate source code in the <code>src/generated/java</code> folder, which then gets compiled together with all the other sources.</p> </div> <div class="paragraph"> <p>The maven plugin will do source code scanning of <code>.java</code> and <code>.xml</code> files (Java and XML DSL). The scanner limits to detect certain code patterns, and it may miss discovering some csimple scripts if they are being used in unusual/rare ways.</p> </div> <div class="paragraph"> <p>The runtime compilation using <code>camel-csimple-joor</code> does not have this limitation.</p> </div> <div class="paragraph"> <p>The benefit is all the csimple scripts will be compiled using the regular Java compiler and therefore everything is included out of the box as <code>.class</code> files in the application JAR file, and no additional dependencies is required at runtime.</p> </div> <div class="paragraph"> <p>To use <code>camel-csimple-maven-plugin</code> you need to add it to your <code>pom.xml</code> file as shown:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><plugins> |
| <!-- generate source code for csimple languages --> |
| <plugin> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-csimple-maven-plugin</artifactId> |
| <version>${camel.version}</version> |
| <executions> |
| <execution> |
| <id>generate</id> |
| <goals> |
| <goal>generate</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- include source code generated to maven sources paths --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.1.0</version> |
| <executions> |
| <execution> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| <goal>add-resource</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>src/generated/java</source> |
| </sources> |
| <resources> |
| <resource> |
| <directory>src/generated/resources</directory> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins></code></pre> </div> </div> <div class="paragraph"> <p>And then you must also add the <code>build-helper-maven-plugin</code> Maven plugin to include <code>src/generated</code> to the list of source folders for the Java compiler, to ensure the generated source code is compiled and included in the application JAR file.</p> </div> <div class="paragraph"> <p>See the <code>camel-example-csimple</code> example at <a href="https://github.com/apache/camel-examples">Camel Examples</a> which uses the maven plugin.</p> </div> </div> <div class="sect2"> <h3 id="_using_camel_csimple_joor"><a class="anchor" href="#_using_camel_csimple_joor"></a>Using camel-csimple-joor</h3> <div class="paragraph"> <p>The jOOR library integrates with the Java compiler and performs runtime compilation of Java code.</p> </div> <div class="paragraph"> <p>The supported runtime when using <code>camel-simple-joor</code> is intended for Java standalone, Spring Boot, Camel Quarkus and other microservices runtimes. It is not supported on any kind of Java Application Server runtime.</p> </div> <div class="paragraph"> <p>jOOR does not support runtime compilation with Spring Boot using <em>fat jar</em> packaging (<a href="https://github.com/jOOQ/jOOR/issues/69" class="bare">https://github.com/jOOQ/jOOR/issues/69</a>), it works with exploded classpath.</p> </div> <div class="paragraph"> <p>To use <code>camel-simple-joor</code> you simply just add it as dependency to the classpath:</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</groupId> |
| <artifactId>camel-csimple-joor</artifactId> |
| <version>x.x.x</version> |
| </dependency></code></pre> </div> </div> <div class="paragraph"> <p>There is no need for adding Maven plugins to the <code>pom.xml</code> file.</p> </div> <div class="paragraph"> <p>See the <code>camel-example-csimple-joor</code> example at <a href="https://github.com/apache/camel-examples">Camel Examples</a> which uses the jOOR compiler.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_csimple_language_options"><a class="anchor" href="#_csimple_language_options"></a>CSimple Language options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The CSimple language supports 2 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_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="_limitations"><a class="anchor" href="#_limitations"></a>Limitations</h2> <div class="sectionbody"> <div class="paragraph"> <p>Currently, the csimple language does <strong>not</strong> support:</p> </div> <div class="ulist"> <ul> <li> <p>nested functions (aka functions inside functions)</p> </li> <li> <p>the <em>null safe</em> operator (<code>?</code>).</p> </li> </ul> </div> <div class="paragraph"> <p>For example the following scripts cannot compile:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text"> Hello ${bean:greeter(${body}, ${header.counter})}</code></pre> </div> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text"> ${bodyAs(MyUser)?.address?.zip} > 10000</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_auto_imports"><a class="anchor" href="#_auto_imports"></a>Auto imports</h2> <div class="sectionbody"> <div class="paragraph"> <p>The csimple language will automatically import from:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">import java.util.*; |
| import java.util.concurrent.*; |
| import java.util.stream.*; |
| import org.apache.camel.*; |
| import org.apache.camel.util.*;</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_configuration_file"><a class="anchor" href="#_configuration_file"></a>Configuration file</h2> <div class="sectionbody"> <div class="paragraph"> <p>You can configure the csimple language in the <code>camel-csimple.properties</code> file which is loaded from the root classpath.</p> </div> <div class="paragraph"> <p>For example you can add additional imports in the <code>camel-csimple.properties</code> file by adding:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties">import com.foo.MyUser; |
| import com.bar.*; |
| import static com.foo.MyHelper.*;</code></pre> </div> </div> <div class="paragraph"> <p>You can also add aliases (key=value) where an alias will be used as a shorthand replacement in the code.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties">echo()=${bodyAs(String)} ${bodyAs(String)}</code></pre> </div> </div> <div class="paragraph"> <p>Which allows to use <em>echo()</em> in the csimple language script such as:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:hello") |
| .transform(csimple("Hello echo()")) |
| .log("You said ${body}");</code></pre> </div> </div> <div class="paragraph"> <p>The <em>echo()</em> alias will be replaced with its value resulting in a script as:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java"> .transform(csimple("Hello ${bodyAs(String)} ${bodyAs(String)}"))</code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_see_also"><a class="anchor" href="#_see_also"></a>See Also</h2> <div class="sectionbody"> <div class="paragraph"> <p>See the <a href="simple-language.html" class="xref page">Simple</a> language as csimple has the same set of functions as simple language.</p> </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 csimple 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-core-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 114 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_cloud_consul_service-discovery_acl-token"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_acl-token" class="anchor"></a><strong>camel.cloud.consul.service-discovery.acl-token</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the ACL token to be used with Consul.</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_cloud_consul_service-discovery_block-seconds"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_block-seconds" class="anchor"></a><strong>camel.cloud.consul.service-discovery.block-seconds</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The seconds to wait for a watch event, default 10 seconds.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">10</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_consul_service-discovery_configurations"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_configurations" class="anchor"></a><strong>camel.cloud.consul.service-discovery.configurations</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define additional configuration definitions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_consul_service-discovery_connect-timeout-millis"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_connect-timeout-millis" class="anchor"></a><strong>camel.cloud.consul.service-discovery.connect-timeout-millis</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Connect timeout for OkHttpClient.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_consul_service-discovery_datacenter"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_datacenter" class="anchor"></a><strong>camel.cloud.consul.service-discovery.datacenter</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The data center.</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_cloud_consul_service-discovery_enabled"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_enabled" class="anchor"></a><strong>camel.cloud.consul.service-discovery.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enable the component.</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_cloud_consul_service-discovery_password"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_password" class="anchor"></a><strong>camel.cloud.consul.service-discovery.password</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the password to be used for basic authentication.</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_cloud_consul_service-discovery_properties"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_properties" class="anchor"></a><strong>camel.cloud.consul.service-discovery.properties</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_consul_service-discovery_read-timeout-millis"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_read-timeout-millis" class="anchor"></a><strong>camel.cloud.consul.service-discovery.read-timeout-millis</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Read timeout for OkHttpClient.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_consul_service-discovery_url"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_url" class="anchor"></a><strong>camel.cloud.consul.service-discovery.url</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The Consul agent URL.</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_cloud_consul_service-discovery_user-name"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_user-name" class="anchor"></a><strong>camel.cloud.consul.service-discovery.user-name</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the username to be used for basic authentication.</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_cloud_consul_service-discovery_write-timeout-millis"></a> <a href="#_sb_option_camel_cloud_consul_service-discovery_write-timeout-millis" class="anchor"></a><strong>camel.cloud.consul.service-discovery.write-timeout-millis</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Write timeout for OkHttpClient.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Long</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_dns_service-discovery_configurations"></a> <a href="#_sb_option_camel_cloud_dns_service-discovery_configurations" class="anchor"></a><strong>camel.cloud.dns.service-discovery.configurations</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define additional configuration definitions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_dns_service-discovery_domain"></a> <a href="#_sb_option_camel_cloud_dns_service-discovery_domain" class="anchor"></a><strong>camel.cloud.dns.service-discovery.domain</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The domain name;.</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_cloud_dns_service-discovery_enabled"></a> <a href="#_sb_option_camel_cloud_dns_service-discovery_enabled" class="anchor"></a><strong>camel.cloud.dns.service-discovery.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enable the component.</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_cloud_dns_service-discovery_properties"></a> <a href="#_sb_option_camel_cloud_dns_service-discovery_properties" class="anchor"></a><strong>camel.cloud.dns.service-discovery.properties</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_dns_service-discovery_proto"></a> <a href="#_sb_option_camel_cloud_dns_service-discovery_proto" class="anchor"></a><strong>camel.cloud.dns.service-discovery.proto</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The transport protocol of the desired service.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">_tcp</p></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_cloud_kubernetes_service-discovery_api-version"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_api-version" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.api-version</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the API version when using client lookup.</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_cloud_kubernetes_service-discovery_ca-cert-data"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_ca-cert-data" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.ca-cert-data</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Certificate Authority data when using client lookup.</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_cloud_kubernetes_service-discovery_ca-cert-file"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_ca-cert-file" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.ca-cert-file</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Certificate Authority data that are loaded from the file when using client lookup.</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_cloud_kubernetes_service-discovery_client-cert-data"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-cert-data" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-cert-data</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Certificate data when using client lookup.</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_cloud_kubernetes_service-discovery_client-cert-file"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-cert-file" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-cert-file</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Certificate data that are loaded from the file when using client lookup.</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_cloud_kubernetes_service-discovery_client-key-algo"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-key-algo" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-key-algo</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Keystore algorithm, such as RSA when using client lookup.</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_cloud_kubernetes_service-discovery_client-key-data"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-key-data" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-key-data</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Keystore data when using client lookup.</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_cloud_kubernetes_service-discovery_client-key-file"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-key-file" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-key-file</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Keystore data that are loaded from the file when using client lookup.</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_cloud_kubernetes_service-discovery_client-key-passphrase"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_client-key-passphrase" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.client-key-passphrase</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Client Keystore passphrase when using client lookup.</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_cloud_kubernetes_service-discovery_configurations"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_configurations" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.configurations</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define additional configuration definitions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_kubernetes_service-discovery_dns-domain"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_dns-domain" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.dns-domain</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the DNS domain to use for DNS lookup.</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_cloud_kubernetes_service-discovery_enabled"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_enabled" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enable the component.</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_cloud_kubernetes_service-discovery_lookup"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_lookup" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.lookup</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">How to perform service lookup. Possible values: client, dns, environment. When using client, then the client queries the kubernetes master to obtain a list of active pods that provides the service, and then random (or round robin) select a pod. When using dns the service name is resolved as name.namespace.svc.dnsDomain. When using dnssrv the service name is resolved with SRV query for <em>.</em>…​svc…​ When using environment then environment variables are used to lookup the service. By default environment is used.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">environment</p></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_cloud_kubernetes_service-discovery_master-url"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_master-url" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.master-url</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the URL to the master when using client lookup.</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_cloud_kubernetes_service-discovery_namespace"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_namespace" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.namespace</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the namespace to use. Will by default use namespace from the ENV variable KUBERNETES_MASTER.</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_cloud_kubernetes_service-discovery_oauth-token"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_oauth-token" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.oauth-token</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the OAUTH token for authentication (instead of username/password) when using client lookup.</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_cloud_kubernetes_service-discovery_password"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_password" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.password</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the password for authentication when using client lookup.</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_cloud_kubernetes_service-discovery_port-name"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_port-name" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.port-name</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Port Name to use for DNS/DNSSRV lookup.</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_cloud_kubernetes_service-discovery_port-protocol"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_port-protocol" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.port-protocol</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the Port Protocol to use for DNS/DNSSRV lookup.</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_cloud_kubernetes_service-discovery_properties"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_properties" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.properties</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_cloud_kubernetes_service-discovery_trust-certs"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_trust-certs" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.trust-certs</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets whether to turn on trust certificate check when using client lookup.</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_cloud_kubernetes_service-discovery_username"></a> <a href="#_sb_option_camel_cloud_kubernetes_service-discovery_username" class="anchor"></a><strong>camel.cloud.kubernetes.service-discovery.username</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the username for authentication when using client lookup.</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_constant_enabled"></a> <a href="#_sb_option_camel_language_constant_enabled" class="anchor"></a><strong>camel.language.constant.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the constant 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_constant_trim"></a> <a href="#_sb_option_camel_language_constant_trim" class="anchor"></a><strong>camel.language.constant.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_csimple_enabled"></a> <a href="#_sb_option_camel_language_csimple_enabled" class="anchor"></a><strong>camel.language.csimple.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the csimple 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_csimple_trim"></a> <a href="#_sb_option_camel_language_csimple_trim" class="anchor"></a><strong>camel.language.csimple.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_exchange-property_enabled"></a> <a href="#_sb_option_camel_language_exchange-property_enabled" class="anchor"></a><strong>camel.language.exchange-property.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the exchangeProperty 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_exchange-property_trim"></a> <a href="#_sb_option_camel_language_exchange-property_trim" class="anchor"></a><strong>camel.language.exchange-property.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_file_enabled"></a> <a href="#_sb_option_camel_language_file_enabled" class="anchor"></a><strong>camel.language.file.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the file 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_file_trim"></a> <a href="#_sb_option_camel_language_file_trim" class="anchor"></a><strong>camel.language.file.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_header_enabled"></a> <a href="#_sb_option_camel_language_header_enabled" class="anchor"></a><strong>camel.language.header.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the header 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_header_trim"></a> <a href="#_sb_option_camel_language_header_trim" class="anchor"></a><strong>camel.language.header.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_ref_enabled"></a> <a href="#_sb_option_camel_language_ref_enabled" class="anchor"></a><strong>camel.language.ref.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the ref 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_ref_trim"></a> <a href="#_sb_option_camel_language_ref_trim" class="anchor"></a><strong>camel.language.ref.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_simple_enabled"></a> <a href="#_sb_option_camel_language_simple_enabled" class="anchor"></a><strong>camel.language.simple.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the simple 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_simple_trim"></a> <a href="#_sb_option_camel_language_simple_trim" class="anchor"></a><strong>camel.language.simple.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_tokenize_enabled"></a> <a href="#_sb_option_camel_language_tokenize_enabled" class="anchor"></a><strong>camel.language.tokenize.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the tokenize 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_tokenize_group-delimiter"></a> <a href="#_sb_option_camel_language_tokenize_group-delimiter" class="anchor"></a><strong>camel.language.tokenize.group-delimiter</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter.</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_tokenize_source"></a> <a href="#_sb_option_camel_language_tokenize_source" class="anchor"></a><strong>camel.language.tokenize.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_tokenize_trim"></a> <a href="#_sb_option_camel_language_tokenize_trim" class="anchor"></a><strong>camel.language.tokenize.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_variable_enabled"></a> <a href="#_sb_option_camel_language_variable_enabled" class="anchor"></a><strong>camel.language.variable.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the variable 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_variable_trim"></a> <a href="#_sb_option_camel_language_variable_trim" class="anchor"></a><strong>camel.language.variable.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_resilience4j_automatic-transition-from-open-to-half-open-enabled"></a> <a href="#_sb_option_camel_resilience4j_automatic-transition-from-open-to-half-open-enabled" class="anchor"></a><strong>camel.resilience4j.automatic-transition-from-open-to-half-open-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed.</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_resilience4j_bulkhead-enabled"></a> <a href="#_sb_option_camel_resilience4j_bulkhead-enabled" class="anchor"></a><strong>camel.resilience4j.bulkhead-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether bulkhead is enabled or not on the circuit breaker. Default is false.</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_resilience4j_bulkhead-max-concurrent-calls"></a> <a href="#_sb_option_camel_resilience4j_bulkhead-max-concurrent-calls" class="anchor"></a><strong>camel.resilience4j.bulkhead-max-concurrent-calls</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the max amount of concurrent calls the bulkhead will support.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">25</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_bulkhead-max-wait-duration"></a> <a href="#_sb_option_camel_resilience4j_bulkhead-max-wait-duration" class="anchor"></a><strong>camel.resilience4j.bulkhead-max-wait-duration</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space available, entry is guaranteed and immediate. If bulkhead is full, calling threads will contest for space, if it becomes available. maxWaitDuration can be set to 0. Note: for threads running on an event-loop or equivalent (rx computation pool, etc), setting maxWaitDuration to 0 is highly recommended. Blocking an event-loop thread will most likely have a negative effect on application throughput.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">0</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_circuit-breaker"></a> <a href="#_sb_option_camel_resilience4j_circuit-breaker" class="anchor"></a><strong>camel.resilience4j.circuit-breaker</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use.</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_resilience4j_config"></a> <a href="#_sb_option_camel_resilience4j_config" class="anchor"></a><strong>camel.resilience4j.config</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup and use from the registry.</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_resilience4j_configurations"></a> <a href="#_sb_option_camel_resilience4j_configurations" class="anchor"></a><strong>camel.resilience4j.configurations</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define additional configuration definitions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_enabled"></a> <a href="#_sb_option_camel_resilience4j_enabled" class="anchor"></a><strong>camel.resilience4j.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enable the component.</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_resilience4j_failure-rate-threshold"></a> <a href="#_sb_option_camel_resilience4j_failure-rate-threshold" class="anchor"></a><strong>camel.resilience4j.failure-rate-threshold</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Float</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_ignore-exception"></a> <a href="#_sb_option_camel_resilience4j_ignore-exception" class="anchor"></a><strong>camel.resilience4j.ignore-exception</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configure a list of exceptions that are ignored and neither count as a failure nor success. Any exception matching or inheriting from one of the list will not count as a failure nor success, even if the exceptions is part of recordExceptions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">List</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_minimum-number-of-calls"></a> <a href="#_sb_option_camel_resilience4j_minimum-number-of-calls" class="anchor"></a><strong>camel.resilience4j.minimum-number-of-calls</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate. For example, if minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the failure rate can be calculated. If only 9 calls have been recorded the CircuitBreaker will not transition to open even if all 9 calls have failed. Default minimumNumberOfCalls is 100.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">100</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_permitted-number-of-calls-in-half-open-state"></a> <a href="#_sb_option_camel_resilience4j_permitted-number-of-calls-in-half-open-state" class="anchor"></a><strong>camel.resilience4j.permitted-number-of-calls-in-half-open-state</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the number of permitted calls when the CircuitBreaker is half open. The size must be greater than 0. Default size is 10.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">10</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_record-exception"></a> <a href="#_sb_option_camel_resilience4j_record-exception" class="anchor"></a><strong>camel.resilience4j.record-exception</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configure a list of exceptions that are recorded as a failure and thus increase the failure rate. Any exception matching or inheriting from one of the list counts as a failure, unless explicitly ignored via ignoreExceptions.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">List</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_sliding-window-size"></a> <a href="#_sb_option_camel_resilience4j_sliding-window-size" class="anchor"></a><strong>camel.resilience4j.sliding-window-size</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. slidingWindowSize configures the size of the sliding window. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. The slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be greater than 0. If the slidingWindowType is COUNT_BASED, the minimumNumberOfCalls cannot be greater than slidingWindowSize . If the slidingWindowType is TIME_BASED, you can pick whatever you want. Default slidingWindowSize is 100.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">100</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_sliding-window-type"></a> <a href="#_sb_option_camel_resilience4j_sliding-window-type" class="anchor"></a><strong>camel.resilience4j.sliding-window-type</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. Default slidingWindowType is COUNT_BASED.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">COUNT_BASED</p></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_resilience4j_slow-call-duration-threshold"></a> <a href="#_sb_option_camel_resilience4j_slow-call-duration-threshold" class="anchor"></a><strong>camel.resilience4j.slow-call-duration-threshold</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">60</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_slow-call-rate-threshold"></a> <a href="#_sb_option_camel_resilience4j_slow-call-rate-threshold" class="anchor"></a><strong>camel.resilience4j.slow-call-rate-threshold</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that all recorded calls must be slower than slowCallDurationThreshold.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Float</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_throw-exception-when-half-open-or-open-state"></a> <a href="#_sb_option_camel_resilience4j_throw-exception-when-half-open-or-open-state" class="anchor"></a><strong>camel.resilience4j.throw-exception-when-half-open-or-open-state</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to throw io.github.resilience4j.circuitbreaker.CallNotPermittedException when the call is rejected due circuit breaker is half open (and was not attempted but rejected immediately) or open (always rejected). This option is only in use when there is NOT a fallback configured on the circuit breaker. When there is a fallback then the fallback is always executed and CallNotPermittedException is not thrown.</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_resilience4j_timeout-cancel-running-future"></a> <a href="#_sb_option_camel_resilience4j_timeout-cancel-running-future" class="anchor"></a><strong>camel.resilience4j.timeout-cancel-running-future</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures whether cancel is called on the running future. Defaults to true.</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_resilience4j_timeout-duration"></a> <a href="#_sb_option_camel_resilience4j_timeout-duration" class="anchor"></a><strong>camel.resilience4j.timeout-duration</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the thread execution timeout. Default value is 1 second.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">1000</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_timeout-enabled"></a> <a href="#_sb_option_camel_resilience4j_timeout-enabled" class="anchor"></a><strong>camel.resilience4j.timeout-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether timeout is enabled or not on the circuit breaker. Default is false.</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_resilience4j_timeout-executor-service"></a> <a href="#_sb_option_camel_resilience4j_timeout-executor-service" class="anchor"></a><strong>camel.resilience4j.timeout-executor-service</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default).</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">ExecutorService</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_wait-duration-in-open-state"></a> <a href="#_sb_option_camel_resilience4j_wait-duration-in-open-state" class="anchor"></a><strong>camel.resilience4j.wait-duration-in-open-state</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configures the wait duration (in seconds) which specifies how long the CircuitBreaker should stay open, before it switches to half open. Default value is 60 seconds.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">60</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Integer</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_resilience4j_writable-stack-trace-enabled"></a> <a href="#_sb_option_camel_resilience4j_writable-stack-trace-enabled" class="anchor"></a><strong>camel.resilience4j.writable-stack-trace-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls).</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_rest_api-component"></a> <a href="#_sb_option_camel_rest_api-component" class="anchor"></a><strong>camel.rest.api-component</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The name of the Camel component to use as the REST API. If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used.</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_rest_api-context-path"></a> <a href="#_sb_option_camel_rest_api-context-path" class="anchor"></a><strong>camel.rest.api-context-path</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets a leading context-path the REST API will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path.</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_rest_api-context-route-id"></a> <a href="#_sb_option_camel_rest_api-context-route-id" class="anchor"></a><strong>camel.rest.api-context-route-id</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id.</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_rest_api-host"></a> <a href="#_sb_option_camel_rest_api-host" class="anchor"></a><strong>camel.rest.api-host</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">To use a specific hostname for the API documentation (such as swagger or openapi) This can be used to override the generated host with this configured hostname.</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_rest_api-property"></a> <a href="#_sb_option_camel_rest_api-property" class="anchor"></a><strong>camel.rest.api-property</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure as many additional properties for the api documentation. For example set property api.title to my cool stuff.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_api-vendor-extension"></a> <a href="#_sb_option_camel_rest_api-vendor-extension" class="anchor"></a><strong>camel.rest.api-vendor-extension</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs.</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_rest_binding-mode"></a> <a href="#_sb_option_camel_rest_binding-mode" class="anchor"></a><strong>camel.rest.binding-mode</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the binding mode to use. The default value is off.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">off</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">RestBindingMode</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_binding-package-scan"></a> <a href="#_sb_option_camel_rest_binding-package-scan" class="anchor"></a><strong>camel.rest.binding-package-scan</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Package name to use as base (offset) for classpath scanning of POJO classes are located when using binding mode is enabled for JSon or XML. Multiple package names 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_rest_client-request-validation"></a> <a href="#_sb_option_camel_rest_client-request-validation" class="anchor"></a><strong>camel.rest.client-request-validation</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable validation of the client request to check: 1) Content-Type header matches what the Rest DSL consumes; returns HTTP Status 415 if validation error. 2) Accept header matches what the Rest DSL produces; returns HTTP Status 406 if validation error. 3) Missing required data (query parameters, HTTP headers, body); returns HTTP Status 400 if validation error. 4) Parsing error of the message body (JSon, XML or Auto binding mode must be enabled); returns HTTP Status 400 if validation error.</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_rest_client-response-validation"></a> <a href="#_sb_option_camel_rest_client-response-validation" class="anchor"></a><strong>camel.rest.client-response-validation</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to check what Camel is returning as response to the client: 1) Status-code and Content-Type matches Rest DSL response messages. 2) Check whether expected headers is included according to the Rest DSL repose message headers. 3) If the response body is JSon then check whether its valid JSon. Returns 500 if validation error detected.</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_rest_component"></a> <a href="#_sb_option_camel_rest_component" class="anchor"></a><strong>camel.rest.component</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.</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_rest_component-property"></a> <a href="#_sb_option_camel_rest_component-property" class="anchor"></a><strong>camel.rest.component-property</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure as many additional properties for the rest component in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_consumer-property"></a> <a href="#_sb_option_camel_rest_consumer-property" class="anchor"></a><strong>camel.rest.consumer-property</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure as many additional properties for the rest consumer in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_context-path"></a> <a href="#_sb_option_camel_rest_context-path" class="anchor"></a><strong>camel.rest.context-path</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server.</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_rest_cors-headers"></a> <a href="#_sb_option_camel_rest_cors-headers" class="anchor"></a><strong>camel.rest.cors-headers</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure custom CORS headers.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_data-format-property"></a> <a href="#_sb_option_camel_rest_data-format-property" class="anchor"></a><strong>camel.rest.data-format-property</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_enable-cors"></a> <a href="#_sb_option_camel_rest_enable-cors" class="anchor"></a><strong>camel.rest.enable-cors</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable CORS headers in the HTTP response. The default value is false.</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_rest_enable-no-content-response"></a> <a href="#_sb_option_camel_rest_enable-no-content-response" class="anchor"></a><strong>camel.rest.enable-no-content-response</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. The default value is false.</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_rest_endpoint-property"></a> <a href="#_sb_option_camel_rest_endpoint-property" class="anchor"></a><strong>camel.rest.endpoint-property</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure as many additional properties for the rest endpoint in use.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_host"></a> <a href="#_sb_option_camel_rest_host" class="anchor"></a><strong>camel.rest.host</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The hostname to use for exposing the REST service.</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_rest_host-name-resolver"></a> <a href="#_sb_option_camel_rest_host-name-resolver" class="anchor"></a><strong>camel.rest.host-name-resolver</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">alllocalip</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">RestHostNameResolver</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_inline-routes"></a> <a href="#_sb_option_camel_rest_inline-routes" class="anchor"></a><strong>camel.rest.inline-routes</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Inline routes in rest-dsl which are linked using direct endpoints. Each service in Rest DSL is an individual route, meaning that you would have at least two routes per service (rest-dsl, and the route linked from rest-dsl). By inlining (default) allows Camel to optimize and inline this as a single route, however this requires to use direct endpoints, which must be unique per service. If a route is not using direct endpoint then the rest-dsl is not inlined, and will become an individual route. This option is default true.</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_rest_json-data-format"></a> <a href="#_sb_option_camel_rest_json-data-format" class="anchor"></a><strong>camel.rest.json-data-format</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.</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_rest_port"></a> <a href="#_sb_option_camel_rest_port" class="anchor"></a><strong>camel.rest.port</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses.</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_rest_producer-api-doc"></a> <a href="#_sb_option_camel_rest_producer-api-doc" class="anchor"></a><strong>camel.rest.producer-api-doc</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url.</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_rest_producer-component"></a> <a href="#_sb_option_camel_rest_producer-component" class="anchor"></a><strong>camel.rest.producer-component</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Sets the name of the Camel component to use as the REST producer.</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_rest_scheme"></a> <a href="#_sb_option_camel_rest_scheme" class="anchor"></a><strong>camel.rest.scheme</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http.</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_rest_skip-binding-on-error-code"></a> <a href="#_sb_option_camel_rest_skip-binding-on-error-code" class="anchor"></a><strong>camel.rest.skip-binding-on-error-code</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json / xml etc, as success messages otherwise will do.</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_rest_use-x-forward-headers"></a> <a href="#_sb_option_camel_rest_use-x-forward-headers" class="anchor"></a><strong>camel.rest.use-x-forward-headers</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to use X-Forward headers to set host etc. for OpenApi. This may be needed in special cases involving reverse-proxy and networking going from HTTP to HTTPS etc. Then the proxy can send X-Forward headers (X-Forwarded-Proto) that influences the host names in the OpenAPI schema that camel-openapi-java generates from Rest DSL routes.</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_rest_validation-levels"></a> <a href="#_sb_option_camel_rest_validation-levels" class="anchor"></a><strong>camel.rest.validation-levels</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows to configure custom validation levels when using camel-openapi-validator with client request/response validator.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Map</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_rest_xml-data-format"></a> <a href="#_sb_option_camel_rest_xml-data-format" class="anchor"></a><strong>camel.rest.xml-data-format</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">String</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": "CSimple", "item": "https://camel.apache.org/components/next/languages/csimple-language.html" }] } </script> </body> </html> |