Repository: camel Updated Branches: refs/heads/camel-2.14.x a4fcbb625 -> 82d7c3a7c
CAMEL-8483 Removed readPreference from the list of invalid options for camel-mongodb tailable consumer. Thanks to Jörg Peschke (GitHub: jpeschke2608). Added unit test to his contribution. This closes #434. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/82d7c3a7 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/82d7c3a7 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/82d7c3a7 Branch: refs/heads/camel-2.14.x Commit: 82d7c3a7c8cc86c53e1b225ce5e89a139b23e039 Parents: a4fcbb6 Author: Raul Kripalani <ra...@apache.org> Authored: Fri Mar 13 17:32:26 2015 +0000 Committer: Raul Kripalani <ra...@apache.org> Committed: Fri Mar 13 17:35:47 2015 +0000 ---------------------------------------------------------------------- .../component/mongodb/MongoDbEndpoint.java | 4 +- .../MongoDbTailableCursorConsumerTest.java | 51 ++++++++++++-------- 2 files changed, 34 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/82d7c3a7/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java ---------------------------------------------------------------------- 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 398a5d6..d015955 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 @@ -133,8 +133,8 @@ public class MongoDbEndpoint extends DefaultEndpoint { } } else if (role == 'C') { if (!ObjectHelper.isEmpty(operation) || !ObjectHelper.isEmpty(writeConcern) || writeConcernRef != null - || readPreference != null || dynamicity || invokeGetLastError) { - throw new IllegalArgumentException("operation, writeConcern, writeConcernRef, readPreference, dynamicity, invokeGetLastError " + || dynamicity || invokeGetLastError) { + throw new IllegalArgumentException("operation, writeConcern, writeConcernRef, dynamicity, invokeGetLastError " + "options cannot appear on a consumer endpoint"); } http://git-wip-us.apache.org/repos/asf/camel/blob/82d7c3a7/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbTailableCursorConsumerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbTailableCursorConsumerTest.java b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbTailableCursorConsumerTest.java index fb65f22..cbcf2f5 100644 --- a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbTailableCursorConsumerTest.java +++ b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbTailableCursorConsumerTest.java @@ -36,26 +36,13 @@ public class MongoDbTailableCursorConsumerTest extends AbstractMongoDbTest { private String cappedTestCollectionName; @Test - public void testThousandRecords() throws Exception { - assertEquals(0, cappedTestCollection.count()); - MockEndpoint mock = getMockEndpoint("mock:test"); - mock.expectedMessageCount(1000); - - // create a capped collection with max = 1000 - cappedTestCollection = db.createCollection(cappedTestCollectionName, - BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()); - - for (int i = 0; i < 1000; i++) { - cappedTestCollection.insert(BasicDBObjectBuilder.start("increasing", i).add("string", "value" + i).get(), WriteConcern.SAFE); - } - assertEquals(1000, cappedTestCollection.count()); - - addTestRoutes(); - context.startRoute("tailableCursorConsumer1"); - Thread.sleep(1000); - mock.assertIsSatisfied(); - context.stopRoute("tailableCursorConsumer1"); + public void testThousandRecordsWithoutReadPreference() throws Exception { + testThousandRecordsWithRouteId("tailableCursorConsumer1"); + } + @Test + public void testThousandRecordsWithReadPreference() throws Exception { + testThousandRecordsWithRouteId("tailableCursorConsumer1.readPreference"); } @Test @@ -371,6 +358,27 @@ public class MongoDbTailableCursorConsumerTest extends AbstractMongoDbTest { mock.assertIsSatisfied(); mock.reset(); } + + private void testThousandRecordsWithRouteId(String routeId) throws Exception { + assertEquals(0, cappedTestCollection.count()); + MockEndpoint mock = getMockEndpoint("mock:test"); + mock.expectedMessageCount(1000); + + // create a capped collection with max = 1000 + cappedTestCollection = db.createCollection(cappedTestCollectionName, + BasicDBObjectBuilder.start().add("capped", true).add("size", 1000000000).add("max", 1000).get()); + + for (int i = 0; i < 1000; i++) { + cappedTestCollection.insert(BasicDBObjectBuilder.start("increasing", i).add("string", "value" + i).get(), WriteConcern.SAFE); + } + assertEquals(1000, cappedTestCollection.count()); + + addTestRoutes(); + context.startRoute(routeId); + Thread.sleep(1000); + mock.assertIsSatisfied(); + context.stopRoute(routeId); + } @Override public void doPostSetup() { @@ -403,6 +411,11 @@ public class MongoDbTailableCursorConsumerTest extends AbstractMongoDbTest { .autoStartup(false) .to("mock:test"); + from("mongodb:myDb?database={{mongodb.testDb}}&collection={{mongodb.cappedTestCollection}}&tailTrackIncreasingField=increasing&readPreference=primary") + .id("tailableCursorConsumer1.readPreference") + .autoStartup(false) + .to("mock:test"); + } }); }