package com.eactive.eai.common.routing; 

/** 
 * 1. 기능 : routing 패키지에서 사용하는 상수값들을 정의한 Interface Class
 * 2. 처리 개요 : 
 * *     - routing 패키지에서 사용하는 상수값들을 정의한 Interface Class
 * 3. 주의사항 
 *
 * @author  : 
 * @version : v 1.0.0
 * @see : 관련 기능을 참조
 * @since   : 
 *  : 
 */
public interface RouteKeys 
{ 
   
    public static final String REMOTE_CALL                     = "REMOTE_CALL";
    public static final String REMOTE_CONTAINER_ID             = "REMOTE_CONTAINER_ID";    
    public static final String REMOTE_CALL_URL                 = "REMOTE_CALL_URL";
    public static final String REMOTE_CALL_CONNECTION_TIMEOUT  = "REMOTE_CALL_CONNECTION_TIMEOUT";
    public static final String REMOTE_CALL_READ_TIMEOUT_ASYNC  = "REMOTE_CALL_READ_TIMEOUT_ASYNC";
    public static final String REMOTE_CALL_READ_TIMEOUT_SYNC   = "REMOTE_CALL_READ_TIMEOUT_SYNC";
	
    public static final String GROUP_NAME = "FlowRouter";
    
    public static final String ROUTING_QUEUE_CONNECTION_FACTORY = "routing.queue.connection.factory";
    public static final String ROUTING_TOPIC_CONNECTION_FACTORY = "routing.topic.connection.factory";
    public static final String ROUTING_QUEUE = "routing.queue";
    public static final String ROUTING_RESQUEUE = "routing.resqueue"; // 비동기응답거래를 위한 Queue : 2008.10.29
    public static final String ROUTING_TOPIC = "routing.topic";
    public static final String ROUTING_TOPIC_TTL = "routing.topic.ttl";
    
    // ActiveMQ AmqPooledConnectionFactory configuration
	public static final String ROUTING_QUEUE_CONNECTION_FACTORY_MAXCONNECTION = "routing.queue.connection.factory.maxconnection";
	public static final String ROUTING_QUEUE_CONNECTION_FACTORY_EXPIRYTIMEOUT = "routing.queue.connection.factory.expirytimeout";
	public static final String ROUTING_QUEUE_CONNECTION_FACTORY_IDLETIMEOUT = "routing.queue.connection.factory.idletimeout";

    
    // RequestProcessor에서 FlowRouter로 전달하는 Routing 방식 정의
    public static final String ROUTING_TYPE = "ROUTING_TYPE";
    
    public static final String ROUT_QUEUE = "ROUT_QUEUE";
    public static final String ROUT_TOPIC = "ROUT_TOPIC";
    public static final String ROUT_CALL = "ROUT_CALL";
    
    // 동기-비동기의 응답메시지에 대한 TOPIC JMSCorrelationID
    public static final String TRACE_KEY = "TRACE_KEY";
    
    // 더미단말(연수단말) 거래를 위한 라우팅 정보저장
    public static final String DUMMY_ROUTE_INFO = "DUMMY_ROUTE_INFO";
    public static final String REMOTE_URL = "REMOTE_URL"; // 사용하지 않을 수 있음
    
    //시뮬레이터 prop 관련
    public static final String SIM = "SIM";
    public static final String SIM_ROUTING = "sim.routing";
    public static final String SIM_ADAPTER_SYNC  = "sim.adapter.sync";
    public static final String SIM_ADAPTER_ASYNC = "sim.adapter.async";
    public static final String SIM_REST_MOCKSERVER = "sim.rest.mockserver";
    
} 
