Here's the patch I've worked up so far.
Dennis GoveJoel Bernstein I'm particularly interested in any comments you have.
I did one gratuitous thing, in StreamingTest moved all of the del :/commits to the beginning of the methods, I think it's fragile to depend on old tests cleaning themselves up, I vastly prefer the test that needs things to be in some state to insure that state.
I also noticed that the tests here rarely close their CloudSolrStreams, is that intentional? Or harmless?
Anyway, there are still some nocommits in there, and I'm pretty hazy on whether the changes I made to streaming expressions were the right things. All the tests pass so at least that's a Good Thing.
Is there any good reason we don't have access to commons.lang? In particular StringUtils.join would be useful in one instance. It's easy enough to write a function, but I bet the one in commons is more efficient.
So I did comment out the c'tors that take a Map completely and chased down all the places I found that referenced that format. I then un-commented them for back-compat, but I'm pretty sure I found all the places in Solr code that uses those c'tors and then replaced them.
You'll note that tests in StreamingTest randomly chooses one c'tor or the other just to exercise both. Of course if we really deprecate the old version that'll have to be changed, but that's trivial.
Let me know what you think. I'll be away for a couple of days so if I'm kind of silent you'll know why.