Skip to content

Commit acef547

Browse files
Fix for #159
1 parent 4ef863c commit acef547

File tree

3 files changed

+57
-1
lines changed

3 files changed

+57
-1
lines changed

Diff for: src/main/java/org/elasticsearch/river/mongodb/MongoDBRiverDefinition.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public synchronized static MongoDBRiverDefinition parseSettings(String riverName
344344
ArrayList<Map<String, Object>> feeds = (ArrayList<Map<String, Object>>) mongoServersSettings;
345345
for (Map<String, Object> feed : feeds) {
346346
mongoHost = XContentMapValues.nodeStringValue(feed.get(HOST_FIELD), null);
347-
mongoPort = XContentMapValues.nodeIntegerValue(feed.get(PORT_FIELD), 0);
347+
mongoPort = XContentMapValues.nodeIntegerValue(feed.get(PORT_FIELD), DEFAULT_DB_PORT);
348348
logger.info("Server: " + mongoHost + " - " + mongoPort);
349349
try {
350350
mongoServers.add(new ServerAddress(mongoHost, mongoPort));

Diff for: src/test/java/org/elasticsearch/river/mongodb/MongoDBRiverDefinitionTest.java

+28
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
import org.testng.Assert;
1212
import org.testng.annotations.Test;
1313

14+
import com.mongodb.ServerAddress;
15+
1416
public class MongoDBRiverDefinitionTest {
17+
1518
@Test
1619
public void testLoadMongoDBRiverDefinition() {
1720
try {
@@ -39,4 +42,29 @@ public void testLoadMongoDBRiverDefinition() {
3942
Assert.fail("testLoadMongoDBRiverDefinition failed", t);
4043
}
4144
}
45+
46+
@Test
47+
public void testLoadMongoDBRiverDefinitionIssue159() {
48+
try {
49+
RiverName riverName = new RiverName("mongodb", "mongodb-" + System.currentTimeMillis());
50+
InputStream in = getClass().getResourceAsStream("/org/elasticsearch/river/mongodb/test-mongodb-river-definition-159.json");
51+
RiverSettings riverSettings = new RiverSettings(ImmutableSettings.settingsBuilder().build(), XContentHelper.convertToMap(
52+
Streams.copyToByteArray(in), false).v2());
53+
ScriptService scriptService = null;
54+
MongoDBRiverDefinition definition = MongoDBRiverDefinition.parseSettings(riverName.name(), "my-river-index", riverSettings,
55+
scriptService);
56+
Assert.assertNotNull(definition);
57+
58+
Assert.assertEquals(2, definition.getMongoServers().size());
59+
ServerAddress serverAddress = definition.getMongoServers().get(0);
60+
Assert.assertEquals(serverAddress.getHost(), "127.0.0.1");
61+
Assert.assertEquals(serverAddress.getPort(), MongoDBRiverDefinition.DEFAULT_DB_PORT);
62+
serverAddress = definition.getMongoServers().get(1);
63+
Assert.assertEquals(serverAddress.getHost(), "localhost");
64+
Assert.assertEquals(serverAddress.getPort(), MongoDBRiverDefinition.DEFAULT_DB_PORT);
65+
66+
} catch (Throwable t) {
67+
Assert.fail("testLoadMongoDBRiverDefinitionIssue159 failed", t);
68+
}
69+
}
4270
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"type": "mongodb",
3+
"mongodb": {
4+
"servers": [
5+
{host: "127.0.0.1"},
6+
{host: "localhost"}
7+
],
8+
"options": {
9+
"connect_timeout": 11000,
10+
"secondary_read_preference": true,
11+
"include_collection": "mycollection",
12+
"advanced_transformation": true,
13+
"parent_types": ["parent1", "parent2"]
14+
},
15+
"credentials": [{
16+
db: "admin",
17+
user: "admin",
18+
password: "secret"
19+
}],
20+
db: "mydatabase",
21+
collection: "mycollection",
22+
gridfs: "false"
23+
},
24+
index: {
25+
name: "myindex",
26+
throttle_size: 2000
27+
}
28+
}

0 commit comments

Comments
 (0)