[[ignite-cache-component]]
= Ignite Cache Component
//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
:page-source: components/camel-ignite/src/main/docs/ignite-cache-component.adoc
:docTitle: Ignite Cache
:artifactId: camel-ignite
:description: Perform cache operations on an Ignite cache or consume changes from a continuous query.
:since: 2.17
:supportLevel: Stable
:component-header: Both producer and consumer are supported
//Manually maintained attributes
:group: Ignite

*Since Camel {since}*

*{component-header}*

The Ignite Cache endpoint is one of camel-ignite endpoints which allows you to interact with an https://apacheignite.readme.io/docs/data-grid[Ignite Cache].
This offers both a Producer (to invoke cache operations on an Ignite cache) and a Consumer (to consume changes from a continuous query).

The cache value is always the body of the message, whereas the cache key is always stored in the `IgniteConstants.IGNITE_CACHE_KEY` message header.

Even if you configure a fixed operation in the endpoint URI, you can vary it per-exchange by setting the `IgniteConstants.IGNITE_CACHE_OPERATION` message header.

== Options

// component options: START
The Ignite Cache component supports 6 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *configurationResource* (common) | The resource from where to load the configuration. It can be a: URL, String or InputStream type. |  | Object
| *ignite* (common) | To use an existing Ignite instance. |  | Ignite
| *igniteConfiguration* (common) | Allows the user to set a programmatic ignite configuration. |  | IgniteConfiguration
| *bridgeErrorHandler* (consumer) | 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 or ERROR level and ignored. | false | boolean
| *lazyStartProducer* (producer) | 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. | false | boolean
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
|===
// component options: END

// endpoint options: START
The Ignite Cache endpoint is configured using URI syntax:

----
ignite-cache:cacheName
----

with the following path and query parameters:

=== Path Parameters (1 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *cacheName* | *Required* The cache name. |  | String
|===


=== Query Parameters (18 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *propagateIncomingBodyIfNo ReturnValue* (common) | Sets whether to propagate the incoming body if the return type of the underlying Ignite operation is void. | true | boolean
| *treatCollectionsAsCacheObjects* (common) | Sets whether to treat Collections as cache objects or as Collections of items to insert/update/compute, etc. | false | boolean
| *autoUnsubscribe* (consumer) | Whether auto unsubscribe is enabled in the Continuous Query Consumer. Default value notice: ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE | true | boolean
| *bridgeErrorHandler* (consumer) | 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 or ERROR level and ignored. | false | boolean
| *fireExistingQueryResults* (consumer) | Whether to process existing results that match the query. Used on initialization of the Continuous Query Consumer. | false | boolean
| *oneExchangePerUpdate* (consumer) | Whether to pack each update in an individual Exchange, even if multiple updates are received in one batch. Only used by the Continuous Query Consumer. | true | boolean
| *pageSize* (consumer) | The page size. Only used by the Continuous Query Consumer. Default value notice: ContinuousQuery.DFLT_PAGE_SIZE | 1 | int
| *query* (consumer) | The Query to execute, only needed for operations that require it, and for the Continuous Query Consumer. |  | Query
| *remoteFilter* (consumer) | The remote filter, only used by the Continuous Query Consumer. |  | CacheEntryEventSerializableFilter
| *timeInterval* (consumer) | The time interval for the Continuous Query Consumer. Default value notice: ContinuousQuery.DFLT_TIME_INTERVAL | 0 | long
| *exceptionHandler* (consumer) | 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. |  | ExceptionHandler
| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
| *cachePeekMode* (producer) | The CachePeekMode, only needed for operations that require it (IgniteCacheOperation#SIZE). The value can be one of: ALL, NEAR, PRIMARY, BACKUP, ONHEAP, OFFHEAP | ALL | CachePeekMode
| *failIfInexistentCache* (producer) | Whether to fail the initialization if the cache doesn't exist. | false | boolean
| *lazyStartProducer* (producer) | 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. | false | boolean
| *operation* (producer) | The cache operation to invoke. Possible values: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR. The value can be one of: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR |  | IgniteCacheOperation
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|===
// endpoint options: END



=== Headers used

This endpoint uses the following headers:
[width="100%",cols="1,1,1,4",options="header"]
|=======================================================================
| Header name | Constant | Expected type | Description
| CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | String |
The cache key for the entry value in the message body.

| CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | Query |
The query to run (producer) when invoking the QUERY operation.

| CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation enum |
Allows you to dynamically change the cache operation to execute (producer).

| CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum |
Allows you to dynamically change the cache peek mode when running the SIZE operation.

| CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int (EventType constants) |
This header carries the received event type when using the continuous query consumer.

| CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | String |
This header carries the cache name for which a continuous query event was received (consumer).
It does not allow you to dynamically change the cache against which a producer operation is performed. Use EIPs for that (e.g. recipient list, dynamic router).

| CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | Object |
This header carries the old cache value when passed in the incoming cache event (consumer).
|=======================================================================

include::camel-spring-boot::page$ignite-starter.adoc[]
