View Javadoc

1   package org.srinivas.siteworks.rlrestserver;
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.rlrestserver.RLRestServerRoute.*;
9   
10  /**
11   * The Class RLRestServerErrorHandlerProcessor.
12   */
13  public class RLRestServerErrorHandlerProcessor implements Processor {
14  	public static final String RL_REST_SERVER_ERROR_WHILE_PROCESSING_REQUEST = "RLRestServer Error While Processing Request";
15  	public static final String RL_REST_SERVER_ERROR_WHILE_POST_PROCESSING_DB_RESPONSE = "RLRestServer Error While Post Processing DbResponse";
16  	public static final String RL_REST_SERVER_ERROR_WHILE_UPDATING_A_FIRE_WORK = "RLRestServer Error While Updating a FireWork";
17  	public static final String RL_REST_SERVER_ERROR_WHILE_FETCHING_LIST_OF_FIRE_WORKS = "RLRestServer Error While fetching List of  FireWorks";
18  
19  	private static final Logger log = LoggerFactory.getLogger(RLRestServerErrorHandlerProcessor.class);
20  
21  	/* (non-Javadoc)
22  	 * @see org.apache.camel.Processor#process(org.apache.camel.Exchange)
23  	 */
24  	@Override
25  	public void process(Exchange exchange) throws Exception {
26  		Exception rlexception = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
27  		log.error("RLRestServerErrorHandlerProcessor Logging:", rlexception);
28  		String RLRestServerStatus = exchange.getIn().getHeader(RL_ROUTE_STATUS, String.class);
29  
30  		if (RLRestServerStatus.equalsIgnoreCase(RLFIREWORKSCOLLECTION)) {
31  			errorSetBody(exchange, RL_REST_SERVER_ERROR_WHILE_FETCHING_LIST_OF_FIRE_WORKS);
32  		} else if (RLRestServerStatus.equalsIgnoreCase(RLUPDATEFIREWORK)) {
33  			errorSetBody(exchange, RL_REST_SERVER_ERROR_WHILE_UPDATING_A_FIRE_WORK);
34  		} else if (RLRestServerStatus.equalsIgnoreCase(RLRESPONSEPROCESS)) {
35  			log.info("Exception Body" + exchange.getIn().getBody(String.class));
36  			errorSetBody(exchange, RL_REST_SERVER_ERROR_WHILE_POST_PROCESSING_DB_RESPONSE);
37  		} else {
38  			errorSetBody(exchange, RL_REST_SERVER_ERROR_WHILE_PROCESSING_REQUEST);
39  			if (rlexception != null) {
40  				errorSetBody(exchange, rlexception.getMessage());
41  			}
42  		}
43  	}
44  
45  	/**
46  	 * Error set camel body.
47  	 *
48  	 * @param exchange the exchange
49  	 * @param newBody the new body
50  	 */
51  	private void errorSetBody(Exchange exchange, String newBody) {
52  		String body = exchange.getIn().getBody(String.class);
53  		if (newBody != null) {
54  			body = (StringUtils.isNotBlank(body)) ? body + System.getProperty("line.separator") + newBody : newBody;
55  		}
56  		exchange.getIn().setBody(body);
57  	}
58  }