Catalog alignment
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / log / interceptors / ApacheClientLogRequestInterceptor.java
1 package org.openecomp.sdc.common.log.interceptors;
2
3 import org.apache.http.*;
4 import org.apache.http.protocol.HttpContext;
5 import org.onap.logging.filter.base.AbstractMetricLogFilter;
6 import org.onap.logging.ref.slf4j.ONAPLogConstants;
7 import org.openecomp.sdc.common.log.elements.LogFieldsMdcHandler;
8
9 import java.io.IOException;
10 import java.net.URI;
11
12 public class ApacheClientLogRequestInterceptor extends AbstractMetricLogFilter<HttpRequest, HttpResponse, HttpMessage> implements HttpRequestInterceptor {
13
14     private String previousInvocationId;
15
16     @Override
17     protected void addHeader(HttpMessage httpMessage, String s, String s1) {
18         httpMessage.addHeader(s, s1);
19     }
20
21     @Override
22     protected String getTargetServiceName(HttpRequest httpRequest) {
23         return httpRequest.getRequestLine().getUri();
24     }
25
26     @Override
27     protected String getServiceName(HttpRequest httpRequest) {
28         return URI.create(httpRequest.getRequestLine().getUri()).getPath();
29     }
30
31     @Override
32     protected int getHttpStatusCode(HttpResponse httpResponse) {
33         return httpResponse.getStatusLine().getStatusCode();
34     }
35
36     @Override
37     protected String getResponseCode(HttpResponse httpResponse) {
38         return String.valueOf(httpResponse.getStatusLine().getStatusCode());
39     }
40
41     @Override
42     protected String getTargetEntity(HttpRequest httpRequest) {
43         //fallback to default value that provided by AbstractMetricLogFilter
44         return null;
45     }
46
47     @Override
48     protected void additionalPre(HttpRequest httpRequest, HttpMessage httpMessage) {
49         String outgoingInvocationId = httpMessage.getFirstHeader(ONAPLogConstants.Headers.INVOCATION_ID).getValue();
50         LogFieldsMdcHandler.getInstance().setOutgoingInvocationId(outgoingInvocationId);
51         LogFieldsMdcHandler.getInstance().setKeyInvocationId(previousInvocationId);
52     }
53
54
55     @Override
56     public void process(HttpRequest httpRequest, HttpContext httpContext) throws HttpException, IOException {
57         previousInvocationId = LogFieldsMdcHandler.getInstance().getKeyInvocationId();
58         super.pre(httpRequest, httpRequest);
59     }
60 }