embulk-input-mongodb 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +97 -0
- data/README.md +33 -7
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/input/mongodb/MongodbInputPlugin.java +77 -4
- data/src/test/java/org/embulk/input/mongodb/TestMongodbInputPlugin.java +24 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 669b8b7010ff112526a166dd4eef85a50656e77f
|
|
4
|
+
data.tar.gz: adea0810c4f04ee5cec5ec8ba7414557a8f179a2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b8fad0bab206efc47861e6cb714c1def66cbfcb7440e042584daf454f84ef2673cdd2c8482bb3edfe3920d3bf82827c99c6cccb06d2890ea2a823be8122fffe8
|
|
7
|
+
data.tar.gz: 277157cc6382dbb98795f6e3e0ef3aaa14a31faec1f663069d9bc133f4b246a6cb73da39a2e5c5b7f80a36ae4ade7145cd01464b9c9feec896eb205dbec2ba7b
|
data/.travis.yml
CHANGED
|
@@ -26,7 +26,8 @@ cache:
|
|
|
26
26
|
before_install:
|
|
27
27
|
- cat /etc/hosts # optionally check the content *before*
|
|
28
28
|
- sudo hostname "$(hostname | cut -c1-63)"
|
|
29
|
-
- sed -e "s/^\\(127\\.0\\.0\\.1.*\\)/\\1 $(hostname | cut -c1-63)/" /etc/hosts
|
|
29
|
+
- sed -e "s/^\\(127\\.0\\.0\\.1.*\\)/\\1 $(hostname | cut -c1-63)/" /etc/hosts > /tmp/hosts
|
|
30
|
+
- sudo mv /tmp/hosts /etc/hosts
|
|
30
31
|
- cat /etc/hosts # optionally check the content *after*
|
|
31
32
|
|
|
32
33
|
install:
|
|
@@ -42,14 +43,14 @@ install:
|
|
|
42
43
|
|
|
43
44
|
before_script:
|
|
44
45
|
- echo "Wait mongodb wakeup"
|
|
45
|
-
- sleep
|
|
46
|
+
- sleep 15
|
|
46
47
|
- mkdir -p ./tmp
|
|
47
48
|
- date
|
|
48
49
|
|
|
49
50
|
script:
|
|
50
51
|
- ./gradlew check
|
|
51
52
|
- ./gradlew package
|
|
52
|
-
- mongoimport --db $MONGO_DATABASE --collection $MONGO_COLLECTION --type json --drop src/test/resources/my_collection.jsonl
|
|
53
|
+
- mongoimport --host 127.0.0.1 --db $MONGO_DATABASE --collection $MONGO_COLLECTION --type json --drop src/test/resources/my_collection.jsonl
|
|
53
54
|
- |
|
|
54
55
|
for target in basic full id_field_name
|
|
55
56
|
do
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
## [v0.5.0](https://github.com/hakobera/embulk-input-mongodb/tree/v0.5.0) (2016-08-23)
|
|
4
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.4.0...v0.5.0)
|
|
5
|
+
|
|
6
|
+
**Implemented enhancements:**
|
|
7
|
+
|
|
8
|
+
- Support separated URI params [\#24](https://github.com/hakobera/embulk-input-mongodb/pull/24) ([sakama](https://github.com/sakama))
|
|
9
|
+
|
|
10
|
+
**Merged pull requests:**
|
|
11
|
+
|
|
12
|
+
- Add --host option to mongoimport to prevent connection failure. [\#27](https://github.com/hakobera/embulk-input-mongodb/pull/27) ([hakobera](https://github.com/hakobera))
|
|
13
|
+
- Add document about batch\_size config [\#25](https://github.com/hakobera/embulk-input-mongodb/pull/25) ([hakobera](https://github.com/hakobera))
|
|
14
|
+
|
|
15
|
+
## [v0.4.0](https://github.com/hakobera/embulk-input-mongodb/tree/v0.4.0) (2016-07-08)
|
|
16
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.3.2...v0.4.0)
|
|
17
|
+
|
|
18
|
+
**Implemented enhancements:**
|
|
19
|
+
|
|
20
|
+
- Support incremental load [\#16](https://github.com/hakobera/embulk-input-mongodb/pull/16) ([sakama](https://github.com/sakama))
|
|
21
|
+
|
|
22
|
+
**Merged pull requests:**
|
|
23
|
+
|
|
24
|
+
- Bumpup version to 0.4.0 [\#23](https://github.com/hakobera/embulk-input-mongodb/pull/23) ([hakobera](https://github.com/hakobera))
|
|
25
|
+
|
|
26
|
+
## [v0.3.2](https://github.com/hakobera/embulk-input-mongodb/tree/v0.3.2) (2016-06-23)
|
|
27
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.3.1...v0.3.2)
|
|
28
|
+
|
|
29
|
+
**Implemented enhancements:**
|
|
30
|
+
|
|
31
|
+
- Support Symbol type [\#19](https://github.com/hakobera/embulk-input-mongodb/issues/19)
|
|
32
|
+
|
|
33
|
+
**Merged pull requests:**
|
|
34
|
+
|
|
35
|
+
- Bumpup version to 0.3.2 [\#22](https://github.com/hakobera/embulk-input-mongodb/pull/22) ([hakobera](https://github.com/hakobera))
|
|
36
|
+
- Release v0.3.1 [\#17](https://github.com/hakobera/embulk-input-mongodb/pull/17) ([hakobera](https://github.com/hakobera))
|
|
37
|
+
- Support Symbol type [\#21](https://github.com/hakobera/embulk-input-mongodb/pull/21) ([hakobera](https://github.com/hakobera))
|
|
38
|
+
|
|
39
|
+
## [v0.3.1](https://github.com/hakobera/embulk-input-mongodb/tree/v0.3.1) (2016-06-21)
|
|
40
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.3.0...v0.3.1)
|
|
41
|
+
|
|
42
|
+
**Implemented enhancements:**
|
|
43
|
+
|
|
44
|
+
- Support id\_field\_name config [\#15](https://github.com/hakobera/embulk-input-mongodb/pull/15) ([hakobera](https://github.com/hakobera))
|
|
45
|
+
|
|
46
|
+
**Closed issues:**
|
|
47
|
+
|
|
48
|
+
- readName can only be called when State is NAME, not when State is VALUE. [\#18](https://github.com/hakobera/embulk-input-mongodb/issues/18)
|
|
49
|
+
|
|
50
|
+
## [v0.3.0](https://github.com/hakobera/embulk-input-mongodb/tree/v0.3.0) (2016-06-13)
|
|
51
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.2.0...v0.3.0)
|
|
52
|
+
|
|
53
|
+
**Merged pull requests:**
|
|
54
|
+
|
|
55
|
+
- Add checkstyle plugin and format code [\#14](https://github.com/hakobera/embulk-input-mongodb/pull/14) ([sakama](https://github.com/sakama))
|
|
56
|
+
- Bumpup version to 0.3.0 [\#13](https://github.com/hakobera/embulk-input-mongodb/pull/13) ([hakobera](https://github.com/hakobera))
|
|
57
|
+
- Add unit test for existing code, \#9 and \#10 [\#11](https://github.com/hakobera/embulk-input-mongodb/pull/11) ([sakama](https://github.com/sakama))
|
|
58
|
+
- Change schema convert logic [\#10](https://github.com/hakobera/embulk-input-mongodb/pull/10) ([sakama](https://github.com/sakama))
|
|
59
|
+
|
|
60
|
+
## [v0.2.0](https://github.com/hakobera/embulk-input-mongodb/tree/v0.2.0) (2016-05-30)
|
|
61
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.1.2...v0.2.0)
|
|
62
|
+
|
|
63
|
+
**Implemented enhancements:**
|
|
64
|
+
|
|
65
|
+
- Support JSON type [\#6](https://github.com/hakobera/embulk-input-mongodb/issues/6)
|
|
66
|
+
|
|
67
|
+
**Merged pull requests:**
|
|
68
|
+
|
|
69
|
+
- Prepare release for v0.2.0 [\#12](https://github.com/hakobera/embulk-input-mongodb/pull/12) ([hakobera](https://github.com/hakobera))
|
|
70
|
+
- Add minimum limit to batch\_size and changed not to allow null [\#9](https://github.com/hakobera/embulk-input-mongodb/pull/9) ([sakama](https://github.com/sakama))
|
|
71
|
+
- Refactor some codes [\#8](https://github.com/hakobera/embulk-input-mongodb/pull/8) ([sakama](https://github.com/sakama))
|
|
72
|
+
- Fix example config on readme [\#5](https://github.com/hakobera/embulk-input-mongodb/pull/5) ([hakobera](https://github.com/hakobera))
|
|
73
|
+
- Support JSON type [\#7](https://github.com/hakobera/embulk-input-mongodb/pull/7) ([hakobera](https://github.com/hakobera))
|
|
74
|
+
|
|
75
|
+
## [v0.1.2](https://github.com/hakobera/embulk-input-mongodb/tree/v0.1.2) (2015-09-10)
|
|
76
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.1.1...v0.1.2)
|
|
77
|
+
|
|
78
|
+
**Merged pull requests:**
|
|
79
|
+
|
|
80
|
+
- Change build option for JDK7 [\#4](https://github.com/hakobera/embulk-input-mongodb/pull/4) ([hakobera](https://github.com/hakobera))
|
|
81
|
+
- Set homepage info [\#3](https://github.com/hakobera/embulk-input-mongodb/pull/3) ([hakobera](https://github.com/hakobera))
|
|
82
|
+
|
|
83
|
+
## [v0.1.1](https://github.com/hakobera/embulk-input-mongodb/tree/v0.1.1) (2015-09-06)
|
|
84
|
+
[Full Changelog](https://github.com/hakobera/embulk-input-mongodb/compare/v0.1.0...v0.1.1)
|
|
85
|
+
|
|
86
|
+
## [v0.1.0](https://github.com/hakobera/embulk-input-mongodb/tree/v0.1.0) (2015-09-06)
|
|
87
|
+
**Implemented enhancements:**
|
|
88
|
+
|
|
89
|
+
- Fix projection logic and better logging [\#2](https://github.com/hakobera/embulk-input-mongodb/pull/2) ([hakobera](https://github.com/hakobera))
|
|
90
|
+
|
|
91
|
+
**Merged pull requests:**
|
|
92
|
+
|
|
93
|
+
- Run test on travis [\#1](https://github.com/hakobera/embulk-input-mongodb/pull/1) ([hakobera](https://github.com/hakobera))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/README.md
CHANGED
|
@@ -14,7 +14,16 @@ This plugin only works with embulk >= 0.8.8.
|
|
|
14
14
|
|
|
15
15
|
## Configuration
|
|
16
16
|
|
|
17
|
-
-
|
|
17
|
+
- Connection parameters
|
|
18
|
+
One of them is required.
|
|
19
|
+
|
|
20
|
+
- use MongoDB connection string URI
|
|
21
|
+
- **uri**: [MongoDB connection string URI](http://docs.mongodb.org/manual/reference/connection-string/) (e.g. 'mongodb://localhost:27017/mydb') (string, required)
|
|
22
|
+
- use separated URI parameters
|
|
23
|
+
- **hosts**: list of hosts. `hosts` are pairs of host(string, required) and port(integer, optional, default: 27017)
|
|
24
|
+
- **user**: (string, optional)
|
|
25
|
+
- **password**: (string, optional)
|
|
26
|
+
- **database**: (string, required)
|
|
18
27
|
- **collection**: source collection name (string, required)
|
|
19
28
|
- **fields**: **(deprecated)** ~~hash records that has the following two fields (array, required)~~
|
|
20
29
|
~~- name: Name of the column~~
|
|
@@ -24,12 +33,13 @@ This plugin only works with embulk >= 0.8.8.
|
|
|
24
33
|
~~- double~~
|
|
25
34
|
~~- string~~
|
|
26
35
|
~~- timestamp~~
|
|
27
|
-
- **id_field_name**
|
|
28
|
-
- **query**:
|
|
36
|
+
- **id_field_name** Name of Object ID field name. Set if you want to change the default name `_id` (string, optional, default: "_id")
|
|
37
|
+
- **query**: A JSON document used for [querying](https://docs.mongodb.com/manual/tutorial/query-documents/) on the source collection. Documents are loaded from the colleciton if they match with this condition. (string, optional)
|
|
29
38
|
- **projection**: A JSON document used for [projection](https://docs.mongodb.com/manual/reference/operator/projection/positional/) on query results. Fields in a document are used only if they match with this condition. (string, optional)
|
|
30
|
-
- **sort**:
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
39
|
+
- **sort**: Ordering of results (string, optional)
|
|
40
|
+
- **batch_size**: Limits the number of objects returned in one [batch](http://api.mongodb.com/java/current/com/mongodb/DBCursor.html#batchSize-int-) (integer, optional, default: 10000)
|
|
41
|
+
- **incremental_field** List of field name (list, optional, can't use with sort option)
|
|
42
|
+
- **last_record** Last loaded record for incremental load (hash, optional)
|
|
33
43
|
- **stop_on_invalid_record** Stop bulk load transaction if a document includes invalid record (such as unsupported object type) (boolean, optional, default: false)
|
|
34
44
|
- **json_column_name**: column name used in outputs (string, optional, default: "json")
|
|
35
45
|
|
|
@@ -37,6 +47,8 @@ This plugin only works with embulk >= 0.8.8.
|
|
|
37
47
|
|
|
38
48
|
### Exporting all objects
|
|
39
49
|
|
|
50
|
+
#### Specify with MongoDB connection string URI.
|
|
51
|
+
|
|
40
52
|
```yaml
|
|
41
53
|
in:
|
|
42
54
|
type: mongodb
|
|
@@ -44,6 +56,20 @@ in:
|
|
|
44
56
|
collection: "my_collection"
|
|
45
57
|
```
|
|
46
58
|
|
|
59
|
+
#### Specify with separated URI parameters.
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
in:
|
|
63
|
+
type: mongodb
|
|
64
|
+
hosts:
|
|
65
|
+
- {host: localhost, port: 27017}
|
|
66
|
+
- {host: example.com, port: 27017}
|
|
67
|
+
user: myuser
|
|
68
|
+
password: mypassword
|
|
69
|
+
database: my_database
|
|
70
|
+
collection: "my_collection"
|
|
71
|
+
```
|
|
72
|
+
|
|
47
73
|
### Filtering documents by query and projection
|
|
48
74
|
|
|
49
75
|
```yaml
|
|
@@ -187,4 +213,4 @@ $ launchctl load ~/Library/LaunchAgents/environment.plist
|
|
|
187
213
|
$ launchctl getenv MONGO_URI //try to get value.
|
|
188
214
|
|
|
189
215
|
Then start your applications.
|
|
190
|
-
```
|
|
216
|
+
```
|
data/build.gradle
CHANGED
|
@@ -5,7 +5,9 @@ import com.google.common.base.Optional;
|
|
|
5
5
|
import com.google.common.base.Throwables;
|
|
6
6
|
import com.mongodb.MongoClient;
|
|
7
7
|
import com.mongodb.MongoClientURI;
|
|
8
|
+
import com.mongodb.MongoCredential;
|
|
8
9
|
import com.mongodb.MongoException;
|
|
10
|
+
import com.mongodb.ServerAddress;
|
|
9
11
|
import com.mongodb.client.MongoCollection;
|
|
10
12
|
import com.mongodb.client.MongoCursor;
|
|
11
13
|
import com.mongodb.client.MongoDatabase;
|
|
@@ -42,6 +44,8 @@ import javax.validation.constraints.Min;
|
|
|
42
44
|
|
|
43
45
|
import java.io.IOException;
|
|
44
46
|
import java.net.UnknownHostException;
|
|
47
|
+
import java.util.ArrayList;
|
|
48
|
+
import java.util.Arrays;
|
|
45
49
|
import java.util.HashMap;
|
|
46
50
|
import java.util.LinkedHashMap;
|
|
47
51
|
import java.util.List;
|
|
@@ -50,12 +54,40 @@ import java.util.Map;
|
|
|
50
54
|
public class MongodbInputPlugin
|
|
51
55
|
implements InputPlugin
|
|
52
56
|
{
|
|
57
|
+
public interface HostTask
|
|
58
|
+
extends Task
|
|
59
|
+
{
|
|
60
|
+
@Config("host")
|
|
61
|
+
String getHost();
|
|
62
|
+
|
|
63
|
+
@Config("port")
|
|
64
|
+
@ConfigDefault("27017")
|
|
65
|
+
int getPort();
|
|
66
|
+
}
|
|
67
|
+
|
|
53
68
|
public interface PluginTask
|
|
54
69
|
extends Task
|
|
55
70
|
{
|
|
56
71
|
// MongoDB connection string URI
|
|
57
72
|
@Config("uri")
|
|
58
|
-
|
|
73
|
+
@ConfigDefault("null")
|
|
74
|
+
Optional<String> getUri();
|
|
75
|
+
|
|
76
|
+
@Config("hosts")
|
|
77
|
+
@ConfigDefault("null")
|
|
78
|
+
Optional<List<HostTask>> getHosts();
|
|
79
|
+
|
|
80
|
+
@Config("user")
|
|
81
|
+
@ConfigDefault("null")
|
|
82
|
+
Optional<String> getUser();
|
|
83
|
+
|
|
84
|
+
@Config("password")
|
|
85
|
+
@ConfigDefault("null")
|
|
86
|
+
Optional<String> getPassword();
|
|
87
|
+
|
|
88
|
+
@Config("database")
|
|
89
|
+
@ConfigDefault("null")
|
|
90
|
+
Optional<String> getDatabase();
|
|
59
91
|
|
|
60
92
|
@Config("collection")
|
|
61
93
|
String getCollection();
|
|
@@ -261,15 +293,56 @@ public class MongodbInputPlugin
|
|
|
261
293
|
|
|
262
294
|
private MongoDatabase connect(final PluginTask task) throws UnknownHostException, MongoException
|
|
263
295
|
{
|
|
264
|
-
|
|
265
|
-
|
|
296
|
+
MongoClient mongoClient;
|
|
297
|
+
String database;
|
|
298
|
+
|
|
299
|
+
if (!task.getUri().isPresent() && !task.getHosts().isPresent()) {
|
|
300
|
+
throw new ConfigException("'uri' or 'hosts' is required");
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (task.getUri().isPresent()) {
|
|
304
|
+
MongoClientURI uri = new MongoClientURI(task.getUri().get());
|
|
305
|
+
database = uri.getDatabase();
|
|
306
|
+
mongoClient = new MongoClient(uri);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
mongoClient = createClientFromParams(task);
|
|
310
|
+
database = task.getDatabase().get();
|
|
311
|
+
}
|
|
266
312
|
|
|
267
|
-
MongoDatabase db = mongoClient.getDatabase(
|
|
313
|
+
MongoDatabase db = mongoClient.getDatabase(database);
|
|
268
314
|
// Get collection count for throw Exception
|
|
269
315
|
db.getCollection(task.getCollection()).count();
|
|
270
316
|
return db;
|
|
271
317
|
}
|
|
272
318
|
|
|
319
|
+
private MongoClient createClientFromParams(PluginTask task)
|
|
320
|
+
{
|
|
321
|
+
if (!task.getHosts().isPresent()) {
|
|
322
|
+
throw new ConfigException("'hosts' option's value is required but empty");
|
|
323
|
+
}
|
|
324
|
+
if (!task.getDatabase().isPresent()) {
|
|
325
|
+
throw new ConfigException("'database' option's value is required but empty");
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
List<ServerAddress> addresses = new ArrayList<>();
|
|
329
|
+
for (HostTask host : task.getHosts().get()) {
|
|
330
|
+
addresses.add(new ServerAddress(host.getHost(), host.getPort()));
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (task.getUser().isPresent()) {
|
|
334
|
+
MongoCredential credential = MongoCredential.createCredential(
|
|
335
|
+
task.getUser().get(),
|
|
336
|
+
task.getDatabase().get(),
|
|
337
|
+
task.getPassword().get().toCharArray()
|
|
338
|
+
);
|
|
339
|
+
return new MongoClient(addresses, Arrays.asList(credential));
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
return new MongoClient(addresses);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
273
346
|
private Map<String, String> buildIncrementalCondition(PluginTask task)
|
|
274
347
|
{
|
|
275
348
|
Map<String, String> result = new HashMap<>();
|
|
@@ -4,7 +4,9 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|
|
4
4
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
5
5
|
import com.google.common.base.Optional;
|
|
6
6
|
import com.google.common.collect.ImmutableList;
|
|
7
|
+
import com.google.common.collect.ImmutableMap;
|
|
7
8
|
import com.google.common.collect.Lists;
|
|
9
|
+
import com.mongodb.MongoClientURI;
|
|
8
10
|
import com.mongodb.client.MongoCollection;
|
|
9
11
|
import com.mongodb.client.MongoDatabase;
|
|
10
12
|
import org.bson.BsonBinary;
|
|
@@ -198,6 +200,28 @@ public class TestMongodbInputPlugin
|
|
|
198
200
|
assertValidRecords(getFieldSchema(), output);
|
|
199
201
|
}
|
|
200
202
|
|
|
203
|
+
@Test
|
|
204
|
+
public void testRunWithConnectionParams() throws Exception
|
|
205
|
+
{
|
|
206
|
+
MongoClientURI uri = new MongoClientURI(MONGO_URI);
|
|
207
|
+
String host = uri.getHosts().get(0);
|
|
208
|
+
Integer port = (host.split(":")[1] != null) ? Integer.valueOf(host.split(":")[1]) : 27017;
|
|
209
|
+
ConfigSource config = Exec.newConfigSource()
|
|
210
|
+
.set("hosts", Arrays.asList(ImmutableMap.of("host", host.split(":")[0], "port", port)))
|
|
211
|
+
.set("user", uri.getUsername())
|
|
212
|
+
.set("password", uri.getPassword())
|
|
213
|
+
.set("database", uri.getDatabase())
|
|
214
|
+
.set("collection", MONGO_COLLECTION);
|
|
215
|
+
PluginTask task = config.loadConfig(PluginTask.class);
|
|
216
|
+
|
|
217
|
+
dropCollection(task, MONGO_COLLECTION);
|
|
218
|
+
createCollection(task, MONGO_COLLECTION);
|
|
219
|
+
insertDocument(task, createValidDocuments());
|
|
220
|
+
|
|
221
|
+
plugin.transaction(config, new Control());
|
|
222
|
+
assertValidRecords(getFieldSchema(), output);
|
|
223
|
+
}
|
|
224
|
+
|
|
201
225
|
@Test
|
|
202
226
|
public void testRunWithIncrementalLoad() throws Exception
|
|
203
227
|
{
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: embulk-input-mongodb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kazuyuki Honda
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-08-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -47,6 +47,7 @@ extra_rdoc_files: []
|
|
|
47
47
|
files:
|
|
48
48
|
- .gitignore
|
|
49
49
|
- .travis.yml
|
|
50
|
+
- CHANGELOG.md
|
|
50
51
|
- LICENSE.txt
|
|
51
52
|
- README.md
|
|
52
53
|
- build.gradle
|
|
@@ -67,7 +68,7 @@ files:
|
|
|
67
68
|
- src/test/resources/id_field_name.yml
|
|
68
69
|
- src/test/resources/id_field_name_expected.csv
|
|
69
70
|
- src/test/resources/my_collection.jsonl
|
|
70
|
-
- classpath/embulk-input-mongodb-0.
|
|
71
|
+
- classpath/embulk-input-mongodb-0.5.0.jar
|
|
71
72
|
- classpath/mongo-java-driver-3.2.2.jar
|
|
72
73
|
homepage: https://github.com/hakobera/embulk-input-mongodb
|
|
73
74
|
licenses:
|