| <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Infinispan :: Apache Camel</title> <link rel="canonical" href="https://camel.apache.org/components/4.10.x/infinispan-component.html"> <meta name="description" content="Read and write from/to Infinispan distributed key/value store and data grid."> <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="Infinispan"> <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 is-current-page" 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="languages/index.html">Languages</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/bean-language.html">Bean Method</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/constant-language.html">Constant</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/csimple-language.html">CSimple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/datasonnet-language.html">DataSonnet</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/exchangeProperty-language.html">ExchangeProperty</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/file-language.html">File</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/groovy-language.html">Groovy</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/header-language.html">Header</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/hl7terser-language.html">HL7 Terser</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/java-language.html">Java</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/js-language.html">JavaScript</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/joor-language.html">jOOR</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/jq-language.html">JQ</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/jsonpath-language.html">JSONPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/mvel-language.html">MVEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/ognl-language.html">OGNL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/python-language.html">Python</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/ref-language.html">Ref</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/simple-language.html">Simple</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/spel-language.html">SpEL</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/tokenize-language.html">Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/variable-language.html">Variable</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/wasm-language.html">Wasm</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/xtokenize-language.html">XML Tokenize</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/xpath-language.html">XPath</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="languages/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">Components</a></li> <li><a href="infinispan-component.html">Infinispan</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="infinispan-component.html">Next (Pre-release)</a> <a class="version" href="../4.10.x/infinispan-component.html">4.10.x (LTS)</a> <a class="version" href="../4.8.x/infinispan-component.html">4.8.x (LTS)</a> <a class="version" href="../3.22.x/infinispan-component.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/ROOT/pages/infinispan-component.adoc">Edit this Page</a></div> </nav> <div class="content"> <article class="doc"> <h1 class="page">Infinispan</h1> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"> <p><strong>Since Camel 2.13</strong></p> </div> <div class="paragraph"> <p><strong>Both producer and consumer are supported</strong></p> </div> <div class="paragraph"> <p>This component allows you to interact with <a href="http://infinispan.org/">Infinispan</a> distributed data grid / cache using the Hot Rod protocol. Infinispan is an extremely scalable, highly available key/value data store and data grid platform written in Java.</p> </div> <div class="paragraph"> <p>If you use Maven, you must add the following dependency to your <code>pom.xml</code>:</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-infinispan</artifactId> |
| <version>x.x.x</version> |
| <!-- use the same version as your Camel core version --> |
| </dependency></code></pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_uri_format"><a class="anchor" href="#_uri_format"></a>URI format</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre>infinispan://cacheName?[options]</pre> </div> </div> <div class="paragraph"> <p>The producer allows sending messages to a remote cache using the HotRod protocol. The consumer allows listening for events from a remote cache using the HotRod protocol.</p> </div> </div> </div> <div class="sect1"> <h2 id="_configuring_options"><a class="anchor" href="#_configuring_options"></a>Configuring Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>Camel components are configured on two separate levels:</p> </div> <div class="ulist"> <ul> <li> <p>component level</p> </li> <li> <p>endpoint level</p> </li> </ul> </div> <div class="sect2"> <h3 id="_configuring_component_options"><a class="anchor" href="#_configuring_component_options"></a>Configuring Component Options</h3> <div class="paragraph"> <p>At the component level, you set general and shared configurations that are, then, inherited by the endpoints. It is the highest configuration level.</p> </div> <div class="paragraph"> <p>For example, a component may have security settings, credentials for authentication, urls for network connection and so forth.</p> </div> <div class="paragraph"> <p>Some components only have a few options, and others may have many. Because components typically have pre-configured defaults that are commonly used, then you may often only need to configure a few options on a component; or none at all.</p> </div> <div class="paragraph"> <p>You can configure components using:</p> </div> <div class="ulist"> <ul> <li> <p>the <a href="../../manual/component-dsl.html" class="xref page">Component DSL</a>.</p> </li> <li> <p>in a configuration file (<code>application.properties</code>, <code>*.yaml</code> files, etc).</p> </li> <li> <p>directly in the Java code.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_configuring_endpoint_options"><a class="anchor" href="#_configuring_endpoint_options"></a>Configuring Endpoint Options</h3> <div class="paragraph"> <p>You usually spend more time setting up endpoints because they have many options. These options help you customize what you want the endpoint to do. The options are also categorized into whether the endpoint is used as a consumer (<em>from</em>), as a producer (<em>to</em>), or both.</p> </div> <div class="paragraph"> <p>Configuring endpoints is most often done directly in the endpoint URI as <em>path</em> and <em>query</em> parameters. You can also use the <a href="../../manual/Endpoint-dsl.html" class="xref page">Endpoint DSL</a> and <a href="../../manual/dataformat-dsl.html" class="xref page">DataFormat DSL</a> as a <em>type safe</em> way of configuring endpoints and data formats in Java.</p> </div> <div class="paragraph"> <p>A good practice when configuring options is to use <a href="../../manual/using-propertyplaceholder.html" class="xref page">Property Placeholders</a>.</p> </div> <div class="paragraph"> <p>Property placeholders provide a few benefits:</p> </div> <div class="ulist"> <ul> <li> <p>They help prevent using hardcoded urls, port numbers, sensitive information, and other settings.</p> </li> <li> <p>They allow externalizing the configuration from the code.</p> </li> <li> <p>They help the code to become more flexible and reusable.</p> </li> </ul> </div> <div class="paragraph"> <p>The following two sections list all the options, firstly for the component followed by the endpoint.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_component_options"><a class="anchor" href="#_component_options"></a>Component Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The Infinispan component supports 32 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="_component_option_configuration"></a> <a href="#_component_option_configuration" class="anchor"></a><strong>configuration</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Component configuration.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanRemoteConfiguration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_hosts"></a> <a href="#_component_option_hosts" class="anchor"></a><strong>hosts</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the host of the cache on Infinispan instance. Multiple hosts can be separated by semicolon.</p> </div></div></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="_component_option_queryBuilder"></a> <a href="#_component_option_queryBuilder" class="anchor"></a><strong>queryBuilder</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the query builder.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanQueryBuilder</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_bridgeErrorHandler"></a> <a href="#_component_option_bridgeErrorHandler" class="anchor"></a><strong>bridgeErrorHandler</strong> (consumer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.</p> </div></div></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="_component_option_customListener"></a> <a href="#_component_option_customListener" class="anchor"></a><strong>customListener</strong> (consumer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Returns the custom listener in use, if provided.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanRemoteCustomListener</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_eventTypes"></a> <a href="#_component_option_eventTypes" class="anchor"></a><strong>eventTypes</strong> (consumer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER.</p> </div></div></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="_component_option_defaultValue"></a> <a href="#_component_option_defaultValue" class="anchor"></a><strong>defaultValue</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific default value for some producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_key"></a> <a href="#_component_option_key" class="anchor"></a><strong>key</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific key for producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_lazyStartProducer"></a> <a href="#_component_option_lazyStartProducer" class="anchor"></a><strong>lazyStartProducer</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.</p> </div></div></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="_component_option_oldValue"></a> <a href="#_component_option_oldValue" class="anchor"></a><strong>oldValue</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific old value for some producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_operation"></a> <a href="#_component_option_operation" class="anchor"></a><strong>operation</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The operation to perform.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>PUT</p> </li> <li> <p>PUTASYNC</p> </li> <li> <p>PUTALL</p> </li> <li> <p>PUTALLASYNC</p> </li> <li> <p>PUTIFABSENT</p> </li> <li> <p>PUTIFABSENTASYNC</p> </li> <li> <p>GET</p> </li> <li> <p>GETORDEFAULT</p> </li> <li> <p>CONTAINSKEY</p> </li> <li> <p>CONTAINSVALUE</p> </li> <li> <p>REMOVE</p> </li> <li> <p>REMOVEASYNC</p> </li> <li> <p>REPLACE</p> </li> <li> <p>REPLACEASYNC</p> </li> <li> <p>SIZE</p> </li> <li> <p>CLEAR</p> </li> <li> <p>CLEARASYNC</p> </li> <li> <p>QUERY</p> </li> <li> <p>STATS</p> </li> <li> <p>COMPUTE</p> </li> <li> <p>COMPUTEASYNC</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">PUT</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanOperation</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_value"></a> <a href="#_component_option_value" class="anchor"></a><strong>value</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific value for producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_embeddingStoreDimension"></a> <a href="#_component_option_embeddingStoreDimension" class="anchor"></a><strong>embeddingStoreDimension</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The dimension size used to store vector embeddings. This should be equal to the dimension size of the model used to create the vector embeddings. This option is mandatory if the embedding store is enabled.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_embeddingStoreDistance"></a> <a href="#_component_option_embeddingStoreDistance" class="anchor"></a><strong>embeddingStoreDistance</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The distance to use for kNN search queries in relation to the configured vector similarity.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">3</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_embeddingStoreEnabled"></a> <a href="#_component_option_embeddingStoreEnabled" class="anchor"></a><strong>embeddingStoreEnabled</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to enable the embedding store. When enabled, the embedding store will be configured automatically when Camel starts. Note that this feature requires camel-langchain4j-embeddings to be on the classpath.</p> </div></div></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="_component_option_embeddingStoreRegisterSchema"></a> <a href="#_component_option_embeddingStoreRegisterSchema" class="anchor"></a><strong>embeddingStoreRegisterSchema</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to automatically register the proto schema for the types required by embedding store cache put and query operations.</p> </div></div></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="_component_option_embeddingStoreTypeName"></a> <a href="#_component_option_embeddingStoreTypeName" class="anchor"></a><strong>embeddingStoreTypeName</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The name of the type used to store embeddings. The default is 'InfinispanRemoteEmbedding' suffixed with the value of the embeddingStoreDimension option. E.g. CamelInfinispanRemoteEmbedding384.</p> </div></div></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="_component_option_embeddingStoreVectorSimilarity"></a> <a href="#_component_option_embeddingStoreVectorSimilarity" class="anchor"></a><strong>embeddingStoreVectorSimilarity</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The vector similarity algorithm used to store embeddings.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>L2</p> </li> <li> <p>INNER_PRODUCT</p> </li> <li> <p>MAX_INNER_PRODUCT</p> </li> <li> <p>COSINE</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">COSINE</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">VectorSimilarity</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_autowiredEnabled"></a> <a href="#_component_option_autowiredEnabled" class="anchor"></a><strong>autowiredEnabled</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.</p> </div></div></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="_component_option_cacheContainer"></a> <a href="#_component_option_cacheContainer" class="anchor"></a><strong>cacheContainer</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Autowired</strong> Specifies the cache Container to connect.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">RemoteCacheManager</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_cacheContainerConfiguration"></a> <a href="#_component_option_cacheContainerConfiguration" class="anchor"></a><strong>cacheContainerConfiguration</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Autowired</strong> The CacheContainer configuration. Used if the cacheContainer is not defined.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configuration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_configurationProperties"></a> <a href="#_component_option_configurationProperties" class="anchor"></a><strong>configurationProperties</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Implementation specific properties for the CacheManager.</p> </div></div></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="_component_option_configurationUri"></a> <a href="#_component_option_configurationUri" class="anchor"></a><strong>configurationUri</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>An implementation specific URI for the CacheManager.</p> </div></div></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="_component_option_flags"></a> <a href="#_component_option_flags" class="anchor"></a><strong>flags</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.</p> </div></div></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="_component_option_remappingFunction"></a> <a href="#_component_option_remappingFunction" class="anchor"></a><strong>remappingFunction</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific remappingFunction to use in a compute operation.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">BiFunction</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_component_option_resultHeader"></a> <a href="#_component_option_resultHeader" class="anchor"></a><strong>resultHeader</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader.</p> </div></div></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="_component_option_password"></a> <a href="#_component_option_password" class="anchor"></a><strong>password</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the password to access the infinispan instance.</p> </div></div></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="_component_option_saslMechanism"></a> <a href="#_component_option_saslMechanism" class="anchor"></a><strong>saslMechanism</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the SASL Mechanism to access the infinispan instance.</p> </div></div></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="_component_option_secure"></a> <a href="#_component_option_secure" class="anchor"></a><strong>secure</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define if we are connecting to a secured Infinispan instance.</p> </div></div></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="_component_option_securityRealm"></a> <a href="#_component_option_securityRealm" class="anchor"></a><strong>securityRealm</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the security realm to access the infinispan instance.</p> </div></div></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="_component_option_securityServerName"></a> <a href="#_component_option_securityServerName" class="anchor"></a><strong>securityServerName</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the security server name to access the infinispan instance.</p> </div></div></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="_component_option_username"></a> <a href="#_component_option_username" class="anchor"></a><strong>username</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the username to access the infinispan instance.</p> </div></div></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> <div class="sect1"> <h2 id="_endpoint_options"><a class="anchor" href="#_endpoint_options"></a>Endpoint Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The Infinispan endpoint is configured using URI syntax:</p> </div> <div class="listingblock"> <div class="content"> <pre>infinispan:cacheName</pre> </div> </div> <div class="paragraph"> <p>With the following <em>path</em> and <em>query</em> parameters:</p> </div> <div class="sect2"> <h3 id="_path_parameters_1_parameters"><a class="anchor" href="#_path_parameters_1_parameters"></a>Path Parameters (1 parameters)</h3> <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="_endpoint_path_option_cacheName"></a> <a href="#_endpoint_path_option_cacheName" class="anchor"></a><strong>cacheName</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Required</strong> The name of the cache to use. Use current to use the existing cache name from the currently configured cached manager. Or use default for the default cache manager name.</p> </div></div></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 class="sect2"> <h3 id="_query_parameters"><a class="anchor" href="#_query_parameters"></a>Query Parameters (32 parameters)</h3> <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="_endpoint_query_option_hosts"></a> <a href="#_endpoint_query_option_hosts" class="anchor"></a><strong>hosts</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the host of the cache on Infinispan instance. Multiple hosts can be separated by semicolon.</p> </div></div></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="_endpoint_query_option_queryBuilder"></a> <a href="#_endpoint_query_option_queryBuilder" class="anchor"></a><strong>queryBuilder</strong> (common)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the query builder.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanQueryBuilder</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_customListener"></a> <a href="#_endpoint_query_option_customListener" class="anchor"></a><strong>customListener</strong> (consumer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Returns the custom listener in use, if provided.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanRemoteCustomListener</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_eventTypes"></a> <a href="#_endpoint_query_option_eventTypes" class="anchor"></a><strong>eventTypes</strong> (consumer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER.</p> </div></div></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="_endpoint_query_option_bridgeErrorHandler"></a> <a href="#_endpoint_query_option_bridgeErrorHandler" class="anchor"></a><strong>bridgeErrorHandler</strong> (consumer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.</p> </div></div></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="_endpoint_query_option_exceptionHandler"></a> <a href="#_endpoint_query_option_exceptionHandler" class="anchor"></a><strong>exceptionHandler</strong> (consumer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">ExceptionHandler</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_exchangePattern"></a> <a href="#_endpoint_query_option_exchangePattern" class="anchor"></a><strong>exchangePattern</strong> (consumer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Sets the exchange pattern when the consumer creates an exchange.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>InOnly</p> </li> <li> <p>InOut</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">ExchangePattern</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_defaultValue"></a> <a href="#_endpoint_query_option_defaultValue" class="anchor"></a><strong>defaultValue</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific default value for some producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_key"></a> <a href="#_endpoint_query_option_key" class="anchor"></a><strong>key</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific key for producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_oldValue"></a> <a href="#_endpoint_query_option_oldValue" class="anchor"></a><strong>oldValue</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific old value for some producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_operation"></a> <a href="#_endpoint_query_option_operation" class="anchor"></a><strong>operation</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The operation to perform.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>PUT</p> </li> <li> <p>PUTASYNC</p> </li> <li> <p>PUTALL</p> </li> <li> <p>PUTALLASYNC</p> </li> <li> <p>PUTIFABSENT</p> </li> <li> <p>PUTIFABSENTASYNC</p> </li> <li> <p>GET</p> </li> <li> <p>GETORDEFAULT</p> </li> <li> <p>CONTAINSKEY</p> </li> <li> <p>CONTAINSVALUE</p> </li> <li> <p>REMOVE</p> </li> <li> <p>REMOVEASYNC</p> </li> <li> <p>REPLACE</p> </li> <li> <p>REPLACEASYNC</p> </li> <li> <p>SIZE</p> </li> <li> <p>CLEAR</p> </li> <li> <p>CLEARASYNC</p> </li> <li> <p>QUERY</p> </li> <li> <p>STATS</p> </li> <li> <p>COMPUTE</p> </li> <li> <p>COMPUTEASYNC</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">PUT</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanOperation</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_value"></a> <a href="#_endpoint_query_option_value" class="anchor"></a><strong>value</strong> (producer)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific value for producer operations.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_embeddingStoreDimension"></a> <a href="#_endpoint_query_option_embeddingStoreDimension" class="anchor"></a><strong>embeddingStoreDimension</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The dimension size used to store vector embeddings. This should be equal to the dimension size of the model used to create the vector embeddings. This option is mandatory if the embedding store is enabled.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_embeddingStoreDistance"></a> <a href="#_endpoint_query_option_embeddingStoreDistance" class="anchor"></a><strong>embeddingStoreDistance</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The distance to use for kNN search queries in relation to the configured vector similarity.</p> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">3</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_embeddingStoreEnabled"></a> <a href="#_endpoint_query_option_embeddingStoreEnabled" class="anchor"></a><strong>embeddingStoreEnabled</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to enable the embedding store. When enabled, the embedding store will be configured automatically when Camel starts. Note that this feature requires camel-langchain4j-embeddings to be on the classpath.</p> </div></div></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="_endpoint_query_option_embeddingStoreRegisterSchema"></a> <a href="#_endpoint_query_option_embeddingStoreRegisterSchema" class="anchor"></a><strong>embeddingStoreRegisterSchema</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether to automatically register the proto schema for the types required by embedding store cache put and query operations.</p> </div></div></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="_endpoint_query_option_embeddingStoreTypeName"></a> <a href="#_endpoint_query_option_embeddingStoreTypeName" class="anchor"></a><strong>embeddingStoreTypeName</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The name of the type used to store embeddings. The default is 'InfinispanRemoteEmbedding' suffixed with the value of the embeddingStoreDimension option. E.g. CamelInfinispanRemoteEmbedding384.</p> </div></div></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="_endpoint_query_option_embeddingStoreVectorSimilarity"></a> <a href="#_endpoint_query_option_embeddingStoreVectorSimilarity" class="anchor"></a><strong>embeddingStoreVectorSimilarity</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The vector similarity algorithm used to store embeddings.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>L2</p> </li> <li> <p>INNER_PRODUCT</p> </li> <li> <p>MAX_INNER_PRODUCT</p> </li> <li> <p>COSINE</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"><p class="tableblock">COSINE</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">VectorSimilarity</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_lazyStartProducer"></a> <a href="#_endpoint_query_option_lazyStartProducer" class="anchor"></a><strong>lazyStartProducer</strong> (producer (advanced))</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.</p> </div></div></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="_endpoint_query_option_cacheContainer"></a> <a href="#_endpoint_query_option_cacheContainer" class="anchor"></a><strong>cacheContainer</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Autowired</strong> Specifies the cache Container to connect.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">RemoteCacheManager</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_cacheContainerConfiguration"></a> <a href="#_endpoint_query_option_cacheContainerConfiguration" class="anchor"></a><strong>cacheContainerConfiguration</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p><strong>Autowired</strong> The CacheContainer configuration. Used if the cacheContainer is not defined.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configuration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_configurationProperties"></a> <a href="#_endpoint_query_option_configurationProperties" class="anchor"></a><strong>configurationProperties</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Implementation specific properties for the CacheManager.</p> </div></div></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="_endpoint_query_option_configurationUri"></a> <a href="#_endpoint_query_option_configurationUri" class="anchor"></a><strong>configurationUri</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>An implementation specific URI for the CacheManager.</p> </div></div></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="_endpoint_query_option_flags"></a> <a href="#_endpoint_query_option_flags" class="anchor"></a><strong>flags</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.</p> </div></div></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="_endpoint_query_option_remappingFunction"></a> <a href="#_endpoint_query_option_remappingFunction" class="anchor"></a><strong>remappingFunction</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Set a specific remappingFunction to use in a compute operation.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">BiFunction</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_query_option_resultHeader"></a> <a href="#_endpoint_query_option_resultHeader" class="anchor"></a><strong>resultHeader</strong> (advanced)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader.</p> </div></div></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="_endpoint_query_option_password"></a> <a href="#_endpoint_query_option_password" class="anchor"></a><strong>password</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the password to access the infinispan instance.</p> </div></div></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="_endpoint_query_option_saslMechanism"></a> <a href="#_endpoint_query_option_saslMechanism" class="anchor"></a><strong>saslMechanism</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the SASL Mechanism to access the infinispan instance.</p> </div></div></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="_endpoint_query_option_secure"></a> <a href="#_endpoint_query_option_secure" class="anchor"></a><strong>secure</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define if we are connecting to a secured Infinispan instance.</p> </div></div></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="_endpoint_query_option_securityRealm"></a> <a href="#_endpoint_query_option_securityRealm" class="anchor"></a><strong>securityRealm</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the security realm to access the infinispan instance.</p> </div></div></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="_endpoint_query_option_securityServerName"></a> <a href="#_endpoint_query_option_securityServerName" class="anchor"></a><strong>securityServerName</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the security server name to access the infinispan instance.</p> </div></div></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="_endpoint_query_option_username"></a> <a href="#_endpoint_query_option_username" class="anchor"></a><strong>username</strong> (security)</p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Define the username to access the infinispan instance.</p> </div></div></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> </div> <div class="sect1"> <h2 id="_message_headers"><a class="anchor" href="#_message_headers"></a>Message Headers</h2> <div class="sectionbody"> <div class="paragraph"> <p>The Infinispan component supports 18 message header(s), which is/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="_endpoint_header_CamelInfinispanEventType"></a> <a href="#_endpoint_header_CamelInfinispanEventType" class="anchor"></a><strong>CamelInfinispanEventType</strong> (consumer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#EVENT_TYPE"><code>EVENT_TYPE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The type of the received event.</p> </div></div></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="_endpoint_header_CamelInfinispanCacheName"></a> <a href="#_endpoint_header_CamelInfinispanCacheName" class="anchor"></a><strong>CamelInfinispanCacheName</strong> (common)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#CACHE_NAME"><code>CACHE_NAME</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The cache participating in the operation or event.</p> </div></div></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="_endpoint_header_CamelInfinispanKey"></a> <a href="#_endpoint_header_CamelInfinispanKey" class="anchor"></a><strong>CamelInfinispanKey</strong> (common)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#KEY"><code>KEY</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The key to perform the operation to or the key generating the event.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanValue"></a> <a href="#_endpoint_header_CamelInfinispanValue" class="anchor"></a><strong>CamelInfinispanValue</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#VALUE"><code>VALUE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The value to use for the operation.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanDefaultValue"></a> <a href="#_endpoint_header_CamelInfinispanDefaultValue" class="anchor"></a><strong>CamelInfinispanDefaultValue</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#DEFAULT_VALUE"><code>DEFAULT_VALUE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The default value to use for a getOrDefault.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanOldValue"></a> <a href="#_endpoint_header_CamelInfinispanOldValue" class="anchor"></a><strong>CamelInfinispanOldValue</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#OLD_VALUE"><code>OLD_VALUE</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The old value to use for a replace.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanMap"></a> <a href="#_endpoint_header_CamelInfinispanMap" class="anchor"></a><strong>CamelInfinispanMap</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#MAP"><code>MAP</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>A Map to use in case of CamelInfinispanOperationPutAll operation.</p> </div></div></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="_endpoint_header_CamelInfinispanOperation"></a> <a href="#_endpoint_header_CamelInfinispanOperation" class="anchor"></a><strong>CamelInfinispanOperation</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#OPERATION"><code>OPERATION</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The operation to perform.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>PUT</p> </li> <li> <p>PUTASYNC</p> </li> <li> <p>PUTALL</p> </li> <li> <p>PUTALLASYNC</p> </li> <li> <p>PUTIFABSENT</p> </li> <li> <p>PUTIFABSENTASYNC</p> </li> <li> <p>GET</p> </li> <li> <p>GETORDEFAULT</p> </li> <li> <p>CONTAINSKEY</p> </li> <li> <p>CONTAINSVALUE</p> </li> <li> <p>REMOVE</p> </li> <li> <p>REMOVEASYNC</p> </li> <li> <p>REPLACE</p> </li> <li> <p>REPLACEASYNC</p> </li> <li> <p>SIZE</p> </li> <li> <p>CLEAR</p> </li> <li> <p>CLEARASYNC</p> </li> <li> <p>QUERY</p> </li> <li> <p>STATS</p> </li> <li> <p>COMPUTE</p> </li> <li> <p>COMPUTEASYNC</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanOperation</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanOperationResult"></a> <a href="#_endpoint_header_CamelInfinispanOperationResult" class="anchor"></a><strong>CamelInfinispanOperationResult</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#RESULT"><code>RESULT</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The name of the header whose value is the result.</p> </div></div></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="_endpoint_header_CamelInfinispanOperationResultHeader"></a> <a href="#_endpoint_header_CamelInfinispanOperationResultHeader" class="anchor"></a><strong>CamelInfinispanOperationResultHeader</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#RESULT_HEADER"><code>RESULT_HEADER</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Store the operation result in a header instead of the message body.</p> </div></div></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="_endpoint_header_CamelInfinispanLifespanTime"></a> <a href="#_endpoint_header_CamelInfinispanLifespanTime" class="anchor"></a><strong>CamelInfinispanLifespanTime</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#LIFESPAN_TIME"><code>LIFESPAN_TIME</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The Lifespan time of a value inside the cache. Negative values are interpreted as infinity.</p> </div></div></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="_endpoint_header_CamelInfinispanTimeUnit"></a> <a href="#_endpoint_header_CamelInfinispanTimeUnit" class="anchor"></a><strong>CamelInfinispanTimeUnit</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#LIFESPAN_TIME_UNIT"><code>LIFESPAN_TIME_UNIT</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The Time Unit of an entry Lifespan Time.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>NANOSECONDS</p> </li> <li> <p>MICROSECONDS</p> </li> <li> <p>MILLISECONDS</p> </li> <li> <p>SECONDS</p> </li> <li> <p>MINUTES</p> </li> <li> <p>HOURS</p> </li> <li> <p>DAYS</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">TimeUnit</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanMaxIdleTime"></a> <a href="#_endpoint_header_CamelInfinispanMaxIdleTime" class="anchor"></a><strong>CamelInfinispanMaxIdleTime</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#MAX_IDLE_TIME"><code>MAX_IDLE_TIME</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The maximum amount of time an entry is allowed to be idle for before it is considered as expired.</p> </div></div></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="_endpoint_header_CamelInfinispanMaxIdleTimeUnit"></a> <a href="#_endpoint_header_CamelInfinispanMaxIdleTimeUnit" class="anchor"></a><strong>CamelInfinispanMaxIdleTimeUnit</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#MAX_IDLE_TIME_UNIT"><code>MAX_IDLE_TIME_UNIT</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The Time Unit of an entry Max Idle Time.</p> </div> <div class="paragraph"> <p>Enum values:</p> </div> <div class="ulist"> <ul> <li> <p>NANOSECONDS</p> </li> <li> <p>MICROSECONDS</p> </li> <li> <p>MILLISECONDS</p> </li> <li> <p>SECONDS</p> </li> <li> <p>MINUTES</p> </li> <li> <p>HOURS</p> </li> <li> <p>DAYS</p> </li> </ul> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">TimeUnit</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanEventData"></a> <a href="#_endpoint_header_CamelInfinispanEventData" class="anchor"></a><strong>CamelInfinispanEventData</strong> (consumer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#EVENT_DATA"><code>EVENT_DATA</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The event data.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Object</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanQueryBuilder"></a> <a href="#_endpoint_header_CamelInfinispanQueryBuilder" class="anchor"></a><strong>CamelInfinispanQueryBuilder</strong> (producer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#QUERY_BUILDER"><code>QUERY_BUILDER</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The QueryBuilder to use for QUERY command, if not present the command defaults to InifinispanConfiguration’s one.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanQueryBuilder</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_endpoint_header_CamelInfinispanEntryVersion"></a> <a href="#_endpoint_header_CamelInfinispanEntryVersion" class="anchor"></a><strong>CamelInfinispanEntryVersion</strong> (consumer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#ENTRY_VERSION"><code>ENTRY_VERSION</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Provides access to the version of the created cache entry.</p> </div></div></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="_endpoint_header_CamelInfinispanCommandRetried"></a> <a href="#_endpoint_header_CamelInfinispanCommandRetried" class="anchor"></a><strong>CamelInfinispanCommandRetried</strong> (consumer)</p> <p class="tableblock">Constant: <a href="https://javadoc.io/doc/org.apache.camel/camel-infinispan/latest/org/apache/camel/component/infinispan/InfinispanConstants.html#COMMAND_RETRIED"><code>COMMAND_RETRIED</code></a></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>This will be true if the write command that caused this had to be retried again due to a topology change.</p> </div></div></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td> </tr> </tbody> </table></div> </div> </div> <div class="sect1"> <h2 id="_usage"><a class="anchor" href="#_usage"></a>Usage</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_camel_operations"><a class="anchor" href="#_camel_operations"></a>Camel Operations</h3> <div class="paragraph"> <p>This section lists all available operations, along with their header information.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 1. Put Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.PUT</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Put a key/value pair in the cache, optionally with expiration</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.PUTASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously puts a key/value pair in the cache, optionally with expiration</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.PUTIFABSENT</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Put a key/value pair in the cache if it did not exist, optionally with expiration</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.PUTIFABSENTASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously puts a key/value pair in the cache if it did not exist, optionally with expiration</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanKey</code></p> </li> <li> <p><code>CamelInfinispanValue</code></p> </li> </ul> </div> </li> <li> <p><strong>Optional Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanLifespanTime</code></p> </li> <li> <p><code>CamelInfinispanLifespanTimeUnit</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTime</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTimeUnit</code></p> </li> </ul> </div> </li> <li> <p><strong>Result Header</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 2. Put All Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.PUTALL</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Adds multiple entries to a cache, optionally with expiration</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>CamelInfinispanOperation.PUTALLASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously adds multiple entries to a cache, optionally with expiration</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanMap</code></p> </li> </ul> </div> </li> <li> <p><strong>Optional Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanLifespanTime</code></p> </li> <li> <p><code>CamelInfinispanLifespanTimeUnit</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTime</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTimeUnit</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 3. Get Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.GET</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Retrieve the value associated with a specific key from the cache</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.GETORDEFAULT</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Retrieves the value, or default value, associated with a specific key from the cache</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanKey</code> The resulting value is returned in the exchange <strong>body</strong>.</p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 4. Contains Key Operation</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.CONTAINSKEY</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines whether a cache contains a specific key</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong></p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanKey</code></p> </li> </ul> </div> </li> <li> <p><strong>Result Header</strong></p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 5. Contains Value Operation</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.CONTAINSVALUE</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Determines whether a cache contains a specific value</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanValue</code></p> </li> </ul> </div> </li> <li> <p><strong>Result Header</strong></p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 6. Remove Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.REMOVE</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Removes an entry from a cache, optionally only if the value matches a given one</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.REMOVEASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously removes an entry from a cache, optionally only if the value matches a given one</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanValue</code></p> </li> </ul> </div> </li> <li> <p><strong>Optional Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanValue</code></p> </li> </ul> </div> </li> <li> <p><strong>Result Header</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 7. Replace Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.REPLACE</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Conditionally replaces an entry in the cache, optionally with expiration</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.REPLACEASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously conditionally replaces an entry in the cache, optionally with expiration</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanKey</code></p> </li> <li> <p><code>CamelInfinispanValue</code></p> </li> <li> <p><code>CamelInfinispanOldValue</code></p> </li> </ul> </div> </li> <li> <p><strong>Optional Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanLifespanTime</code></p> </li> <li> <p><code>CamelInfinispanLifespanTimeUnit</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTime</code></p> </li> <li> <p><code>CamelInfinispanMaxIdleTimeUnit</code></p> </li> </ul> </div> </li> <li> <p><strong>Result Header</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 8. Clear Operations</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.CLEAR</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Clears the cache</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.CLEARASYNC</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Asynchronously clears the cache</p> </div></div></td> </tr> </tbody> </table></div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 9. Size Operation</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.SIZE</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Returns the number of entries in the cache</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Result Header</strong></p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 10. Stats Operation</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.STATS</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Returns statistics about the cache</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Result Header</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanOperationResult</code></p> </li> </ul> </div> </li> </ul> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all stretch"> <caption class="title">Table 11. Query Operation</caption> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Operation Name</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanOperation.QUERY</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Executes a query on the cache</p> </div></div></td> </tr> </tbody> </table></div> <div class="ulist"> <ul> <li> <p><strong>Required Headers</strong>:</p> <div class="ulist"> <ul> <li> <p><code>CamelInfinispanQueryBuilder</code> The resulting value is returned in the exchange <strong>body</strong>.</p> </li> </ul> </div> </li> </ul> </div> <div class="admonitionblock note"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> <div class="paragraph"> <p>Write methods like put(key, value) and remove(key) do not return the previous value by default.</p> </div> </td> </tr> </table></div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_examples"><a class="anchor" href="#_examples"></a>Examples</h2> <div class="sectionbody"> <div class="ulist"> <ul> <li> <p>Put a key/value into a named cache:</p> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) <i class="conum" data-value="1"></i><b>(1)</b> |
| .setHeader(InfinispanConstants.KEY).constant("123") <i class="conum" data-value="2"></i><b>(2)</b> |
| .to("infinispan:myCacheName&cacheContainer=#cacheContainer"); <i class="conum" data-value="3"></i><b>(3)</b></code></pre> </div> </div> <div class="colist arabic"> <div class="table-wrapper"><table> <tr> <td><i class="conum" data-value="1"></i><b>1</b></td> <td>Set the operation to perform</td> </tr> <tr> <td><i class="conum" data-value="2"></i><b>2</b></td> <td>Set the key used to identify the element in the cache</td> </tr> <tr> <td><i class="conum" data-value="3"></i><b>3</b></td> <td>Use the configured cache manager <code>cacheContainer</code> from the registry to put an element to the cache named <code>myCacheName</code></td> </tr> </table></div> </div> <div class="paragraph"> <p>It is possible to configure the lifetime and/or the idle time before the entry expires and gets evicted from the cache, as example:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET) |
| .setHeader(InfinispanConstants.KEY).constant("123") |
| .setHeader(InfinispanConstants.LIFESPAN_TIME).constant(100L) <i class="conum" data-value="1"></i><b>(1)</b> |
| .setHeader(InfinispanConstants.LIFESPAN_TIME_UNIT).constant(TimeUnit.MILLISECONDS.toString()) <i class="conum" data-value="2"></i><b>(2)</b> |
| .to("infinispan:myCacheName");</code></pre> </div> </div> <div class="colist arabic"> <div class="table-wrapper"><table> <tr> <td><i class="conum" data-value="1"></i><b>1</b></td> <td>Set the lifespan of the entry</td> </tr> <tr> <td><i class="conum" data-value="2"></i><b>2</b></td> <td>Set the time unit for the lifespan</td> </tr> </table></div> </div> </li> <li> <p>Queries</p> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start") |
| .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY) |
| .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() { |
| @Override |
| public Query build(QueryFactory<Query> qf) { |
| return qf.from(User.class).having("name").like("%abc%").build(); |
| } |
| }) |
| .to("infinispan:myCacheName?cacheContainer=#cacheManager") ;</code></pre> </div> </div> <div class="admonitionblock note"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> <div class="paragraph"> <p>The .proto descriptors for domain objects must be registered with the remote Data Grid server, see <a href="https://infinispan.org/docs/stable/titles/developing/developing.html#remote_query_example">Remote Query Example</a> in the official Infinispan documentation.</p> </div> </td> </tr> </table></div> </div> </li> <li> <p>Custom Listeners</p> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("infinispan://?cacheContainer=#cacheManager&customListener=#myCustomListener") |
| .to("mock:result");</code></pre> </div> </div> <div class="paragraph"> <p>The instance of <code>myCustomListener</code> must exist and Camel should be able to look it up from the <code>Registry</code>. Users are encouraged to extend the <code>org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener</code> class and annotate the resulting class with <code>@ClientListener</code> which can be found in the package <code>org.infinispan.client.hotrod.annotation</code>.</p> </div> </li> </ul> </div> <div class="sect2"> <h3 id="_using_the_infinispan_based_idempotent_repository"><a class="anchor" href="#_using_the_infinispan_based_idempotent_repository"></a>Using the Infinispan based idempotent repository</h3> <div class="paragraph"> <p>In this section, we will use the Infinispan based idempotent repository.</p> </div> <div id="_tabs_1" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_1_java" class="tab"> <p>Java</p> </li> <li id="_tabs_1_xml" class="tab"> <p>XML</p> </li> </ul> </div> <div id="_tabs_1_java--panel" class="tabpanel" aria-labelledby="_tabs_1_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">InfinispanRemoteConfiguration conf = new InfinispanRemoteConfiguration(); <i class="conum" data-value="1"></i><b>(1)</b> |
| conf.setHosts("localhost:1122"); |
| |
| InfinispanRemoteIdempotentRepository repo = new InfinispanRemoteIdempotentRepository("idempotent"); <i class="conum" data-value="2"></i><b>(2)</b> |
| repo.setConfiguration(conf); |
| |
| context.addRoutes(new RouteBuilder() { |
| @Override |
| public void configure() { |
| from("direct:start") |
| .idempotentConsumer(header("MessageID"), repo) <i class="conum" data-value="3"></i><b>(3)</b> |
| .to("mock:result"); |
| } |
| });</code></pre> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Configure the cache</p> </li> <li> <p>Configure the repository bean</p> </li> <li> <p>Set the repository to the route</p> </li> </ol> </div> </div> <div id="_tabs_1_xml--panel" class="tabpanel" aria-labelledby="_tabs_1_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><bean id="infinispanRepo" class="org.apache.camel.component.infinispan.remote.InfinispanRemoteIdempotentRepository" destroy-method="stop"> |
| <constructor-arg value="idempotent"/> <i class="conum" data-value="1"></i><b>(1)</b> |
| <property name="configuration"> <i class="conum" data-value="2"></i><b>(2)</b> |
| <bean class="org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration"> |
| <property name="hosts" value="localhost:11222"/> |
| </bean> |
| </property> |
| </bean> |
| |
| <camelContext xmlns="http://camel.apache.org/schema/spring"> |
| <route> |
| <from uri="direct:start" /> |
| <idempotentConsumer idempotentRepository="infinispanRepo"> <i class="conum" data-value="3"></i><b>(3)</b> |
| <header>MessageID</header> |
| <to uri="mock:result" /> |
| </idempotentConsumer> |
| </route> |
| </camelContext></code></pre> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Set the name of the cache that will be used by the repository</p> </li> <li> <p>Configure the repository bean</p> </li> <li> <p>Set the repository to the route</p> </li> </ol> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_using_the_infinispan_based_aggregation_repository"><a class="anchor" href="#_using_the_infinispan_based_aggregation_repository"></a>Using the Infinispan based aggregation repository</h3> <div class="paragraph"> <p>In this section, we will use the Infinispan based aggregation repository.</p> </div> <div id="_tabs_2" class="openblock tabs is-sync is-loading"> <div class="content"> <div class="ulist tablist"> <ul> <li id="_tabs_2_java" class="tab"> <p>Java</p> </li> <li id="_tabs_2_xml" class="tab"> <p>XML</p> </li> </ul> </div> <div id="_tabs_2_java--panel" class="tabpanel" aria-labelledby="_tabs_2_java"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">InfinispanRemoteConfiguration conf = new InfinispanRemoteConfiguration(); <i class="conum" data-value="1"></i><b>(1)</b> |
| conf.setHosts("localhost:1122"); |
| |
| InfinispanRemoteAggregationRepository repo = new InfinispanRemoteAggregationRepository(); <i class="conum" data-value="2"></i><b>(2)</b> |
| repo.setCacheName("aggregation"); |
| repo.setConfiguration(conf); |
| |
| context.addRoutes(new RouteBuilder() { |
| @Override |
| public void configure() { |
| from("direct:start") |
| .aggregate(header("MessageID")) |
| .completionSize(3) |
| .aggregationRepository(repo) <i class="conum" data-value="3"></i><b>(3)</b> |
| .aggregationStrategy("myStrategy") |
| .to("mock:result"); |
| } |
| });</code></pre> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Configure the cache</p> </li> <li> <p>Create the repository bean</p> </li> <li> <p>Set the repository to the route</p> </li> </ol> </div> </div> <div id="_tabs_2_xml--panel" class="tabpanel" aria-labelledby="_tabs_2_xml"> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"><bean id="infinispanRepo" class="org.apache.camel.component.infinispan.remote.InfinispanRemoteAggregationRepository" destroy-method="stop"> |
| <constructor-arg value="aggregation"/> <i class="conum" data-value="1"></i><b>(1)</b> |
| <property name="configuration"> <i class="conum" data-value="2"></i><b>(2)</b> |
| <bean class="org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration"> |
| <property name="hosts" value="localhost:11222"/> |
| </bean> |
| </property> |
| </bean> |
| |
| <camelContext xmlns="http://camel.apache.org/schema/spring"> |
| <route> |
| <from uri="direct:start" /> |
| <aggregate aggregationStrategy="myStrategy" |
| completionSize="3" |
| aggregationRepository="infinispanRepo"> <i class="conum" data-value="3"></i><b>(3)</b> |
| <correlationExpression> |
| <header>MessageID</header> |
| </correlationExpression> |
| <to uri="mock:result"/> |
| </aggregate> |
| </route> |
| </camelContext></code></pre> </div> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>Set the name of the cache that will be used by the repository</p> </li> <li> <p>Configure the repository bean</p> </li> <li> <p>Set the repository to the route</p> </li> </ol> </div> </div> </div> </div> </div> <div class="sect2"> <h3 id="_embedding_store_support_with_camel_langchain4j_embeddings"><a class="anchor" href="#_embedding_store_support_with_camel_langchain4j_embeddings"></a>Embedding store support with camel-langchain4j-embeddings</h3> <div class="paragraph"> <p>This component provides the capability to store and query vector embeddings. To activate this functionality, add <code>camel-langchain4j-embeddings</code> to your project.</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-langchain4j-embeddings</artifactId> |
| <!-- use the same version as your Camel core version --> |
| <version>x.x.x</version> |
| </dependency></code></pre> </div> </div> <div class="paragraph"> <p>If you want to disable this functionality, set the <code>embeddingStoreEnabled</code> option to <code>false</code>.</p> </div> <div class="paragraph"> <p>To store an embedding:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:put") |
| // Create an embedding from the message body |
| .to("langchain4j-embeddings:create") |
| .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) |
| // Transform the embedding to a format usable by Infinispan |
| .transform(new DataType("infinispan:embeddings")) |
| // Store the embedding |
| .to("infinispan:myCache?embeddingStoreDimension=384");</code></pre> </div> </div> <div class="paragraph"> <p>The <code>embeddingStoreDimension</code> option <strong>must</strong> be specified. It must also match the dimension of the embedding model used by the <code>langchain4j-embeddings</code> endpoint.</p> </div> <div class="paragraph"> <p>To query embeddings:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:query") |
| // Create an embedding from the message body |
| .to("langchain4j-embeddings:create") |
| .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.QUERY) |
| // Transforms the embedding to a vector kNN search |
| .transform(new DataType("infinispan:embeddings")) |
| // Query embeddings |
| .to("infinispan:myCache?embeddingStoreDimension=384");</code></pre> </div> </div> <div class="paragraph"> <p>By default, a simple <a href="https://infinispan.org/docs/stable/titles/query/query.html#vector-search_ickle-query-language">vector kNN search</a> query is executed that looks like the following.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlightjs highlight"><code class="language-sql hljs" data-lang="sql">select i, score(i) from InfinispanRemoteEmbedding i |
| where i.embedding <-> [the vector embedding]~3</code></pre> </div> </div> <div class="paragraph"> <p>The <code>~3</code> part determines the distance from the search vector embedding, in relation to the configured vector similarity. These can be modified via the <code>embeddingStoreDistance</code> and <code>embeddingStoreVectorSimilarity</code> options.</p> </div> <div class="paragraph"> <p>The result of the query operation is <code>List<Object[]></code>. The elements of the <code>Object</code> array are as follows.</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">Index</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">0</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>InfinispanRemoteEmbedding</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>Information about the embedding such as the embedding text and its <code>float</code> array representation.</p> </div></div></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><code>Float</code></p></td> <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph"> <p>The score in relation to how closely the embedding matches the search text.</p> </div></div></td> </tr> </tbody> </table></div> <div class="admonitionblock note"> <div class="table-wrapper"><table> <tr> <td class="icon"> <i class="fa icon-note" title="Note"></i> </td> <td class="content"> <div class="paragraph"> <p>With the release of Infinispan 11, it is required to set the encoding configuration on any cache created. This is critical for consuming events too. For more information, have a look at <a href="https://infinispan.org/docs/stable/titles/developing/developing.html#data_encoding">Data Encoding and MediaTypes</a> in the official Infinispan documentation.</p> </div> </td> </tr> </table></div> </div> </div> </div> </div> <div class="sect1"> <h2 id="_spring_boot_auto_configuration"><a class="anchor" href="#_spring_boot_auto_configuration"></a>Spring Boot Auto-Configuration</h2> <div class="sectionbody"> <div class="paragraph"> <p>When using infinispan 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-infinispan-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 29 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_component_infinispan_autowired-enabled"></a> <a href="#_sb_option_camel_component_infinispan_autowired-enabled" class="anchor"></a><strong>camel.component.infinispan.autowired-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.</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_component_infinispan_bridge-error-handler"></a> <a href="#_sb_option_camel_component_infinispan_bridge-error-handler" class="anchor"></a><strong>camel.component.infinispan.bridge-error-handler</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.</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_component_infinispan_cache-container"></a> <a href="#_sb_option_camel_component_infinispan_cache-container" class="anchor"></a><strong>camel.component.infinispan.cache-container</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the cache Container to connect. The option is a org.infinispan.client.hotrod.RemoteCacheManager type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">RemoteCacheManager</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_cache-container-configuration"></a> <a href="#_sb_option_camel_component_infinispan_cache-container-configuration" class="anchor"></a><strong>camel.component.infinispan.cache-container-configuration</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The CacheContainer configuration. Used if the cacheContainer is not defined. The option is a org.infinispan.client.hotrod.configuration.Configuration type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Configuration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_configuration"></a> <a href="#_sb_option_camel_component_infinispan_configuration" class="anchor"></a><strong>camel.component.infinispan.configuration</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Component configuration. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanRemoteConfiguration</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_configuration-properties"></a> <a href="#_sb_option_camel_component_infinispan_configuration-properties" class="anchor"></a><strong>camel.component.infinispan.configuration-properties</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Implementation specific properties for the CacheManager.</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_component_infinispan_configuration-uri"></a> <a href="#_sb_option_camel_component_infinispan_configuration-uri" class="anchor"></a><strong>camel.component.infinispan.configuration-uri</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">An implementation specific URI for the CacheManager.</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_component_infinispan_custom-listener"></a> <a href="#_sb_option_camel_component_infinispan_custom-listener" class="anchor"></a><strong>camel.component.infinispan.custom-listener</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Returns the custom listener in use, if provided. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanRemoteCustomListener</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_embedding-store-dimension"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-dimension" class="anchor"></a><strong>camel.component.infinispan.embedding-store-dimension</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The dimension size used to store vector embeddings. This should be equal to the dimension size of the model used to create the vector embeddings. This option is mandatory if the embedding store is enabled.</p></td> <td class="tableblock halign-center valign-top"></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_component_infinispan_embedding-store-distance"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-distance" class="anchor"></a><strong>camel.component.infinispan.embedding-store-distance</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The distance to use for kNN search queries in relation to the configured vector similarity.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">3</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_component_infinispan_embedding-store-enabled"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-enabled" class="anchor"></a><strong>camel.component.infinispan.embedding-store-enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable the embedding store. When enabled, the embedding store will be configured automatically when Camel starts. Note that this feature requires camel-langchain4j-embeddings to be on the classpath.</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_component_infinispan_embedding-store-register-schema"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-register-schema" class="anchor"></a><strong>camel.component.infinispan.embedding-store-register-schema</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to automatically register the proto schema for the types required by embedding store cache put and query operations.</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_component_infinispan_embedding-store-type-name"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-type-name" class="anchor"></a><strong>camel.component.infinispan.embedding-store-type-name</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The name of the type used to store embeddings. The default is 'InfinispanRemoteEmbedding' suffixed with the value of the embeddingStoreDimension option. E.g. CamelInfinispanRemoteEmbedding384.</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_component_infinispan_embedding-store-vector-similarity"></a> <a href="#_sb_option_camel_component_infinispan_embedding-store-vector-similarity" class="anchor"></a><strong>camel.component.infinispan.embedding-store-vector-similarity</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The vector similarity algorithm used to store embeddings.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">cosine</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">VectorSimilarity</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_enabled"></a> <a href="#_sb_option_camel_component_infinispan_enabled" class="anchor"></a><strong>camel.component.infinispan.enabled</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether to enable auto configuration of the infinispan component. 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_component_infinispan_event-types"></a> <a href="#_sb_option_camel_component_infinispan_event-types" class="anchor"></a><strong>camel.component.infinispan.event-types</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER.</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_component_infinispan_flags"></a> <a href="#_sb_option_camel_component_infinispan_flags" class="anchor"></a><strong>camel.component.infinispan.flags</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.</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_component_infinispan_hosts"></a> <a href="#_sb_option_camel_component_infinispan_hosts" class="anchor"></a><strong>camel.component.infinispan.hosts</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the host of the cache on Infinispan instance. Multiple hosts can be separated by semicolon.</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_component_infinispan_lazy-start-producer"></a> <a href="#_sb_option_camel_component_infinispan_lazy-start-producer" class="anchor"></a><strong>camel.component.infinispan.lazy-start-producer</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.</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_component_infinispan_operation"></a> <a href="#_sb_option_camel_component_infinispan_operation" class="anchor"></a><strong>camel.component.infinispan.operation</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">The operation to perform.</p></td> <td class="tableblock halign-center valign-top"><p class="tableblock">put</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanOperation</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_password"></a> <a href="#_sb_option_camel_component_infinispan_password" class="anchor"></a><strong>camel.component.infinispan.password</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define the password to access the infinispan 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_component_infinispan_query-builder"></a> <a href="#_sb_option_camel_component_infinispan_query-builder" class="anchor"></a><strong>camel.component.infinispan.query-builder</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the query builder. The option is a org.apache.camel.component.infinispan.InfinispanQueryBuilder type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">InfinispanQueryBuilder</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_remapping-function"></a> <a href="#_sb_option_camel_component_infinispan_remapping-function" class="anchor"></a><strong>camel.component.infinispan.remapping-function</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Set a specific remappingFunction to use in a compute operation. The option is a java.util.function.BiFunction type.</p></td> <td class="tableblock halign-center valign-top"></td> <td class="tableblock halign-left valign-top"><p class="tableblock">BiFunction</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="_sb_option_camel_component_infinispan_result-header"></a> <a href="#_sb_option_camel_component_infinispan_result-header" class="anchor"></a><strong>camel.component.infinispan.result-header</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader.</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_component_infinispan_sasl-mechanism"></a> <a href="#_sb_option_camel_component_infinispan_sasl-mechanism" class="anchor"></a><strong>camel.component.infinispan.sasl-mechanism</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define the SASL Mechanism to access the infinispan 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_component_infinispan_secure"></a> <a href="#_sb_option_camel_component_infinispan_secure" class="anchor"></a><strong>camel.component.infinispan.secure</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define if we are connecting to a secured Infinispan instance.</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_component_infinispan_security-realm"></a> <a href="#_sb_option_camel_component_infinispan_security-realm" class="anchor"></a><strong>camel.component.infinispan.security-realm</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define the security realm to access the infinispan 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_component_infinispan_security-server-name"></a> <a href="#_sb_option_camel_component_infinispan_security-server-name" class="anchor"></a><strong>camel.component.infinispan.security-server-name</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define the security server name to access the infinispan 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_component_infinispan_username"></a> <a href="#_sb_option_camel_component_infinispan_username" class="anchor"></a><strong>camel.component.infinispan.username</strong></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Define the username to access the infinispan 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": "Components", "item": "https://camel.apache.org/components/next/index.html" }, { "@type": "ListItem", "position": 5, "name": "Infinispan", "item": "https://camel.apache.org/components/next/infinispan-component.html" }] } </script> </body> </html> |