Otis Gospodnetic Once someone put together the above parts we could take the next step - refactoring to have three flume maven modules: one module as a base, another module for solr dependencies, and yet another module for ES dependencies:
- Add a new flume module flume-ng-morphline-sink that's a copy n paste of flume-ng-morphline-solr-sink except that it has a minimum of dependencies: depends on kite-morphlines-core instead of kite-morphlines-all, and in particular doesn't contain tests and classes that depend on solr (or ES). E.g. it contains MorphlineSink.java and MorphlineInterceptor.java but not MorphlineSolrSink.java.
- Add flume-ng-morphline-elasticsearch-sink that depends on flume-ng-morphline-sink and also kite-morphlines-all-except-solr, plus kite-morphlines-elasticsearch. This means you can use class MorphlineSink from flume-ng-morphline-sink as is for ES.
- Change flume-ng-morphline-solr-sink to depend on flume-ng-morphline-sink and also kite-morphlines-all. Retain backwards compat by retaining existing classes in flume-ng-morphline-solr-sink, yet pointing them to extend or use relevant things in flume-ng-morphline-sink