diff options
Diffstat (limited to 'CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions')
3 files changed, 190 insertions, 0 deletions
diff --git a/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ApiError.java b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ApiError.java new file mode 100644 index 0000000..07fadcc --- /dev/null +++ b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ApiError.java @@ -0,0 +1,65 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +============LICENSE_END============================================ +*/ +package org.onap.appc.cdt.service.exceptions; + +import org.springframework.http.HttpStatus; + +/** + * Created by Amaresh Kumar on 09/May/2018. + */ +public class ApiError { + + private HttpStatus Status; + private String message; + private String detailedMessage; + + + public ApiError(HttpStatus status, String detailedMessage, String message) { + Status = status; + this.detailedMessage = detailedMessage; + this.message = message; + } + + public HttpStatus getStatus() { + return Status; + } + + public void setStatus(HttpStatus status) { + Status = status; + } + + public String getDetailedMessage() { + return detailedMessage; + } + + public void setDetailedMessage(String detailedMessage) { + this.detailedMessage = detailedMessage; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/GlobalExceptionHandler.java b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/GlobalExceptionHandler.java new file mode 100644 index 0000000..3995860 --- /dev/null +++ b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/GlobalExceptionHandler.java @@ -0,0 +1,74 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +============LICENSE_END============================================ +*/ +package org.onap.appc.cdt.service.exceptions; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.client.ResourceAccessException; +import org.springframework.web.context.request.WebRequest; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.net.UnknownHostException; + +/** + * Created by Amaresh Kumar on 09/May/2018. + */ +@ControllerAdvice +public class GlobalExceptionHandler { + private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + @ExceptionHandler(UnknownHostException.class) + public String handleSQLException(HttpServletRequest request, Exception ex) { + logger.info("UnknownHostException Occured:: URL=" + request.getRequestURL()); + return "Host not found"; + } + + @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "IOException occured") + @ExceptionHandler(IOException.class) + public void handleIOException() { + logger.error("IOException handler executed"); + } + + @ResponseStatus(value = HttpStatus.GATEWAY_TIMEOUT, reason = "Cannot access restconf URl") + @ExceptionHandler(ResourceAccessException.class) + public void handleResourceAccessException() { + logger.error("IOException handler executed"); + } + + @ExceptionHandler(value = {ResourceNotFoundException.class}) + protected ResponseEntity<Object> handleResourceNotFoundExceptionException(ResourceNotFoundException ex, WebRequest request) { + StringBuilder builder = new StringBuilder(); + builder.append(ex.getMessage()); + ApiError apiError = new ApiError(HttpStatus.NOT_FOUND, + "Resource Doesnt Exists.", builder.substring(0, builder.length())); + return new ResponseEntity<Object>(apiError, new HttpHeaders(), apiError.getStatus()); + } + +} diff --git a/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ResourceNotFoundException.java b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ResourceNotFoundException.java new file mode 100644 index 0000000..7ef5b62 --- /dev/null +++ b/CdtProxyService/src/main/java/org/onap/appc/cdt/service/exceptions/ResourceNotFoundException.java @@ -0,0 +1,51 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +============LICENSE_END============================================ +*/ +package org.onap.appc.cdt.service.exceptions; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + * Created by Amaresh Kumar on 09/May/2018. + */ +@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Resource Not Found") +public class ResourceNotFoundException extends Exception { + + private static final long serialVersionUID = 1L; + + private String errCode; + private String errMsg; + + /** + * Constructs a new runtime exception with the specified detail message. + * The cause is not initialized, and may subsequently be initialized by a + * call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public ResourceNotFoundException(String message, String errCode, String errMsg) { + super(message); + this.errCode = errCode; + this.errMsg = errMsg; + } +} |