InputSource vs. ItemProvider
Currently there are two "input" interfaces InputSource and ItemProvider. Often the ItemProvider is nothing more but a trivial wrapper around InputSource.
Wouldn't it make sense to remove the InputSource interface completely and refactor all existing InputSources to implement ItemProvider? Or is the distinction important?
I think conforming to single interface would remove boilerplate from typical configurations which currently use the InputSourceItemProvider and wouldn't hurt flexibility - custom ItemProviders can wrap the standard ones. Also there would be no need to wonder what makes one class ItemProvider and other InputSource - I guess the difference is not really clear.
Just to note, the situation is similar for ItemProcessor and OutputSource.