This artifact contains a Spring Boot auto-configuration for the `MetadataStore`which can be used in various Spring Integration scenarios, like file polling, idempotent receiver, offset management etc. See Spring Integration “Reference Manual” for more information.
In addition to the standard Spring Boot configuration properties this module exposes a MetadataStoreProperties
with the metadata.store
prefix.
To auto-configure particular MetadataStore
you need to set metadata.store.type
and include the respective dependencies into the target app starter:
The RedisMetadataStore
requires regular Spring Boot auto-configuration for Spring Data Redis and minimal set of dependencies is like this:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Additional configuration property for RedisMetadataStore
is:
- metadata.store.redis.key
-
Redis key for metadata. (String, default:
MetaData
)
The MongoDbMetadataStore
requires regular Spring Boot auto-configuration for Spring Data MongoDB and minimal set of dependencies is like this:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
Additional configuration property for MongoDbMetadataStore
is:
- metadata.store.mongo-db.collection
-
MongoDB collection name for metadata. (String, default:
metadataStore
)
The HazelcastMetadataStore
requires regular Spring Boot auto-configuration for Hazelcast and minimal set of dependencies is like this:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-hazelcast</artifactId>
</dependency>
There are no additional configuration properties for the HazelcastMetadataStore
, however a MetadataStoreListener
bean can be configured in the application context to react to the MetadataStore
events.
The ZookeeperMetadataStore
requires this dependency for auto-configuration:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-zookeeper</artifactId>
</dependency>
The configuration properties for ZookeeperMetadataStore
are:
- metadata.store.zookeeper.connect-string
-
Zookeeper connect string in form HOST:PORT. (String, default:
127.0.0.1:2181
) - metadata.store.zookeeper.retry-interval
-
Retry interval for Zookeeper operations in milliseconds. (int, default:
1000
) - metadata.store.zookeeper.encoding
-
Encoding to use when storing data in Zookeeper. (Charset, default:
UTF-8
) - metadata.store.zookeeper.root
-
Root node - store entries are children of this node. (String, default:
/SpringIntegration-MetadataStore
)
In addition, for the ZookeeperMetadataStore
, a MetadataStoreListener
bean can be configured in the application context to react to the MetadataStore
events.
Also a CuratorFramework
bean can be provided to override a default auto-configured one.
The DynamoDbMetadataStore
requires regular Spring Cloud AWS auto-configuration for Spring Boot and minimal set of dependencies is like this:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-aws</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
</dependency>
Additional configuration properties for DynamoDbMetadataStore
are:
- $$metadata.store.dynamo-db.table
-
Table name for metadata. (String, default:
SpringIntegrationMetadataStore
) - $$metadata.store.dynamo-db.read-capacity
-
Read capacity on the table. (long, default:
1
) - $$metadata.store.dynamo-db.write-capacity
-
Write capacity on the table. (long, default:
1
) - $$metadata.store.dynamo-db.create-delay
-
Delay between create table retries. (int, default:
1
) - $$metadata.store.dynamo-db.create-retries
-
Retry number for create table request. (int, default:
25
) - $$metadata.store.dynamo-db.time-to-live
-
TTL for table entries. (Integer, default:
<none>
)
A default, auto-configured AmazonDynamoDBAsync
bean can be overridden in the target application.
The JdbcMetadataStore
requires regular Spring Boot auto-configuration for JDBC DataSource and minimal set of dependencies is like this:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
Plus vendor-specific JDBC driver artifact(s).
Additional configuration properties for JdbcMetadataStore
are:
- $$metadata.store.jdbc.table-prefix
-
Prefix for the custom table name. (String, default:
INT_
) - $$metadata.store.jdbc.region
-
Unique grouping identifier for messages persisted with this store. (String, default:
DEFAULT
)
When no any of those technologies dependencies are preset, an in-memory SimpleMetadataStore
is auto-configured.
The target application can also provide its own MetadataStore
bean to override any auto-configuration hooks.