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.RETRY_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=introsrchcashback

Reply via email to