Github user srdo commented on a diff in the pull request:
https://github.com/apache/storm/pull/2443#discussion_r155515549
--- Diff:
sql/storm-sql-external/storm-sql-mongodb/src/jvm/org/apache/storm/sql/mongodb/MongoDataSourcesProvider.java
---
@@ -49,53 +46,56 @@
*/
public class MongoDataSourcesProvider implements DataSourcesProvider {
- private static class MongoTridentDataSource implements
ISqlTridentDataSource {
+ private static class MongoStreamsDataSource implements
ISqlStreamsDataSource {
private final String url;
private final Properties props;
private final IOutputSerializer serializer;
- private MongoTridentDataSource(String url, Properties props,
IOutputSerializer serializer) {
+ private MongoStreamsDataSource(String url, Properties props,
IOutputSerializer serializer) {
this.url = url;
this.props = props;
this.serializer = serializer;
}
@Override
- public ITridentDataSource getProducer() {
+ public IRichSpout getProducer() {
throw new
UnsupportedOperationException(this.getClass().getName() + " doesn't provide
Producer");
}
@Override
- public SqlTridentConsumer getConsumer() {
+ public IRichBolt getConsumer() {
Preconditions.checkArgument(!props.isEmpty(), "Writable
MongoDB must contain collection config");
- String serField = props.getProperty("trident.ser.field",
"tridentSerField");
- MongoMapper mapper = new TridentMongoMapper(serField,
serializer);
- MongoState.Options options = new MongoState.Options()
- .withUrl(url)
-
.withCollectionName(props.getProperty("collection.name"))
- .withMapper(mapper);
+ String serField;
+ if (props.contains("ser.field")) {
+ serField = props.getProperty("ser.field");
+ } else if (props.contains("trident.ser.field")) {
--- End diff --
Nit: Are there constants somewhere that could be used instead of literals?
---