Package com.alu.e3.gateway.common.camel.processor

Source Code of com.alu.e3.gateway.common.camel.processor.TDRRequestProcessor

/**
* Copyright © 2012 Alcatel-Lucent.
*
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
* Licensed to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file 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.
*/
package com.alu.e3.gateway.common.camel.processor;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.log4j.Logger;

import com.alu.e3.common.camel.ExchangeConstantKeys;
import com.alu.e3.common.performance.PerfWatch;
import com.alu.e3.data.model.ExtractFromType;
import com.alu.e3.gateway.TdrProcessorHelper;

/**
* This processor is meant to do the work of pulling the Provisioned TDR values
* out of the data model and inserting them into the TDR emission structure.
*
*
*/
public class TDRRequestProcessor implements Processor {
  private static Logger logger = Logger.getLogger(TDRResponseProcessor.class);

  // The key to our Exchange property that indicates whether this has already been run.
  // We only want to run it once and it could run twice if there is an error on the route.
  private static String TDR_REQ_PROC_RUN_KEY = "TDR_REQ_PROC_RUN";

  private static PerfWatch perfWatch;
  public PerfWatch getPerfWatch() {
    if (perfWatch == null )
      perfWatch = new PerfWatch();
   
    return perfWatch;
  }
 
  @Override
  public void process(Exchange exchange) throws Exception {
   
    Long startTime = System.nanoTime();
   
    try{
      Boolean alreadyRan = exchange.getProperty(TDR_REQ_PROC_RUN_KEY, Boolean.FALSE, Boolean.class);
      Boolean isResponse = exchange.getProperty(ExchangeConstantKeys.E3_GOT_SB_RESPONSE.toString(), Boolean.FALSE, Boolean.class);

      if(!alreadyRan && !isResponse){
        TdrProcessorHelper.processTdrRules(exchange, ExtractFromType.Request, false);
        exchange.setProperty(TDR_REQ_PROC_RUN_KEY, Boolean.TRUE);
      }
    } catch(Exception e){
      if (logger.isErrorEnabled()) {
        logger.error(e.getMessage(), e);
      }
    }
   
    getPerfWatch().getElapsedTime().addAndGet(System.nanoTime()-startTime);
    getPerfWatch().getIterationCount().getAndIncrement();
    getPerfWatch().log("TDRRequestProcessor.process()");

  }
}
TOP

Related Classes of com.alu.e3.gateway.common.camel.processor.TDRRequestProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.