1 package org.srinivas.siteworks.fecamelworks;
2
3 import org.apache.camel.Exchange;
4 import org.apache.camel.Processor;
5 import org.apache.commons.lang3.StringUtils;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8 import static org.srinivas.siteworks.fecamelworks.FECamelWorksRoute.*;
9
10
11
12
13 public class FECamelWorksErrorHandlerProcessor implements Processor {
14 public static final String FE_CAMEL_WORKS_ERROR_WHILE_PROCESSING_REQUEST = "FECamelWorks Error While Processing Request";
15 public static final String FE_CAMEL_WORKS_ERROR_WHILE_UPDATING_A_FIRE_WORK = "FECamelWorks Error While Updating a FireWork";
16 public static final String FE_CAMEL_WORKS_ERROR_WHILE_FETCHING_LIST_OF_FIRE_WORKS = "FECamelWorks Error While fetching List of FireWorks";
17 private static final Logger log = LoggerFactory.getLogger(FECamelWorksErrorHandlerProcessor.class);
18
19
20
21
22 @Override
23 public void process(Exchange exchange) throws Exception {
24 Exception feexception = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
25 log.error("FECamelWorksErrorHandlerProcessor Logging:", feexception);
26 String FECamelWorksStatus = exchange.getIn().getHeader(FE_ROUTE_STATUS, String.class);
27 if (FECamelWorksStatus.equalsIgnoreCase(FEFIREWORKSCOLLECTION)) {
28 errorSetBody(exchange, FE_CAMEL_WORKS_ERROR_WHILE_FETCHING_LIST_OF_FIRE_WORKS);
29 } else if (FECamelWorksStatus.equalsIgnoreCase(FEUPDATEFIREWORK)) {
30 errorSetBody(exchange, FE_CAMEL_WORKS_ERROR_WHILE_UPDATING_A_FIRE_WORK);
31 } else {
32 errorSetBody(exchange, FE_CAMEL_WORKS_ERROR_WHILE_PROCESSING_REQUEST);
33 if (feexception != null) {
34 errorSetBody(exchange, feexception.getMessage());
35 }
36 }
37 }
38
39
40
41
42
43
44
45 private void errorSetBody(Exchange exchange, String newBody) {
46 String body = exchange.getIn().getBody(String.class);
47 if (newBody != null) {
48 body = (StringUtils.isNotBlank(body)) ? body + System.getProperty("line.separator") + newBody : newBody;
49 }
50 exchange.getIn().setBody(body);
51 }
52
53 }