package com.air.agent.imf;

import java.io.File;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.springframework.context.support.GenericXmlApplicationContext;

import com.airport.util.LteException;
import com.airport.util.SystemBean;
import com.caac.imf.api.IMFClient;
import com.caac.imf.api.IMFClientFactory;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.PropKit;

public class App {
	private static final Logger logger = Logger.getLogger(App.class);
	private static IMFClient client = null;
	public static boolean isLoginOk;

	public static void main(String[] args) {
		logger.info("准备登录IMF......");
		PropKit.use("config.properties");
		PropertyConfigurator.configure("target/classes/log4j.properties");
		
		String rootDir = new File(PathKit.getRootClassPath()).getParent();
		try {
			GenericXmlApplicationContext context = new GenericXmlApplicationContext();
			context.setValidating(false);
			
			String applicationContextFile = "/" + rootDir + "/ApplicationContext.xml";
			SystemBean.createInstance(applicationContextFile);

//			SystemBean.createInstance("config/ApplicationContext.xml");
		} catch (LteException e) {
			logger.info("SystemBean.createInstance()-->" + e.toString());
		}

		client = IMFClientFactory.createInstance();
		String imf_username = PropKit.get("imf_username");
		String imf_password = PropKit.get("imf_password");
		// debug运行
//		String confFileName = PathKit.getRootClassPath() + "/imf_config.properties";
		// 正式环境jar包方式运行,imf_config.properties要和jar包同目录
		String confFileName = rootDir + "/imf_config.properties";
		isLoginOk = IMFLogin.login(client, imf_username, imf_password, confFileName);

		if (isLoginOk) {
			logger.info("登录成功.....");
			logger.info("开启中外运报文接收服务......");
			new IMFReaderTask(client).start();

		} else {
			logger.info("登录失败,退出服务......");
			System.exit(-1);
		}
	}
}