Github user justinleet commented on the issue:
https://github.com/apache/metron/pull/970
@nickwallen
Right now those interfaces are basically a marker interface that requires
everything that's needed for a complete DAO set. Prior to some of the Solr
refactorings, it existed as a single DAO to provide a complete set of
functionality to be implemented in order to allow an implementation to be
complete (for some definition of complete) and available to be swapped out via
configuration. Even with the refactoring into multiple interfaces, the
IndexDao and MetaAlertDao still exist to provide some definition of complete.
Getting rid of IndexDao in particular likely has potentially broader
implications because right now that interface ties together the various layers.
Making those changes in a complete and consistent manner is larger than
MetaAlertService, because the SearchServiceImpl and others take an IndexDao
(which could be a regular SolrDao or SolrMetaAlertDao, etc.) in order to allow
regular searches to have meta alert adjustments, e.g. massage the queries to
make sure metaalerts get searched and returned.
Another problem is there's refactoring to existing infrastructure and
patterns around the creation and composition of IndexDaos. In addition,
configuration changes will need to be made (and thought out) without that
interface existing. I'm not sure how large that refactoring is, but I think
changing and testing that is nontrivial enough that it should be a separate PR.
In particular, I'm worried about increasing the scope of an already large
and complicated PR and I'm disinclined to pull that task into this PR without
compelling reasons. If removing those interfaces is a necessity for moving
forward here, I'd like to see that as a PR against the parent feature branch
that we pull into this branch when it's done. I'm happy to help out using this
branch (or a derivative thereof) as a pilot / testing ground for that, but
again I think removing the basic DAO interface itself is outside the scope of
this.
I'd like to know what specific problems we're going to solve that merit
that level of change in this PR. IMO, those problems would need to be pretty
compelling (e.g. we find that reducing the duplication between ES and Solr
necessitates it) to increase the scope that way unless the changes end up being
substantially easier and less impactful than I'd expect.
---