INT-4570: Add MessageCollectionCallback for Mongo (#2675)
* INT-4570: Add MessageCollectionCallback for Mongo JIRA: https://jira.spring.io/browse/INT-4570 The `MongoDbOutboundGateway` is intended to be used with the `requestMessage` context, however using a plain `CollectionCallback` we don't have access to the `requestMessage` * Deprecate `CollectionCallback` usage in favor of newly introduced `MessageCollectionCallback` and `message-collection-callback` for XML **Cherry-pick to 5.0.x** * * Remove `message-collection-callback` in favor of `MessageCollectionCallback<T> extends CollectionCallback<T>` * * Rename a new setter to `setMessageCollectionCallback()` to avoid reflection collision
This commit is contained in:
committed by
Gary Russell
parent
0d09bdccd4
commit
1943c15afe
@@ -224,7 +224,8 @@ The following example shows how to configure a MongoDB inbound channel adapter:
|
||||
As the preceding configuration shows, you configure a MongoDb inbound channel adapter by using the `inbound-channel-adapter` element and providing values for various attributes, such as:
|
||||
|
||||
* `query`: A JSON query (see http://www.mongodb.org/display/DOCS/Querying[MongoDB Querying])
|
||||
* `query-expression`: A SpEL expression that is evaluated to a JSON query string (as the `query` attribute above) or to an instance of `o.s.data.mongodb.core.query.Query`. Mutually exclusive with the `query` attribute.
|
||||
* `query-expression`: A SpEL expression that is evaluated to a JSON query string (as the `query` attribute above) or to an instance of `o.s.data.mongodb.core.query.Query`.
|
||||
Mutually exclusive with the `query` attribute.
|
||||
* `entity-class`: The type of the payload object. If not supplied, a `com.mongodb.DBObject` is returned.
|
||||
* `collection-name` or `collection-name-expression`: Identifies the name of the MongoDB collection to use.
|
||||
* `mongodb-factory`: Reference to an instance of `o.s.data.mongodb.MongoDbFactory`
|
||||
@@ -364,6 +365,8 @@ If this attribute is not provided, the default value is `org.bson.Document`.
|
||||
* `query` or `query-expression`: Specifies the MongoDB query.
|
||||
See the http://www.mongodb.org/display/DOCS/Querying[MongoDB documentation] for more query samples.
|
||||
* `collection-callback`: Reference to an instance of `org.springframework.data.mongodb.core.CollectionCallback`.
|
||||
Preferable an instance of `org.springframework.integration.mongodb.outbound.MessageCollectionCallback` since 5.0.11 with the request message context.
|
||||
See its Javadocs for more information.
|
||||
NOTE: You can not have both `collection-callback` and any of the query attributes.
|
||||
|
||||
==== Configuring with Java Configuration
|
||||
@@ -448,7 +451,7 @@ public class MongoDbJavaApplication {
|
||||
----
|
||||
====
|
||||
|
||||
As an alternate to the `query` and `query-expression` properties, you can specify other database operations by using the `collectionCallback` property.
|
||||
As an alternate to the `query` and `query-expression` properties, you can specify other database operations by using the `collectionCallback` property as a reference to the `MessageCollectionCallback` functional interface implementation.
|
||||
The following example specifies a count operation:
|
||||
|
||||
====
|
||||
@@ -456,7 +459,7 @@ The following example specifies a count operation:
|
||||
----
|
||||
private MongoDbOutboundGatewaySpec collectionCallbackOutboundGateway() {
|
||||
return MongoDb.outboundGateway(this.mongoDbFactory, this.mongoConverter)
|
||||
.collectionCallback(MongoCollection::count)
|
||||
.collectionCallback((collection, requestMessage) -> collection.count())
|
||||
.collectionName("myCollection");
|
||||
}
|
||||
----
|
||||
|
||||
Reference in New Issue
Block a user