helun/Ektorp — pull request #180 by YannRobert (2014-05-09 14:47:26+00:00)
Title: Support for prodiving a HttpEntity to put an couchdb attachement

This change provides a new method
in order to be able to publish an attachment document to couchdb providing an HttpEntity

this is usefull when the application does not have an InputStream to provide to the existing methods.
but have an Object that is able to be written to an OutputStream

without relying on a temporary ByteArrayOutputStream buffer (or similar)

About implementation details :
The first commit is a refactoring : I extracted all the methods related to attachment management into a new class StdAttachmentCouchDbConnector, and a matching AttachmentCouchDbConnector interface.

I made CouchDbConnector extend AttachmentCouchDbConnector in order to save code duplication.
And StdCouchDbConnector is encapsulating the StdAttachmentCouchDbConnector instance.

Still, I am unsure whether or not CouchDbConnector should extend AttachmentCouchDbConnector, or if we would better have code duplication.
This is because there may be some kind of leaking abstraction exposing HttpEntity in the CouchDbConnector interface. Or maybe we should not care ?

I'll leave it up to you to comment on this.