This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 1b86ab0 CAMEL-16716: camel-mongodb - Fixed streamFilter option 1b86ab0 is described below commit 1b86ab00ddd9da4ac63da45157661ed201688b3c Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Jun 12 10:32:36 2021 +0200 CAMEL-16716: camel-mongodb - Fixed streamFilter option --- .../camel/catalog/docs/mongodb-component.adoc | 7 +- .../apache/camel/component/mongodb/mongodb.json | 14 +- .../src/main/docs/mongodb-component.adoc | 7 +- .../mongodb/MongoDbChangeStreamsConsumer.java | 5 +- .../camel/component/mongodb/MongoDbEndpoint.java | 16 +- .../MongoDbChangeStreamsConsumerIT.java | 11 +- .../dsl/MongoDbEndpointBuilderFactory.java | 279 --------------------- .../modules/ROOT/pages/mongodb-component.adoc | 7 +- .../ROOT/pages/camel-3x-upgrade-guide-3_11.adoc | 4 + 9 files changed, 32 insertions(+), 318 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mongodb-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mongodb-component.adoc index 2534a98..a58bb0d 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mongodb-component.adoc +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/mongodb-component.adoc @@ -994,18 +994,15 @@ It could be easily specified using XML DSL configuration: [source,xml] ------------- <route id="filterConsumer"> - <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets"/> + <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> <to uri="mock:test"/> - - <routeProperty key="streamFilter" value="{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> </route> ------------- Java configuration: [source,java] ------------- -from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets") - .routeProperty("streamFilter", "{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") +from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") .to("mock:test"); ------------- diff --git a/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json b/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json index 3b7ad38..72d3a24 100644 --- a/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json +++ b/components/camel-mongodb/src/generated/resources/org/apache/camel/component/mongodb/mongodb.json @@ -47,14 +47,14 @@ "readPreference": { "kind": "parameter", "displayName": "Read Preference", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "PRIMARY", "PRIMARY_PREFERRED", "SECONDARY", "SECONDARY_PREFERRED", "NEAREST" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PRIMARY", "description": "Configure how MongoDB clients route read operations to the members of a replica set. Possible values are PRIMA [...] "writeConcern": { "kind": "parameter", "displayName": "Write Concern", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ACKNOWLEDGED", "description": "Configure the connection bean with the level of acknowledgment requested from MongoDB for write operations to a [...] "writeResultAsHeader": { "kind": "parameter", "displayName": "Write Result As Header", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "In write operations, it determines whether instead of returning WriteResult as the body of the OUT message, we transfer the IN message to the OUT and attach the WriteResult as a header." }, - "streamFilter": { "kind": "parameter", "displayName": "Stream Filter", "group": "changeStream", "label": "changeStream", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filter condition for change streams consumer." }, + "streamFilter": { "kind": "parameter", "displayName": "Stream Filter", "group": "changeStream", "label": "consumer,changeStream", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filter condition for change streams consumer." }, "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "User password for mongodb connection" }, "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Username for mongodb connection" }, - "persistentId": { "kind": "parameter", "displayName": "Persistent Id", "group": "tail", "label": "tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "One tail tracking collection can host many trackers for several tailable consumers. To keep them separate, each tracker should have its own unique persistentId." }, - "persistentTailTracking": { "kind": "parameter", "displayName": "Persistent Tail Tracking", "group": "tail", "label": "tail", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable persistent tail tracking, which is a mechanism to keep track of the last consumed message across system restarts. The next time the system is up, the endpoint will recover the cursor from the point [...] - "tailTrackCollection": { "kind": "parameter", "displayName": "Tail Track Collection", "group": "tail", "label": "tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Collection where tail tracking information will be persisted. If not specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used by default." }, - "tailTrackDb": { "kind": "parameter", "displayName": "Tail Track Db", "group": "tail", "label": "tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Indicates what database the tail tracking mechanism will persist to. If not specified, the current database will be picked by default. Dynamicity will not be taken into account even if enabled, i.e. the tail tracking database will not vary p [...] - "tailTrackField": { "kind": "parameter", "displayName": "Tail Track Field", "group": "tail", "label": "tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Field where the last tracked value will be placed. If not specified, MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default." }, - "tailTrackIncreasingField": { "kind": "parameter", "displayName": "Tail Track Increasing Field", "group": "tail", "label": "tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Correlation field in the incoming record which is of increasing nature and will be used to position the tailing cursor every time it is generated. The cursor will be (re)created with a query of type: tailTrackIncre [...] + "persistentId": { "kind": "parameter", "displayName": "Persistent Id", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "One tail tracking collection can host many trackers for several tailable consumers. To keep them separate, each tracker should have its own unique persistentId." }, + "persistentTailTracking": { "kind": "parameter", "displayName": "Persistent Tail Tracking", "group": "tail", "label": "consumer,tail", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable persistent tail tracking, which is a mechanism to keep track of the last consumed message across system restarts. The next time the system is up, the endpoint will recover the cursor from [...] + "tailTrackCollection": { "kind": "parameter", "displayName": "Tail Track Collection", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Collection where tail tracking information will be persisted. If not specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used by default." }, + "tailTrackDb": { "kind": "parameter", "displayName": "Tail Track Db", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Indicates what database the tail tracking mechanism will persist to. If not specified, the current database will be picked by default. Dynamicity will not be taken into account even if enabled, i.e. the tail tracking database will n [...] + "tailTrackField": { "kind": "parameter", "displayName": "Tail Track Field", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Field where the last tracked value will be placed. If not specified, MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default." }, + "tailTrackIncreasingField": { "kind": "parameter", "displayName": "Tail Track Increasing Field", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Correlation field in the incoming record which is of increasing nature and will be used to position the tailing cursor every time it is generated. The cursor will be (re)created with a query of type: tailT [...] } } diff --git a/components/camel-mongodb/src/main/docs/mongodb-component.adoc b/components/camel-mongodb/src/main/docs/mongodb-component.adoc index 2534a98..a58bb0d 100644 --- a/components/camel-mongodb/src/main/docs/mongodb-component.adoc +++ b/components/camel-mongodb/src/main/docs/mongodb-component.adoc @@ -994,18 +994,15 @@ It could be easily specified using XML DSL configuration: [source,xml] ------------- <route id="filterConsumer"> - <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets"/> + <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> <to uri="mock:test"/> - - <routeProperty key="streamFilter" value="{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> </route> ------------- Java configuration: [source,java] ------------- -from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets") - .routeProperty("streamFilter", "{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") +from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") .to("mock:test"); ------------- diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbChangeStreamsConsumer.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbChangeStreamsConsumer.java index 62cf9bb..b76b8ef 100644 --- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbChangeStreamsConsumer.java +++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbChangeStreamsConsumer.java @@ -31,8 +31,6 @@ import static java.util.Collections.singletonList; */ public class MongoDbChangeStreamsConsumer extends DefaultConsumer { - private static final String STREAM_FILTER_PROPERTY = "streamFilter"; - private final MongoDbEndpoint endpoint; private ExecutorService executor; private MongoDbChangeStreamsThread changeStreamsThread; @@ -57,7 +55,8 @@ public class MongoDbChangeStreamsConsumer extends DefaultConsumer { @Override protected void doStart() throws Exception { super.doStart(); - String streamFilter = (String) getRoute().getProperties().get(STREAM_FILTER_PROPERTY); + + String streamFilter = endpoint.getStreamFilter(); List<BsonDocument> bsonFilter = null; if (ObjectHelper.isNotEmpty(streamFilter)) { bsonFilter = singletonList(BsonDocument.parse(streamFilter)); diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java index f895b43..f77f97d 100644 --- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java +++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java @@ -101,22 +101,20 @@ public class MongoDbEndpoint extends DefaultEndpoint { private String consumerType; @UriParam(label = "advanced", defaultValue = "1000", javaType = "java.time.Duration") private long cursorRegenerationDelay = 1000L; - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private String tailTrackIncreasingField; - - @UriParam(label = "changeStream") + @UriParam(label = "consumer,changeStream") private String streamFilter; - // persistent tail tracking - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private boolean persistentTailTracking; - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private String persistentId; - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private String tailTrackDb; - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private String tailTrackCollection; - @UriParam(label = "tail") + @UriParam(label = "consumer,tail") private String tailTrackField; @UriParam(label = "common") private MongoDbOutputType outputType; diff --git a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/integration/MongoDbChangeStreamsConsumerIT.java b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/integration/MongoDbChangeStreamsConsumerIT.java index 905738d..cac6e39 100644 --- a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/integration/MongoDbChangeStreamsConsumerIT.java +++ b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/integration/MongoDbChangeStreamsConsumerIT.java @@ -141,11 +141,12 @@ public class MongoDbChangeStreamsConsumerIT extends AbstractMongoDbITSupport { .autoStartup(false) .to("mock:test"); - from("mongodb:myDb?consumerType=changeStreams&database={{mongodb.testDb}}&collection={{mongodb.testCollection}}") - .routeProperty("streamFilter", "{'$match':{'$or':[{'fullDocument.string': 'value2'}]}}") - .id("filterConsumer") - .autoStartup(false) - .to("mock:test"); + from("mongodb:myDb?consumerType=changeStreams&database={{mongodb.testDb}}&collection={{mongodb.testCollection}}" + + + "&streamFilter={'$match':{'$or':[{'fullDocument.string': 'value2'}]}}") + .id("filterConsumer") + .autoStartup(false) + .to("mock:test"); } }); } diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MongoDbEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MongoDbEndpointBuilderFactory.java index 6138d02..1338d99 100644 --- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MongoDbEndpointBuilderFactory.java +++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MongoDbEndpointBuilderFactory.java @@ -967,20 +967,6 @@ public interface MongoDbEndpointBuilderFactory { return this; } /** - * Filter condition for change streams consumer. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: changeStream - * - * @param streamFilter the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder streamFilter(String streamFilter) { - doSetProperty("streamFilter", streamFilter); - return this; - } - /** * User password for mongodb connection. * * The option is a: <code>java.lang.String</code> type. @@ -1008,132 +994,6 @@ public interface MongoDbEndpointBuilderFactory { doSetProperty("username", username); return this; } - /** - * One tail tracking collection can host many trackers for several - * tailable consumers. To keep them separate, each tracker should have - * its own unique persistentId. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param persistentId the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder persistentId(String persistentId) { - doSetProperty("persistentId", persistentId); - return this; - } - /** - * Enable persistent tail tracking, which is a mechanism to keep track - * of the last consumed message across system restarts. The next time - * the system is up, the endpoint will recover the cursor from the point - * where it last stopped slurping records. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: tail - * - * @param persistentTailTracking the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder persistentTailTracking( - boolean persistentTailTracking) { - doSetProperty("persistentTailTracking", persistentTailTracking); - return this; - } - /** - * Enable persistent tail tracking, which is a mechanism to keep track - * of the last consumed message across system restarts. The next time - * the system is up, the endpoint will recover the cursor from the point - * where it last stopped slurping records. - * - * The option will be converted to a <code>boolean</code> - * type. - * - * Default: false - * Group: tail - * - * @param persistentTailTracking the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder persistentTailTracking( - String persistentTailTracking) { - doSetProperty("persistentTailTracking", persistentTailTracking); - return this; - } - /** - * Collection where tail tracking information will be persisted. If not - * specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used - * by default. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackCollection the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder tailTrackCollection( - String tailTrackCollection) { - doSetProperty("tailTrackCollection", tailTrackCollection); - return this; - } - /** - * Indicates what database the tail tracking mechanism will persist to. - * If not specified, the current database will be picked by default. - * Dynamicity will not be taken into account even if enabled, i.e. the - * tail tracking database will not vary past endpoint initialisation. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackDb the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder tailTrackDb(String tailTrackDb) { - doSetProperty("tailTrackDb", tailTrackDb); - return this; - } - /** - * Field where the last tracked value will be placed. If not specified, - * MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackField the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder tailTrackField( - String tailTrackField) { - doSetProperty("tailTrackField", tailTrackField); - return this; - } - /** - * Correlation field in the incoming record which is of increasing - * nature and will be used to position the tailing cursor every time it - * is generated. The cursor will be (re)created with a query of type: - * tailTrackIncreasingField greater than lastValue (possibly recovered - * from persistent tail tracking). Can be of type Integer, Date, String, - * etc. NOTE: No support for dot notation at the current time, so the - * field should be at the top level of the document. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackIncreasingField the value to set - * @return the dsl builder - */ - default MongoDbEndpointProducerBuilder tailTrackIncreasingField( - String tailTrackIncreasingField) { - doSetProperty("tailTrackIncreasingField", tailTrackIncreasingField); - return this; - } } /** @@ -1510,20 +1370,6 @@ public interface MongoDbEndpointBuilderFactory { return this; } /** - * Filter condition for change streams consumer. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: changeStream - * - * @param streamFilter the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder streamFilter(String streamFilter) { - doSetProperty("streamFilter", streamFilter); - return this; - } - /** * User password for mongodb connection. * * The option is a: <code>java.lang.String</code> type. @@ -1551,131 +1397,6 @@ public interface MongoDbEndpointBuilderFactory { doSetProperty("username", username); return this; } - /** - * One tail tracking collection can host many trackers for several - * tailable consumers. To keep them separate, each tracker should have - * its own unique persistentId. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param persistentId the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder persistentId(String persistentId) { - doSetProperty("persistentId", persistentId); - return this; - } - /** - * Enable persistent tail tracking, which is a mechanism to keep track - * of the last consumed message across system restarts. The next time - * the system is up, the endpoint will recover the cursor from the point - * where it last stopped slurping records. - * - * The option is a: <code>boolean</code> type. - * - * Default: false - * Group: tail - * - * @param persistentTailTracking the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder persistentTailTracking( - boolean persistentTailTracking) { - doSetProperty("persistentTailTracking", persistentTailTracking); - return this; - } - /** - * Enable persistent tail tracking, which is a mechanism to keep track - * of the last consumed message across system restarts. The next time - * the system is up, the endpoint will recover the cursor from the point - * where it last stopped slurping records. - * - * The option will be converted to a <code>boolean</code> - * type. - * - * Default: false - * Group: tail - * - * @param persistentTailTracking the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder persistentTailTracking( - String persistentTailTracking) { - doSetProperty("persistentTailTracking", persistentTailTracking); - return this; - } - /** - * Collection where tail tracking information will be persisted. If not - * specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used - * by default. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackCollection the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder tailTrackCollection( - String tailTrackCollection) { - doSetProperty("tailTrackCollection", tailTrackCollection); - return this; - } - /** - * Indicates what database the tail tracking mechanism will persist to. - * If not specified, the current database will be picked by default. - * Dynamicity will not be taken into account even if enabled, i.e. the - * tail tracking database will not vary past endpoint initialisation. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackDb the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder tailTrackDb(String tailTrackDb) { - doSetProperty("tailTrackDb", tailTrackDb); - return this; - } - /** - * Field where the last tracked value will be placed. If not specified, - * MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackField the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder tailTrackField(String tailTrackField) { - doSetProperty("tailTrackField", tailTrackField); - return this; - } - /** - * Correlation field in the incoming record which is of increasing - * nature and will be used to position the tailing cursor every time it - * is generated. The cursor will be (re)created with a query of type: - * tailTrackIncreasingField greater than lastValue (possibly recovered - * from persistent tail tracking). Can be of type Integer, Date, String, - * etc. NOTE: No support for dot notation at the current time, so the - * field should be at the top level of the document. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: tail - * - * @param tailTrackIncreasingField the value to set - * @return the dsl builder - */ - default MongoDbEndpointBuilder tailTrackIncreasingField( - String tailTrackIncreasingField) { - doSetProperty("tailTrackIncreasingField", tailTrackIncreasingField); - return this; - } } /** diff --git a/docs/components/modules/ROOT/pages/mongodb-component.adoc b/docs/components/modules/ROOT/pages/mongodb-component.adoc index 487783b..46e1a81 100644 --- a/docs/components/modules/ROOT/pages/mongodb-component.adoc +++ b/docs/components/modules/ROOT/pages/mongodb-component.adoc @@ -996,18 +996,15 @@ It could be easily specified using XML DSL configuration: [source,xml] ------------- <route id="filterConsumer"> - <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets"/> + <from uri="mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> <to uri="mock:test"/> - - <routeProperty key="streamFilter" value="{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}"/> </route> ------------- Java configuration: [source,java] ------------- -from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets") - .routeProperty("streamFilter", "{'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") +from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={'$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]}}") .to("mock:test"); ------------- diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_11.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_11.adoc index bf30a07..7544e8b 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_11.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_11.adoc @@ -27,6 +27,10 @@ This is from the `camel-main` module which is for running Camel standalone, but The `camel-apns` component has been removed as the APNS (Apple Push Notification Service) online service has been retired y Apple. +=== camel-mongodb + +The `streamFilter` option should now be configured as endpoint uri parameter, instead of a route property. + === camel-saxon The camel-saxon component no longer depends on camel-xslt-saxon.