--- apiVersion: v1 kind: List items: - apiVersion: v1 kind: ConfigMap metadata: labels: funktion.fabric8.io/kind: Connector provider: fabric8 project: connector-hazelcast version: 1.1.41 group: io.fabric8.funktion.connector name: hazelcast data: deployment.yml: | --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: funktion.fabric8.io/kind: Subscription connector: hazelcast spec: replicas: 1 template: metadata: labels: funktion.fabric8.io/kind: Subscription connector: hazelcast spec: containers: - image: funktion/connector-hazelcast:1.1.41 name: connector schema.yml: | --- component: kind: component scheme: hazelcast syntax: hazelcast:command:cacheName title: Hazelcast description: The hazelcast component allows you to work with the Hazelcast distributed data grid / cache. label: cache,datagrid deprecated: false async: false javaType: org.apache.camel.component.hazelcast.HazelcastComponent groupId: org.apache.camel artifactId: camel-hazelcast version: 2.18.1 componentProperties: hazelcastInstance: kind: property type: object javaType: com.hazelcast.core.HazelcastInstance deprecated: false secret: false description: The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference camel use the default hazelcast instance from the camel-hazelcast instance. order: 0 properties: command: kind: path group: common required: true type: string javaType: org.apache.camel.component.hazelcast.HazelcastCommand enum: - map - multimap - queue - topic - seda - set - atomicvalue - instance - list - replicatedmap - ringbuffer deprecated: false secret: false description: What operation to perform. order: 0 cacheName: kind: path group: common required: true type: string javaType: java.lang.String deprecated: false secret: false description: The name of the cache order: 1 defaultOperation: kind: parameter group: common type: integer javaType: int deprecated: false secret: false description: To specify a default operation to use if no operation header has been provided. order: 2 hazelcastInstance: kind: parameter group: common type: object javaType: com.hazelcast.core.HazelcastInstance deprecated: false secret: false description: The hazelcast instance reference which can be used for hazelcast endpoint. order: 3 hazelcastInstanceName: kind: parameter group: common type: string javaType: java.lang.String deprecated: false secret: false description: The hazelcast instance reference name which can be used for hazelcast endpoint. If you don't specify the instance reference camel use the default hazelcast instance from the camel-hazelcast instance. order: 4 bridgeErrorHandler: kind: parameter group: consumer label: consumer type: boolean javaType: boolean optionalPrefix: consumer. deprecated: false secret: false defaultValue: false description: Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored. order: 5 exceptionHandler: kind: parameter group: consumer (advanced) label: consumer,advanced type: object javaType: org.apache.camel.spi.ExceptionHandler optionalPrefix: consumer. deprecated: false secret: false description: To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored. order: 6 exchangePattern: kind: parameter group: consumer (advanced) label: consumer,advanced type: string javaType: org.apache.camel.ExchangePattern enum: - InOnly - RobustInOnly - InOut - InOptionalOut - OutOnly - RobustOutOnly - OutIn - OutOptionalIn deprecated: false secret: false description: Sets the exchange pattern when the consumer creates an exchange. order: 7 synchronous: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). order: 8 concurrentConsumers: kind: parameter group: seda label: seda type: integer javaType: int deprecated: false secret: false defaultValue: "1" description: To use concurrent consumers polling from the SEDA queue. order: 9 pollTimeout: kind: parameter group: seda label: seda type: integer javaType: int deprecated: false secret: false defaultValue: "1000" description: The timeout used when consuming from the SEDA queue. When a timeout occurs the consumer can check whether it is allowed to continue running. Setting a lower value allows the consumer to react more quickly upon shutdown. order: 10 transacted: kind: parameter group: seda label: seda type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: If set to true then the consumer runs in transaction mode where the messages in the seda queue will only be removed if the transaction commits which happens when the processing is complete. order: 11 transferExchange: kind: parameter group: seda label: seda type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: If set to true the whole Exchange will be transfered. If header or body contains not serializable objects they will be skipped. order: 12 documentation.adoc: "[[HazelcastComponent-HazelcastComponent]]\nHazelcast Component\n\ ~~~~~~~~~~~~~~~~~~~\n\n*Available as of Camel 2.7*\n\nThe *hazelcast:* component\ \ allows you to work with the\nhttp://www.hazelcast.com[Hazelcast] distributed\ \ data grid / cache.\nHazelcast is a in memory data grid, entirely written in\ \ Java (single\njar). It offers a great palette of different data stores like\ \ map, multi\nmap (same key, n values), queue, list and atomic number. The main\ \ reason\nto use Hazelcast is its simple cluster support. If you have enabled\n\ multicast on your network you can run a cluster with hundred nodes with\nno\ \ extra configuration. Hazelcast can simply configured to add\nadditional features\ \ like n copies between nodes (default is 1), cache\npersistence, network configuration\ \ (if needed), near cache, enviction\nand so on. For more information consult\ \ the Hazelcast documentation on\nhttp://www.hazelcast.com/docs.jsp[http://www.hazelcast.com/docs.jsp].\n\ \nMaven users will need to add the following dependency to their `pom.xml`\n\ for this component:\n\n[source,xml]\n------------------------------------------------------------\n\ \n org.apache.camel\n camel-hazelcast\n\ \ x.x.x\n \n\n------------------------------------------------------------\n\ \n[[HazelcastComponent-URIformat]]\nURI format\n^^^^^^^^^^\n\n[source,java]\n\ -------------------------------------------------------------------------------------------------------------------------\n\ hazelcast:[ map | multimap | queue | topic | seda | set | atomicvalue | instance\ \ | list | ringbuffer]:cachename[?options]\n-------------------------------------------------------------------------------------------------------------------------\n\ \n* Topic support is available as of Camel 2.15.??*\n\n\n* RingBuffer support\ \ is available as of Camel 2.16.??*\n\n[[HazelcastComponent-Options]]\nOptions\n\ ^^^^^^^\n\n\n\n\n// component options: START\nThe Hazelcast component supports\ \ 1 options which are listed below.\n\n\n\n{% raw %}\n[width=\"100%\",cols=\"\ 2,1m,7\",options=\"header\"]\n|=======================================================================\n\ | Name | Java Type | Description\n| hazelcastInstance | HazelcastInstance |\ \ The hazelcast instance reference which can be used for hazelcast endpoint.\ \ If you don't specify the instance reference camel use the default hazelcast\ \ instance from the camel-hazelcast instance.\n|=======================================================================\n\ {% endraw %}\n// component options: END\n\n\n\n\n\n\n// endpoint options: START\n\ The Hazelcast component supports 13 endpoint options which are listed below:\n\ \n{% raw %}\n[width=\"100%\",cols=\"2,1,1m,1m,5\",options=\"header\"]\n|=======================================================================\n\ | Name | Group | Default | Java Type | Description\n| command | common | |\ \ HazelcastCommand | *Required* What operation to perform.\n| cacheName | common\ \ | | String | *Required* The name of the cache\n| defaultOperation | common\ \ | | int | To specify a default operation to use if no operation header has\ \ been provided.\n| hazelcastInstance | common | | HazelcastInstance | The\ \ hazelcast instance reference which can be used for hazelcast endpoint.\n|\ \ hazelcastInstanceName | common | | String | The hazelcast instance reference\ \ name which can be used for hazelcast endpoint. If you don't specify the instance\ \ reference camel use the default hazelcast instance from the camel-hazelcast\ \ instance.\n| bridgeErrorHandler | consumer | false | boolean | Allows for\ \ bridging the consumer to the Camel routing Error Handler which mean any exceptions\ \ occurred while the consumer is trying to pickup incoming messages or the likes\ \ will now be processed as a message and handled by the routing Error Handler.\ \ By default the consumer will use the org.apache.camel.spi.ExceptionHandler\ \ to deal with exceptions that will be logged at WARN/ERROR level and ignored.\n\ | exceptionHandler | consumer (advanced) | | ExceptionHandler | To let the\ \ consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler\ \ is enabled then this options is not in use. By default the consumer will deal\ \ with exceptions that will be logged at WARN/ERROR level and ignored.\n| exchangePattern\ \ | consumer (advanced) | | ExchangePattern | Sets the exchange pattern when\ \ the consumer creates an exchange.\n| synchronous | advanced | false | boolean\ \ | Sets whether synchronous processing should be strictly used or Camel is\ \ allowed to use asynchronous processing (if supported).\n| concurrentConsumers\ \ | seda | 1 | int | To use concurrent consumers polling from the SEDA queue.\n\ | pollTimeout | seda | 1000 | int | The timeout used when consuming from the\ \ SEDA queue. When a timeout occurs the consumer can check whether it is allowed\ \ to continue running. Setting a lower value allows the consumer to react more\ \ quickly upon shutdown.\n| transacted | seda | false | boolean | If set to\ \ true then the consumer runs in transaction mode where the messages in the\ \ seda queue will only be removed if the transaction commits which happens when\ \ the processing is complete.\n| transferExchange | seda | false | boolean |\ \ If set to true the whole Exchange will be transfered. If header or body contains\ \ not serializable objects they will be skipped.\n|=======================================================================\n\ {% endraw %}\n// endpoint options: END\n\n\n\n[[HazelcastComponent-Sections]]\n\ Sections\n^^^^^^^^\n\n1. Usage of link:hazelcast-component.html[#map]\n2. \ \ Usage of link:hazelcast-component.html[#multimap]\n3. Usage of link:hazelcast-component.html[#queue]\n\ 4. Usage of link:hazelcast-component.html[#topic]\n5. Usage of link:hazelcast-component.html[#list]\n\ 6. Usage of link:hazelcast-component.html[#seda]\n7. Usage of link:hazelcast-component.html[atomic\ \ number]\n8. Usage of link:hazelcast-component.html[#cluster] support (instance)\n\ 9. Usage of link:hazelcast-component.html[#replicatedmap]??\n10. Usage of??\ link:hazelcast-component.html[#ringbuffer]??\n\n[[HazelcastComponent-UsageofMap]]\n\ Usage of Map\n^^^^^^^^^^^^\n\n[[HazelcastComponent-mapcacheproducer-to-map]]\n\ Map cache producer - to(\"hazelcast:map:foo\")\n++++++++++++++++++++++++++++++++++++++++++++\n\ \nIf you want to store a value in a map you can use the map cache\nproducer.\ \ \n\nThe map cache producer provides follow operations specified by *CamelHazelcastOperationType*\ \ header:\n\n* put\n* putIfAbsent\n* get\n* getAll\n* keySet\n* containsKey\n\ * containsValue\n* delete\n* update\n* query\n* clear\n* evict\n* evictAll\n\ \nAll operations are provide the inside the \"hazelcast.operation.type\" header\ \ variable. In Java\nDSL you can use the constants from `org.apache.camel.component.hazelcast.HazelcastConstants`.\n\ \nHeader Variables for the request message:\n\n[width=\"100%\",cols=\"10%,10%,80%\"\ ,options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n|`CamelHazelcastOperationType` |`String` | as already\ \ described. \n\n|`CamelHazelcastObjectId` |`String` |the object id to store\ \ / find your object inside the cache (not needed for the query operation)\n\ |=======================================================================\n\n\ *put* and *putIfAbsent* operations provide an eviction mechanism: \n\n[width=\"\ 100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n|`CamelHazelcastObjectTtlValue` |`Integer` | value\ \ of TTL. \n\n|`CamelHazelcastObjectTtlUnit` |`java.util.concurrent.TimeUnit`\ \ | value of time unit ( DAYS / HOURS / MINUTES / ....\n|=======================================================================\n\ \nYou can call the samples with:\n\n[source,java]\n-------------------------------------------------------------------------------------------------------------------\n\ template.sendBodyAndHeader(\"direct:[put|get|update|delete|query|evict]\", \"\ my-foo\", HazelcastConstants.OBJECT_ID, \"4711\");\n-------------------------------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforput:]]\nSample for *put*:\n\nJava DSL:\n\n[source,java]\n\ ------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX);\n------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n put\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \nSample for *put* with eviction:\n\nJava DSL:\n\n[source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))\n\ .setHeader(HazelcastConstants.TTL_VALUE, constant(Long.valueOf(1)))\n.setHeader(HazelcastConstants.TTL_UNIT,\ \ constant(TimeUnit.MINUTES))\n.toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX);\n\ ------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n put\n\ \ \n \n 1\n \n\ \ \n TimeUnit.MINUTES\n \ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \n\n[[HazelcastComponent-Sampleforget:]]\nSample for *get*:\n\nJava DSL:\n\n\ [source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX)\n.to(\"seda:out\");\n\ ------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n get\n\ \ \n \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforupdate:]]\nSample for *update*:\n\nJava DSL:\n\ \n[source,java]\n---------------------------------------------------------------------------------------\n\ from(\"direct:update\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.UPDATE_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX);\n---------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n update\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Samplefordelete:]]\nSample for *delete*:\n\nJava DSL:\n\ \n[source,java]\n---------------------------------------------------------------------------------------\n\ from(\"direct:delete\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX);\n---------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n delete\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforquery]]\nSample for *query*\n\nJava DSL:\n\n\ [source,java]\n--------------------------------------------------------------------------------------\n\ from(\"direct:query\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.QUERY_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX)\n.to(\"seda:out\");\n\ --------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n query\n\ \ \n \n \n\n-----------------------------------------------------------------------------------------------\n\ \nFor the query operation Hazelcast offers a SQL like syntax to query your\n\ distributed map.\n\n[source,java]\n-------------------------------------------------------------------------------\n\ String q1 = \"bar > 1000\";\ntemplate.sendBodyAndHeader(\"direct:query\", null,\ \ HazelcastConstants.QUERY, q1);\n-------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-mapcacheconsumer-from-map]]\nMap cache consumer - from(\"\ hazelcast:map:foo\")\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nHazelcast\ \ provides event listeners on their data grid. If you want to be\nnotified if\ \ a cache will be manipulated, you can use the map consumer.\nThere're 4 events:\ \ *put*, *update*, *delete* and *envict*. The event\ntype will be stored in\ \ the \"*hazelcast.listener.action*\" header\nvariable. The map consumer provides\ \ some additional information inside\nthese variables:\n\nHeader Variables inside\ \ the response message:\n\n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\"\ ,]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastListenerTime` |`Long` |time of the\ \ event in millis\n\n|`CamelHazelcastListenerType` |`String` |the map consumer\ \ sets here \"cachelistener\"\n\n|`CamelHazelcastListenerAction` |`String` |type\ \ of event - here *added*, *updated*, *envicted* and *removed*.\n\n|`CamelHazelcastObjectId`\ \ |`String` |the oid of the object\n\n|`CamelHazelcastCacheName` |`String` |the\ \ name of the cache - e.g. \"foo\"\n\n|`CamelHazelcastCacheType` |`String` |the\ \ type of the cache - here map\n|=======================================================================\n\ \nThe object value will be stored within *put* and *update* actions inside\n\ the message body.\n\nHere's a sample:\n\n[source,java]\n--------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%sfoo\", HazelcastConstants.MAP_PREFIX)\n.log(\"object...\"\ )\n.choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\")\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ENVICTED))\n\ \ .log(\"...envicted\")\n .to(\"mock:envicted\")\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.UPDATED))\n\ \ .log(\"...updated\")\n .to(\"mock:updated\")\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))\n\ \ .log(\"...removed\")\n .to(\"mock:removed\")\n .otherwise()\n\ \ .log(\"fail!\");\n--------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-UsageofMultiMap]]\nUsage of Multi Map\n^^^^^^^^^^^^^^^^^^\n\ \n[[HazelcastComponent-multimapcacheproducer-to-multimap]]\nmultimap cache producer\ \ - to(\"hazelcast:multimap:foo\")\n++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\ \nA multimap is a cache where you can store n values to one key. The\nmultimap\ \ producer provides 4 operations (put, get, removevalue, delete).\n\nHeader\ \ Variables for the request message:\n\n[width=\"100%\",cols=\"10%,10%,80%\"\ ,options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastOperationType` |`String` |valid\ \ values are: put, get, removevalue, delete *From Camel 2.16:* clear.\n\n|`CamelHazelcastObjectId`\ \ |`String` |the object id to store / find your object inside the cache\n|=======================================================================\n\ \n[[HazelcastComponent-Sampleforput:.1]]\nSample for *put*:\n\nJava DSL:\n\n\ [source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))\n\ .to(String.format(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX));\n\ ------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \ \ \n \n put\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforremovevalue:]]\nSample for *removevalue*:\n\n\ Java DSL:\n\n[source,java]\n--------------------------------------------------------------------------------------------\n\ from(\"direct:removevalue\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX);\n--------------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n \n removevalue\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \nTo remove a value you have to provide the value you want to remove\ninside\ \ the message body. If you have a multimap object\n\\{`key: \"4711\" values:\ \ { \"my-foo\", \"my-bar\"`}} you have to put \"my-foo\"\ninside the message\ \ body to remove the \"my-foo\" value.\n\n[[HazelcastComponent-Sampleforget:.1]]\n\ Sample for *get*:\n\nJava DSL:\n\n[source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX)\n.to(\"seda:out\"\ );\n------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \ \ \n \n get\n\ \ \n \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Samplefordelete:.1]]\nSample for *delete*:\n\nJava DSL:\n\ \n[source,java]\n---------------------------------------------------------------------------------------\n\ from(\"direct:delete\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX);\n---------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n\ \ \n \n delete\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \nyou can call them in your test class with:\n\n[source,java]\n------------------------------------------------------------------------------------------------------------------\n\ template.sendBodyAndHeader(\"direct:[put|get|removevalue|delete]\", \"my-foo\"\ , HazelcastConstants.OBJECT_ID, \"4711\");\n------------------------------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-multimapcacheconsumer-from-multimap]]\nmultimap cache\ \ consumer - from(\"hazelcast:multimap:foo\")\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\ \nFor the multimap cache this component provides the same listeners /\nvariables\ \ as for the map cache consumer (except the update and enviction\nlistener).\ \ The only difference is the *multimap* prefix inside the URI.\nHere is a sample:\n\ \n[source,java]\n--------------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX)\n.log(\"object...\"\ )\n.choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\")\n //.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ENVICTED))\n\ \ // .log(\"...envicted\")\n // .to(\"mock:envicted\"\ )\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))\n\ \ .log(\"...removed\")\n .to(\"mock:removed\"\ )\n .otherwise()\n .log(\"fail!\");\n--------------------------------------------------------------------------------------------------\n\ \nHeader Variables inside the response message:\n\n[width=\"100%\",cols=\"10%,10%,80%\"\ ,options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastListenerTime` |`Long` |time of the\ \ event in millis\n\n|`CamelHazelcastListenerType` |`String` |the map consumer\ \ sets here \"cachelistener\"\n\n|`CamelHazelcastListenerAction` |`String` |type\ \ of event - here *added* and *removed* (and soon *envicted*)\n\n|`CamelHazelcastObjectId`\ \ |`String` |the oid of the object\n\n|`CamelHazelcastCacheName` |`String` |the\ \ name of the cache - e.g. \"foo\"\n\n|`CamelHazelcastCacheType` |`String` |the\ \ type of the cache - here multimap\n|=======================================================================\n\ \n[[HazelcastComponent-UsageofQueue]]\nUsage of Queue\n^^^^^^^^^^^^^^\n\n[[HazelcastComponent-Queueproducer]]\n\ Queue producer ??? to(???hazelcast:queue:foo???)\n++++++++++++++++++++++++++++++++++++++++++\n\ \nThe queue producer provides 6 operations (add, put, poll, peek, offer,\nremovevalue).\n\ \n[[HazelcastComponent-Sampleforadd:]]\nSample for *add*:\n\n[source,java]\n\ ------------------------------------------------------------------------------------\n\ from(\"direct:add\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforput:.2]]\nSample for *put*:\n\n[source,java]\n\ ------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforpoll:]]\nSample for *poll*:\n\n[source,java]\n\ -------------------------------------------------------------------------------------\n\ from(\"direct:poll\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.POLL_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n-------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforpeek:]]\nSample for *peek*:\n\n[source,java]\n\ -------------------------------------------------------------------------------------\n\ from(\"direct:peek\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PEEK_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n-------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforoffer:]]\nSample for *offer*:\n\n[source,java]\n\ --------------------------------------------------------------------------------------\n\ from(\"direct:offer\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.OFFER_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n--------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforremovevalue:.1]]\nSample for *removevalue*:\n\ \n[source,java]\n--------------------------------------------------------------------------------------------\n\ from(\"direct:removevalue\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.QUEUE_PREFIX);\n--------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Queueconsumer]]\nQueue consumer ??? from(???hazelcast:queue:foo?\ ??)\n++++++++++++++++++++++++++++++++++++++++++++\n\nThe queue consumer provides\ \ 2 operations (add, remove).\n\n[source,java]\n-------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%smm\", HazelcastConstants.QUEUE_PREFIX)\n .log(\"object...\"\ )\n .choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\")\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))\n\ \ .log(\"...removed\")\n .to(\"mock:removed\")\n .otherwise()\n\ \ .log(\"fail!\");\n-------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-topic]]\n\n[[HazelcastComponent-UsageofTopic]]\nUsage\ \ of Topic\n^^^^^^^^^^^^^^\n\n[[HazelcastComponent-Topicproducer]]\nTopic producer\ \ ??? to(???hazelcast:topic:foo???)\n++++++++++++++++++++++++++++++++++++++++++\n\ \nThe topic producer provides only one operation (publish).\n\n[[HazelcastComponent-Sampleforpublish:]]\n\ Sample for??*publish*:\n\n[source,java]\n----------------------------------------------------------------------------------------\n\ from(\"direct:add\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUBLISH_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.PUBLISH_OPERATION);\n----------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Topicconsumer]]\nTopic consumer ??? from(???hazelcast:topic:foo?\ ??)\n++++++++++++++++++++++++++++++++++++++++++++\n\nThe topic consumer provides\ \ only one operation (received). This\ncomponent is supposed to support multiple\ \ consumption as it's expected\nwhen it comes to topics so you are free to have\ \ as much consumers as you\nneed on the same hazelcast topic.\n\n[source,java]\n\ --------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%sfoo\", HazelcastConstants.TOPIC_PREFIX)\n .choice()\n \ \ .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.RECEIVED))\n\ \ .log(\"...message received\")\n .otherwise()\n .log(\"...this\ \ should never have happened\")\n--------------------------------------------------------------------------------------------\n\ \n??\n\n[[HazelcastComponent-UsageofList]]\nUsage of List\n^^^^^^^^^^^^^\n\n\ [[HazelcastComponent-Listproducer]]\nList producer ??? to(???hazelcast:list:foo?\ ??)\n++++++++++++++++++++++++++++++++++++++++\n\nThe list producer provides\ \ 4 operations (add, addAll, set, get,\nremovevalue, removeAll, clear).\n\n\ [[HazelcastComponent-Sampleforadd:.1]]\nSample for *add*:\n\n[source,java]\n\ ------------------------------------------------------------------------------------\n\ from(\"direct:add\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.LIST_PREFIX);\n------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforget:.2]]\nSample for *get*:\n\n[source,java]\n\ ------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.LIST_PREFIX)\n.to(\"seda:out\"\ );\n------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforsetvalue:]]\nSample for *setvalue*:\n\n[source,java]\n\ -----------------------------------------------------------------------------------------\n\ from(\"direct:set\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.LIST_PREFIX);\n-----------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforremovevalue:.2]]\nSample for *removevalue*:\n\ \n[source,java]\n--------------------------------------------------------------------------------------------\n\ from(\"direct:removevalue\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.REMOVEVALUE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.LIST_PREFIX);\n--------------------------------------------------------------------------------------------\n\ \nNote that??*CamelHazelcastObjectIndex* header is used for indexing\npurpose.\n\ \n[[HazelcastComponent-Thelistconsumerprovides2operationsListconsumer]]\nThe\ \ list consumer provides 2 operations (add, remove).List consumer ??? from(?\ ??hazelcast:list:foo???)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\ \n[source,java]\n-----------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%smm\", HazelcastConstants.LIST_PREFIX)\n .log(\"object...\"\ )\n .choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\"\ )\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))\n\ \ .log(\"...removed\")\n .to(\"mock:removed\"\ )\n .otherwise()\n .log(\"fail!\");\n\ -----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-UsageofSEDA]]\nUsage of SEDA\n^^^^^^^^^^^^^\n\nSEDA component\ \ differs from the rest components provided. It implements\na work-queue in\ \ order to support asynchronous SEDA architectures,\nsimilar to the core \"\ SEDA\" component.\n\n[[HazelcastComponent-SEDAproducer]]\nSEDA producer ???\ \ to(???hazelcast:seda:foo???)\n++++++++++++++++++++++++++++++++++++++++\n\n\ The SEDA producer provides no operations. You only send data to the\nspecified\ \ queue.\n\n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Default value |Description\n\n|`transferExchange` |`false` | if set to\ \ true the whole Exchange will be transfered. If\nheader or body contains not\ \ serializable objects, they will be skipped.\n|=======================================================================\n\ \nJava DSL :\n\n[source,java]\n--------------------------\nfrom(\"direct:foo\"\ )\n.to(\"hazelcast:seda:foo\");\n--------------------------\n\nSpring DSL :\n\ \n[source,java]\n----------------------------------\n\n \n \n\n----------------------------------\n\ \n[[HazelcastComponent-SEDAconsumer]]\nSEDA consumer ??? from(???hazelcast:seda:foo?\ ??)\n++++++++++++++++++++++++++++++++++++++++++\n\nThe SEDA consumer provides\ \ no operations. You only retrieve data from\nthe specified queue.\n\n[width=\"\ 100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Default value |Description\n\n|`pollInterval` |`1000` |The timeout used\ \ when consuming from the SEDA queue. When a timeout\noccurs, the consumer can\ \ check whether it is allowed to continue\nrunning. Setting a lower value allows\ \ the consumer to react more quickly\nupon shutdown. (*deprecated* from Camel\ \ 2.15 onwards, use pollTimeout\ninstead).\n\n|`pollTimeout` |1000 | The timeout\ \ used when consuming from the SEDA queue. When\na timeout occurs, the consumer\ \ can check whether it is allowed to\ncontinue running. Setting a lower value\ \ allows the consumer to react\nmore quickly upon shutdown.\n\n|`concurrentConsumers`\ \ |`1` |To use concurrent consumers polling from the SEDA queue.\n\n|`transferExchange`\ \ |`false`| if set to true the whole Exchange will be transfered. If\nheader\ \ or body contains not serializable objects, they will be skipped.\n\n|`transacted`\ \ |`false`| if set to true then the consumer runs in transaction\nmode, where\ \ the messages in the seda queue will only be removed if the\ntransaction commits,\ \ which happens when the processing is complete.\n|=======================================================================\n\ \nJava DSL :\n\n[source,java]\n--------------------------\nfrom(\"hazelcast:seda:foo\"\ )\n.to(\"mock:result\");\n--------------------------\n\nSpring DSL:\n\n[source,java]\n\ -----------------------------------\n\n \n \n\n-----------------------------------\n\ \n[[HazelcastComponent-UsageofAtomicNumber]]\nUsage of Atomic Number\n^^^^^^^^^^^^^^^^^^^^^^\n\ \n* There is no consumer for this endpoint! *\n\n[[HazelcastComponent-atomicnumberproducer]]\n\ atomic number producer - to(\"hazelcast:atomicnumber:foo\")\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\ \nAn atomic number is an object that simply provides a grid wide number\n(long).\ \ The operations for this producer are setvalue (set the number\nwith a given\ \ value), get, increase (+1), decrease (-1) and destroy.\n\nHeader Variables\ \ for the request message:\n\n[width=\"100%\",cols=\"10%,10%,80%\",options=\"\ header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastOperationType` |`String` |valid\ \ values are: setvalue, get, increase, decrease, destroy \n|=======================================================================\n\ \n[[HazelcastComponent-Sampleforset:]]\nSample for *set*:\n\nJava DSL:\n\n[source,java]\n\ -----------------------------------------------------------------------------------------\n\ from(\"direct:set\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.SETVALUE_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.ATOMICNUMBER_PREFIX);\n-----------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n setvalue\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \nProvide the value to set inside the message body (here the value is 10):\n\ `template.sendBody(\"direct:set\", 10);`\n\n[[HazelcastComponent-Sampleforget:.3]]\n\ Sample for *get*:\n\nJava DSL:\n\n[source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.ATOMICNUMBER_PREFIX);\n------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n get\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \nYou can get the number with\n`long body = template.requestBody(\"direct:get\"\ , null, Long.class);`.\n\n[[HazelcastComponent-Sampleforincrement:]]\nSample\ \ for *increment*:\n\nJava DSL:\n\n[source,java]\n------------------------------------------------------------------------------------------\n\ from(\"direct:increment\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.INCREMENT_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.ATOMICNUMBER_PREFIX);\n------------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n increment\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \nThe actual value (after increment) will be provided inside the message\nbody.\n\ \n[[HazelcastComponent-Samplefordecrement:]]\nSample for *decrement*:\n\nJava\ \ DSL:\n\n[source,java]\n------------------------------------------------------------------------------------------\n\ from(\"direct:decrement\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DECREMENT_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.ATOMICNUMBER_PREFIX);\n------------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n decrement\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \nThe actual value (after decrement) will be provided inside the message\nbody.\n\ \n[[HazelcastComponent-Samplefordestroy]]\nSample for *destroy*\n\nJava DSL:\n\ \n[source,java]\n----------------------------------------------------------------------------------------\n\ from(\"direct:destroy\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DESTROY_OPERATION))\n\ .toF(\"hazelcast:%sfoo\", HazelcastConstants.ATOMICNUMBER_PREFIX);\n----------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \n destroy\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-clustersupport]]\ncluster support\n^^^^^^^^^^^^^^^\n\n\ * This endpoint provides no producer! *\n\n[[HazelcastComponent-instanceconsumer-from]]\n\ instance consumer - from(\"hazelcast:instance:foo\")\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\ \nHazelcast makes sense in one single \"server node\", but it's extremly\npowerful\ \ in a clustered environment. The instance consumer fires if a\nnew cache instance\ \ will join or leave the cluster.\n\nHere's a sample:\n\n[source,java]\n-----------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%sfoo\", HazelcastConstants.INSTANCE_PREFIX)\n.log(\"instance...\"\ )\n.choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\")\n .otherwise()\n\ \ .log(\"...removed\")\n .to(\"mock:removed\");\n-----------------------------------------------------------------------------------------\n\ \nEach event provides the following information inside the message header:\n\ \nHeader Variables inside the response message:\n\n\n[width=\"100%\",cols=\"\ 10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastListenerTime` |`Long` |time of the\ \ event in millis\n\n|`CamelHazelcastListenerType` |`String` |the map consumer\ \ sets here \"instancelistener\"\n\n|`CamelHazelcastListenerAction` |`String`\ \ |type of event - here *added* or *removed*.\n\n|`CamelHazelcastInstanceHost`\ \ |`String` | host name of the instance\n\n|`CamelHazelcastInstancePort` |`Integer`\ \ |port number of the instance\n|=======================================================================\n\ \n[[HazelcastComponent-Usinghazelcastreference]]\nUsing hazelcast reference\n\ ^^^^^^^^^^^^^^^^^^^^^^^^^\n\n[[HazelcastComponent-Byitsname]]\nBy its name\n\ +++++++++++\n\n[source,xml]\n--------------------------------------------------------------------------------------------------------\n\ \n\n\n \n\ \n\n\n \n\n\n \n \n \n put\n \ \ \n \n \n\n \n \ \ \n \n get\n\ \ \n \n \n \n\n--------------------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Byinstance]]\nBy instance\n+++++++++++\n\n[source,xml]\n\ ------------------------------------------------------------------------------\n\ \n\n\n\n \ \ \n \n \n \ \ put\n \n \n \n\n \n \ \ \n \n get\n\ \ \n \n \n \n\n------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-PublishinghazelcastinstanceasanOSGIservice]]\nPublishing\ \ hazelcast instance as an OSGI service\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\ \nIf operating in an OSGI container and you would want to use one instance\n\ of hazelcast across all bundles in the same container. You can publish\nthe\ \ instance as an OSGI service and bundles using the cache al need is\nto reference\ \ the service in the hazelcast endpoint.\n\n[[HazelcastComponent-BundleAcreateaninstanceandpublishesitasanOSGIservice]]\n\ Bundle A create an instance and publishes it as an OSGI service\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\ \n??\n\n[source,xml]\n--------------------------------------------------------------------------------------------------------\n\ \n \ \ \n\n\ \n\n \n\n\n\n\n--------------------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-BundleBusestheinstance]]\nBundle B uses the instance\n\ ++++++++++++++++++++++++++\n\n[source,xml]\n--------------------------------------------------------------------------------------\n\ \n\n\n\n \n \n \n put\n\ \ \n \n \n\n \n \ \ \n \n get\n\ \ \n \n \n \n\n--------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-UsageofReplicatedmap]]\nUsage of Replicated map\n^^^^^^^^^^^^^^^^^^^^^^^\n\ \n*Avalaible from Camel 2.16*\n\n[[HazelcastComponent-replicatedmapcacheproducer]]\n\ replicatedmap cache producer\n++++++++++++++++++++++++++++\n\nA replicated map\ \ is a weakly consistent, distributed key-value data\nstructure with no data\ \ partition. The replicatedmap producer provides 4\noperations (put, get, delete,\ \ clear).\n\nHeader Variables for the request message:\n\n[width=\"100%\",cols=\"\ 10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastOperationType` |`String` | valid\ \ values are: put, get, removevalue, delete\n\n|`CamelHazelcastObjectId` |`String`\ \ | the object id to store / find your object inside the cache\n|=======================================================================\n\ \n[[HazelcastComponent-Sampleforput:.3]]\nSample for??*put*:\n\nJava DSL:\n\n\ [source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.PUT_OPERATION))\n\ .to(String.format(\"hazelcast:%sbar\", HazelcastConstants.REPLICATEDMAP_PREFIX));\n\ ------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \ \ \n \n put\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforget:.4]]\nSample for??*get*:\n\nJava DSL:\n\n\ [source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.REPLICATEDMAP_PREFIX)\n.to(\"seda:out\"\ );\n------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \ \ \n \n get\n\ \ \n \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Samplefordelete:.2]]\nSample for??*delete*:\n\nJava DSL:\n\ \n[source,java]\n---------------------------------------------------------------------------------------\n\ from(\"direct:delete\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.DELETE_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.REPLICATEDMAP_PREFIX);\n---------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n\ \ \n \n delete\n\ \ \n \n\n\ -----------------------------------------------------------------------------------------------\n\ \nyou can call them in your test class with:\n\n[source,java]\n------------------------------------------------------------------------------------------------------------\n\ template.sendBodyAndHeader(\"direct:[put|get|delete|clear]\", \"my-foo\", HazelcastConstants.OBJECT_ID,\ \ \"4711\");\n------------------------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-replicatedmapcacheconsumer]]\nreplicatedmap cache consumer\n\ ++++++++++++++++++++++++++++\n\nFor the multimap cache this component provides\ \ the same listeners /\nvariables as for the map cache consumer (except the\ \ update and enviction\nlistener). The only difference is the??*multimap*??\ prefix inside the URI.\nHere is a sample:\n\n[source,java]\n--------------------------------------------------------------------------------------------------\n\ fromF(\"hazelcast:%sbar\", HazelcastConstants.MULTIMAP_PREFIX)\n.log(\"object...\"\ )\n.choice()\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ADDED))\n\ \ .log(\"...added\")\n .to(\"mock:added\")\n //.when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.ENVICTED))\n\ \ // .log(\"...envicted\")\n // .to(\"mock:envicted\"\ )\n .when(header(HazelcastConstants.LISTENER_ACTION).isEqualTo(HazelcastConstants.REMOVED))\n\ \ .log(\"...removed\")\n .to(\"mock:removed\"\ )\n .otherwise()\n .log(\"fail!\");\n--------------------------------------------------------------------------------------------------\n\ \nHeader Variables inside the response message:\n\n[width=\"100%\",cols=\"10%,10%,80%\"\ ,options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastListenerTime` |`Long` |time of the\ \ event in millis\n\n|`CamelHazelcastListenerType` |`String` |the map consumer\ \ sets here \"cachelistener\"\n\n|`CamelHazelcastListenerAction` |`String` |type\ \ of event - here *added* and *removed* (and soon *envicted*)\n\n|`CamelHazelcastObjectId`\ \ |`String` | the oid of the object\n\n|`CamelHazelcastCacheName` |`String`\ \ |the name of the cache - e.g. \"foo\"\n\n|`CamelHazelcastCacheType` |`String`\ \ |the type of the cache - here replicatedmap\n|=======================================================================\n\ \n[[HazelcastComponent-UsageofRingbuffer]]\nUsage of Ringbuffer\n^^^^^^^^^^^^^^^^^^^\n\ \n*Avalaible from Camel 2.16*\n\n[[HazelcastComponent-ringbuffercacheproducer]]\n\ ringbuffer cache producer \n+++++++++++++++++++++++++\n\nRingbuffer is a distributed\ \ data structure where the data is stored in a\nring-like structure. You can\ \ think of it as a circular array with a\ncertain capacity.??The ringbuffer\ \ producer provides 5 operations (add,\nreadonceHead, readonceTail, remainingCapacity,\ \ capacity).\n\nHeader Variables for the request message:\n\n[width=\"100%\"\ ,cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\ |Name |Type |Description\n\n|`CamelHazelcastOperationType` |`String` |valid\ \ values are: put, get, removevalue, delete\n\n|`CamelHazelcastObjectId` |`String`\ \ |the object id to store / find your object inside the cache\n|=======================================================================\n\ \n[[HazelcastComponent-Sampleforput:.4]]\nSample for??*put*:\n\nJava DSL:\n\n\ [source,java]\n------------------------------------------------------------------------------------\n\ from(\"direct:put\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.ADD_OPERATION))\n\ .to(String.format(\"hazelcast:%sbar\", HazelcastConstants.RINGBUFFER_PREFIX));\n\ ------------------------------------------------------------------------------------\n\ \nSpring DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ \n \n \n \ \ \n \n add\n\ \ \n \n\n-----------------------------------------------------------------------------------------------\n\ \n[[HazelcastComponent-Sampleforreadoncefromhead:]]\nSample for??*readonce from\ \ head*:\n\nJava DSL:\n\n[source,java]\n-----------------------------------------------------------------------------------------------\n\ from(\"direct:get\")\n.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.READ_ONCE_HEAD_OPERATION))\n\ .toF(\"hazelcast:%sbar\", HazelcastConstants.RINGBUFFER_PREFIX)\n.to(\"seda:out\"\ );\n-----------------------------------------------------------------------------------------------\n"