package com.github.lpezet.antiope.metrics.aws; import org.apache.http.client.HttpClient; import com.github.lpezet.antiope.APIClientException; import com.github.lpezet.antiope.APIServiceException; import com.github.lpezet.antiope.be.APIConfiguration; import com.github.lpezet.antiope.be.BasicAPICredentials; import com.github.lpezet.antiope.bo.AdvancedAPIClient; import com.github.lpezet.antiope.dao.DefaultHttpRequestFactory; import com.github.lpezet.antiope.dao.DefaultRequest; import com.github.lpezet.antiope.dao.ExecutionContext; import com.github.lpezet.antiope.dao.HttpMethodName; import com.github.lpezet.antiope.dao.HttpResponseHandler; import com.github.lpezet.antiope.dao.Request; import com.github.lpezet.antiope.dao.Response; import com.github.lpezet.antiope.metrics.APIRequestMetrics; import com.github.lpezet.antiope.metrics.IMetrics; import com.github.lpezet.antiope.metrics.aws.Sample.MyRequest; import com.github.lpezet.antiope.transform.Unmarshaller; class SimpleClient extends AdvancedAPIClient { public SimpleClient(APIConfiguration pConfiguration, HttpClient pHttpClient, int pPort) { super(pConfiguration, new BasicAPICredentials("", ""), pHttpClient); setEndpoint("http://localhost:" + pPort); setHttpRequestFactory(new DefaultHttpRequestFactory()); } public String getIt() { MyRequest oMyRequest = new MyRequest(); ExecutionContext oContext = createExecutionContext(oMyRequest); IMetrics oMetrics = oContext.getMetrics(); Request<MyRequest> oRequest = null; Response<String> oResponse = null; oMetrics.startEvent(APIRequestMetrics.ClientExecuteTime); try { oMetrics.startEvent(APIRequestMetrics.RequestMarshallTime); try { oRequest = new DefaultRequest(oMyRequest, "GetIt"); oRequest.setHttpMethod(HttpMethodName.GET); oRequest.setResourcePath("/json/"); oRequest.setMetrics(oMetrics); } finally { oMetrics.endEvent(APIRequestMetrics.RequestMarshallTime); } Response<String> oActualResponse = invoke(oRequest, null, oContext); return oActualResponse.getAPIResponse(); } catch (APIServiceException e) { throw e; } catch (Exception e) { throw new APIClientException(e); } finally { endClientExecution(oMetrics, oRequest, oResponse); } } @Override protected HttpResponseHandler createResponseHandler(ExecutionContext pContext, Unmarshaller pUnmarshaller) { return new SimpleResponseHandler(); } }