: I just posted a new patch on SOLR-104. I think it addresses most of : the issues we have discussed. (Its a little difficult to know as it : has been somewhat circular) I was going to reply to your points one : by one, but i think that would just make the discussion more confusing : then it already is!
Ryan: this patch truely does kick ass ... we can probably simplify a lot of the Legacy stuff by leveraging your new StandardRequestBuilder -- but that can be done later. i'm stil really not liking the way there is a single SolrRequestBuilder with a big complicated build method that "guesses" what streams the user wants. i really feel strongly that even if all the parsing logic is in the core, even if it's all in one class: a piece of the path should be used to determine where the streams come from. consider the example you've got on your test.html page: "POST - with query string" ... that doesn't obey the typical semantics of a POST with a query string ... if you used the methods on HttpServletRequest to get the params it would give you all the params it found both in the query strings *and* in the post body. This is a great example of what i was talking about: if i have no intention of sending a stream, it should be possible for me to send params in both the URL and in the POST body -- but in other cases i should be able to POST some raw XML and still have params in the URL. arguable: we could look at the Content-Type of the request and make the assumption based on that -- but as i mentioned before, people don't allways set the Content-TYpe perfectly. if we used a URL fragment to determine where the streams should come from we could be a lot more confident that we know where the stream should come from -- and let the RequestHandler decide if it wants to trust the ContentType the multipart/mixed example i gave previously is another example -- your code here assumes that should be given to the RequsetHandler as multiple streams -- which is a great assumption to make for fileuploads, but which gives me no way to POST multipart/mixed mime data that i want given to the RequestHandler as a single ContentStream (so it can have access to all of hte mime headers for each part) -Hoss