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