Thanks Jerome. ---------------------------------------- > From: [EMAIL PROTECTED] > To: [email protected] > Date: Wed, 25 Jun 2008 10:08:39 +0200 > Subject: RE: Setting HttpClient IOException Retry > > > Hi Sanjay, > > This is indeed a better way to go for this feature until we add support for > this at the Restlet API directly. > > I've just added a "retryHandler" parameter to the Apache HTTP client > connector that can contain a class name to instantiate and set as the retry > handler. It will be automatically detected and used by the client. > > Changes checked in SVN trunk. Let me know if it works for you. > > Best regards, > Jerome > > > -----Message d'origine----- > De : Sanjay Acharya [mailto:[EMAIL PROTECTED] > Envoyé : mardi 24 juin 2008 23:47 > À : [email protected] > Objet : RE: Setting HttpClient IOException Retry > > > Another solution to make this work: > > client.getContext().getParameters().add(HttpMethodParams.RETRY_HANDLER, > "CustomHttpClientConverter"); > > with CustomHttpClientConverter being: > > class CustomHttpClientConverter extends HttpClientConverter { > > public CustomHttpClientConverter(Context context) { > super(context); > } > > @Override public HttpClientCall toSpecific(HttpClientHelper client, > Request request) { > HttpClientCall clientCall = super.toSpecific(client, request); > if (clientCall instanceof HttpMethodCall) { > HttpMethodCall httpMethodCall = (HttpMethodCall) clientCall; > > httpMethodCall.getHttpMethod().getParams().setParameter(HttpMethodParams.RET > RY_HANDLER, > new CustomRetryHandler()); > } > > return clientCall; > } > } > > I could use either of the two implementations. However, from a compatibility > perspective moving forward with versions of the Rest Framework, I am leaning > toward the above solution. Any suggestions with a different solution or > preferred direction would be highly appreciated. > > Thanks, > Sanjay > ---------------------------------------- >> From: [EMAIL PROTECTED] >> To: [email protected] >> Date: Tue, 24 Jun 2008 18:17:50 +0000 >> Subject: RE: Setting HttpClient IOException Retry >> >> >> I have a solution that sort of works but I am not sure that is the best > way of accomplishing this. Hoping this to be a simple work around until the > issue 356 is resolved. Not very clean and would like any other suggestions > if possible: >> >> A Custom Engine: >> public class CustomEngine extends com.noelios.restlet.Engine { >> >> public CustomEngine() { >> super(); >> } >> >> /** >> * If the Helper is an instance of HttpClientHelper, then override >> * to provide our custom helper. Otherwise, return the constructed > helper. >> * >> * @return a Helper >> */ >> @Override public Helper createHelper(Client client) { >> >> Helper helper = super.createHelper(client); >> if (helper instanceof HttpClientHelper) { >> >> // override to provide Custom Helper >> return new ExtendedHttpClientHelper(client); >> } >> >> return helper; >> } >> } >> >> // A Custom Helper >> public class ExtendedHttpClientHelper extends HttpClientHelper { >> >> public ExtendedHttpClientHelper(Client client) { >> super(client); >> } >> >> /** >> * Populate Created Request with CustomRetryHandler >> */ >> @Override public HttpClientCall create(Request request) { >> HttpMethodCall httpMethodCall = (HttpMethodCall) > super.create(request); >> >> > httpMethodCall.getHttpMethod().getParams().setParameter(HttpMethodParams.RET > RY_HANDLER, >> new CustomRetryHandler()); >> >> return httpMethodCall; >> } >> } >> >> public class CustomRetryHandler implements HttpMethodRetryHandler { >> private int retryCount; >> >> private static int MAX_TRIES = 2; >> >> public boolean retryMethod(HttpMethod arg0, IOException arg1, int arg2) > { >> >> if (retryCount < MAX_TRIES) { >> retryCount++; >> return true; >> } >> >> return false; >> } >> } >> >> An then in my code, I setup the custom engine using: >> >> org.restlet.util.Engine.setInstance(new CustomEngine()); >> >> Any suggestions for Betterment would be greately appreciated. >> ---------------------------------------- >>> From: [EMAIL PROTECTED] >>> To: [email protected] >>> Date: Tue, 24 Jun 2008 16:47:27 +0000 >>> Subject: RE: Setting HttpClient IOException Retry >>> >>> >>> Additionally, I believe there is an open issue related to this > configuration, http://restlet.tigris.org/issues/show_bug.cgi?id=356 >>> >>> Any suggestions to how this parameter might be easily configured while > the issue is addressed would be welcomed. >>> >>> Thanks again, >>> Sanjay >>> ---------------------------------------- >>>> From: [EMAIL PROTECTED] >>>> To: [email protected] >>>> Date: Tue, 24 Jun 2008 16:18:20 +0000 >>>> Subject: Setting HttpClient IOException Retry >>>> >>>> >>>> Hi, >>>> >>>> I am hoping to be able to configure the org.apache.commons.HttpClient's > method retry handler to change the max number of times the HttpClient will > attempt to retry connecting when there is an IOException.The Restlet > HttpClientHelper, I believe does not support this configuration to the > underlying HttpClient. Any suggestions on the best way to set the Retry > Handler without explicit casting of Helper and getting the HttpClient there > in? >>>> >>>> Additionally, any suggestions on how to simulate an IOException from a > Restlet so that the retry can be validated would be appreciated. Is there a > Status that I can set that will result in an IOException in the HttpClient? >>>> >>>> component.getDefaultHost().attach(new Restlet(component.getContext()){ >>>> @Override public void handle(Request request, Response > response){ >>>> >>>> response.setEntity(new StringRepresentation("Hello World")); >>>> >>>> } >>>> }); >>>> >>>> Thanks much. >>>> Sanjay >>>> _________________________________________________________________ >>>> Need to know now? Get instant answers with Windows Live Messenger. >>>> > http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL > _Refresh_messenger_062008 >>> >>> _________________________________________________________________ >>> The i’m Talkathon starts 6/24/08. For now, give amongst yourselves. >>> http://www.imtalkathon.com?source=TXT_EML_WLH_LearnMore_GiveAmongst >> >> _________________________________________________________________ >> Introducing Live Search cashback . It's search that pays you back! >> > http://search.live.com/cashback/?&pkw=form=MIJAAF/publ=HMTGL/crea=introsrchc > ashback > > _________________________________________________________________ > Need to know now? Get instant answers with Windows Live Messenger. > http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL > _Refresh_messenger_062008= >
_________________________________________________________________ The i’m Talkathon starts 6/24/08. For now, give amongst yourselves. http://www.imtalkathon.com?source=TXT_EML_WLH_LearnMore_GiveAmongst

