1ddf268ea8bb511ec7e7da6f624fcf78183ca4c3
[so.git] / cxf-logging / src / main / java / org / onap / so / logging / cxf / interceptor / SOAPLoggingOutInterceptor.java
1 package org.onap.so.logging.cxf.interceptor;
2
3
4 import org.apache.cxf.binding.soap.SoapMessage;
5 import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
6 import org.apache.cxf.interceptor.Fault;
7 import org.apache.cxf.message.Message;
8 import org.apache.cxf.phase.Phase;
9 import org.onap.logging.ref.slf4j.ONAPLogConstants;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.slf4j.MDC;
13
14
15
16 public class SOAPLoggingOutInterceptor extends AbstractSoapInterceptor{
17
18     private static final String _500 = "500";
19
20     protected static Logger logger = LoggerFactory.getLogger(SOAPLoggingOutInterceptor.class);
21     
22
23     
24     public SOAPLoggingOutInterceptor() {
25         super(Phase.WRITE);
26     }
27
28     @Override
29     public void handleMessage(SoapMessage message) throws Fault {
30         try {
31             Exception ex = message.getContent(Exception.class);
32             if (ex == null) {
33                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.COMPLETED.toString());
34             }else{
35                 int responseCode = 0;
36                 responseCode = (int) message.get(Message.RESPONSE_CODE);
37                 if(responseCode != 0 )
38                     MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseCode));
39                 else
40                     MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, _500);
41                 
42                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.ERROR.toString());
43             }
44             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
45         } catch (Exception e) {
46             logger.warn("Error in incoming SOAP Message Inteceptor", e);
47         }
48     }
49 }