View Javadoc

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   * The Class DbServerErrorHandlerProcessor.
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  	/* (non-Javadoc)
21  	 * @see org.apache.camel.Processor#process(org.apache.camel.Exchange)
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  	 * Error set camel body.
44  	 *
45  	 * @param exchange the exchange
46  	 * @param newBody the new body
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  }