code: @Override
  	public HttpResponse execute(InvocationContext context, HttpRequestBase request) {
  		
  		HttpResponse response = null;
  		
  		try {
  			
  			 response = fetchResponse(context, request);
  		}
  		catch(RequestExecutionException ree) {
  			
  			executionHandler.onError(context, ree);
  		}
  		
  		if(response != null) {
  			
  			if(successful(response)) {
  				
  				executionHandler.onSuccess(context, response);	
  			}
  			else {
  				
  				executionHandler.onFailure(context, response);
  			}
  		}
  		
  		return response;
  	}
docs: <p>Executes an {@link HttpRequestBase} using the endpoint's {@link HttpClient} and handles the
  resulting {@link HttpResponse} using this executor's {@link ExecutionHandler}.</p>
  
  <p>See {@link #fetchResponse(InvocationContext, HttpRequestBase)}</p>
  
  <p>See {@link Is#successful(HttpResponse)}</p>
  
  @param context
  the {@link InvocationContext} used to discover information about the proxy invocation
  <br><br>
  @param request
  the {@link HttpRequestBase} to be executed using the endpoint's {@link HttpClient}
  <br><br>
  @throws InvocationException
  if the HTTP request responded with a failure status code or if request execution failed
  <br><br>
  @since 1.1.0