Fix OSGi wiring issues
[ccsdk/features.git] / blueprints-processor / adaptors / rest-adaptor-provider / src / main / java / org / onap / ccsdk / config / rest / adaptor / utils / LoggingRequestInterceptor.java
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  * \r
5  * Licensed under the Apache License, Version 2.0 (the "License");\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  * \r
9  * http://www.apache.org/licenses/LICENSE-2.0\r
10  * \r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.config.rest.adaptor.utils;\r
19 \r
20 import java.io.BufferedReader;\r
21 import java.io.IOException;\r
22 import java.io.InputStreamReader;\r
23 import org.springframework.http.HttpRequest;\r
24 import org.springframework.http.client.ClientHttpRequestExecution;\r
25 import org.springframework.http.client.ClientHttpRequestInterceptor;\r
26 import org.springframework.http.client.ClientHttpResponse;\r
27 import com.att.eelf.configuration.EELFLogger;\r
28 import com.att.eelf.configuration.EELFManager;\r
29 \r
30 public class LoggingRequestInterceptor implements ClientHttpRequestInterceptor {\r
31 \r
32     private static EELFLogger logger = EELFManager.getInstance().getLogger(LoggingRequestInterceptor.class);\r
33 \r
34     @Override\r
35     public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)\r
36             throws IOException {\r
37         traceRequest(request, body);\r
38         ClientHttpResponse response = execution.execute(request, body);\r
39         traceResponse(response);\r
40         return response;\r
41     }\r
42 \r
43     @SuppressWarnings({"squid:S2629", "squid:S3457"})\r
44     private void traceRequest(HttpRequest request, byte[] body) throws IOException {\r
45         logger.info("===========================request begin================================================");\r
46         logger.info("URI         : {}", request.getURI());\r
47         logger.info("Method      : {}", request.getMethod());\r
48         logger.info("Headers     : {}", request.getHeaders());\r
49         logger.info("Request body: {}", new String(body, "UTF-8"));\r
50         logger.debug("==========================request end================================================");\r
51     }\r
52 \r
53     @SuppressWarnings({"squid:S2629", "squid:S3457"})\r
54     private void traceResponse(ClientHttpResponse response) throws IOException {\r
55         StringBuilder inputStringBuilder = new StringBuilder();\r
56         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody(), "UTF-8"));\r
57         String line = bufferedReader.readLine();\r
58         while (line != null) {\r
59             inputStringBuilder.append(line);\r
60             inputStringBuilder.append('\n');\r
61             line = bufferedReader.readLine();\r
62         }\r
63         logger.info("============================response begin==========================================");\r
64         logger.info("Status code  : {}", response.getStatusCode());\r
65         logger.info("Status text  : {}", response.getStatusText());\r
66         logger.info("Headers      : {}", response.getHeaders());\r
67         logger.debug("Response body: {}", inputStringBuilder.toString());\r
68         logger.debug("=======================response end=================================================");\r
69     }\r
70 \r
71 }\r