1 /*******************************************************************************
2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ============LICENSE_END=========================================================
19 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21 *******************************************************************************/
22 package com.att.nsa.dmaap;
25 import javax.inject.Singleton;
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletResponse;
28 import javax.ws.rs.core.Context;
29 import javax.ws.rs.core.Response;
30 import javax.ws.rs.ext.ExceptionMapper;
31 import javax.ws.rs.ext.Provider;
33 import org.apache.http.HttpStatus;
34 import com.att.eelf.configuration.EELFLogger;
35 import com.att.eelf.configuration.EELFManager;
36 import org.springframework.beans.factory.annotation.Autowired;
38 import com.att.dmf.mr.CambriaApiException;
39 import com.att.dmf.mr.exception.DMaaPErrorMessages;
40 import com.att.dmf.mr.exception.DMaaPResponseCode;
41 import com.att.dmf.mr.exception.ErrorResponse;
44 * Exception Mapper class to handle
46 * @author rajashree.khare
51 public class DMaaPCambriaExceptionMapper implements ExceptionMapper<CambriaApiException>{
56 private ErrorResponse errRes;
63 private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(DMaaPCambriaExceptionMapper.class);
70 private DMaaPErrorMessages msgs;
73 * HttpServletRequest obj
76 private HttpServletRequest req;
79 * HttpServletResponse obj
82 private HttpServletResponse res;
85 * Contructor for DMaaPCambriaExceptionMapper
87 public DMaaPCambriaExceptionMapper() {
89 LOGGER.info("Cambria Exception Mapper Created..");
93 * The toResponse method is called when
94 * an exception of type CambriaApiException
95 * is thrown.This method will send a custom error
96 * response to the client.
99 public Response toResponse(CambriaApiException ex) {
101 LOGGER.info("Reached Cambria Exception Mapper..");
104 * Cambria Generic Exception
106 if(ex instanceof CambriaApiException)
109 errRes = ex.getErrRes();
112 Response response = Response.status(errRes.getHttpStatusCode()).header("exception",
113 errRes.getErrMapperStr()).build();
120 Response response = Response.status(ex.getStatus()).header("exception",
121 ex.getMessage()).build();
130 errRes = new ErrorResponse(HttpStatus.SC_NOT_FOUND,
131 DMaaPResponseCode.SERVER_UNAVAILABLE.getResponseCode(), msgs.getServerUnav());
133 Response response = Response.status(errRes.getHttpStatusCode()).header("exception",
134 errRes.getErrMapperStr()).build();