[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] Getting remote call results as stream
|
Hi Torkild,
Torkild Ulvøy Resheim wrote:
Hi all,
Sorry if I'm asking the question in the wrong place. I was looking for
an ECF users list but could not find one.
I'm playing around with the ECF REST API for a generic build monitor
program I'm working on and found that the each query (to a Hudson
instance) produces results such as:
Mar 29, 2010 9:45:44 PM org.apache.commons.httpclient.HttpMethodBase
getResponseBody
WARNING: Going to buffer response body of large or unknown size. Using
getResponseBodyAsStream instead is recommended.
I could not find a way of enabling the suggested method and digging a
bit further I found that RestClientService.ivokeRemoteCall(...) does
not at all use getResponseAsStream(). So I'm wondering if it is at all
possible using the latest version of ECF?
Yes, it is possible. As you say, currently in this method:
org.eclipse.ecf.remoteservice.rest.client.RestClientService.invokeRemoteCall(IRemoteCall,
IRemoteCallable)
there is this code:
responseBody = httpMethod.getResponseBodyAsString();
And I guess the apache httpclient code produces the above warning when
callled.
This code (in the RestClientService impl) could be replaces with a call
to getResponseBodyAsStream(). But before doing so...I wanted to ask you
a question: Is the current code not working properly for you/your use
case?...or is this httpclient message just annoying?
Also...just so you and others are aware...if it is not working properly
for you then it is possible to change the existing impl by creating a
new provider...simply by subclassing RestClientService (and overriding
invokeRemoteCall)...as well as subclassing RestClientContainer (so as to
create your own RestClientService by overriding
RestClientContainer.createRemoteService) and then adding your own
containerFactory extension (to create your new type of
RestClientContainer). In this way, if you wish, you could customize the
behavior of this method.
But in any event, you are probably right that it would be better in
future versions of ECF to have the RestClientService.invokeRemoteService
method call httpMethod.getResponseAsStream() and explicitly process the
InputStream. I've created this bug to track this request:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=307453
Actually, I've already released a fix to HEAD for this, and it will be
in ECF 3.3/Helios release.
Thanks for reporting this issue.
Scott
Best regards,
Torkild U. Resheim.
------------------------------------------------------------------------
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev