BMCServerMain.java 3.14 KB
package com.sitech.ibnms;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;

import org.apache.log4j.Logger;

import com.sitech.ibnms.config.sync.BmcProperties;
import com.sitech.ibnms.config.sync.adaptor.AgentSyncAdaptorManager;
import com.sitech.ibnms.config.sync.adaptor.CronScheduleLogManager;
import com.sitech.ibnms.config.sync.service.AgentSyncService;
import com.sitech.ibnms.util.Formater;
import com.sitech.ibnms.util.SystemUtil;

public class BMCServerMain implements Runnable {
	private static Logger logger = Logger.getLogger("LOGGER");

	@Override
	public void run() {
//        sendModuleVersionInfo();
		new Thread(new AgentSyncAdaptorManager(), "AgentSyncAdaptorManager").start();
        new Thread(new CronScheduleLogManager(), "CronScheduleLogManager").start();
	}

	public static void main(String[] args) {
		logger.info("******************************************************");
		logger.info("*                       WELCOME                       ");
		logger.info("*");
		logger.info("*        OS_VERSION: ".concat(SystemUtil.SYS_OS_VERSION));
		logger.info("*           OS_NAME: ".concat(SystemUtil.SYS_OS_NAME));
		logger.info("*");
		logger.info("*      JAVA_VERSION: ".concat(SystemUtil.SYS_JAVA_VERSION));
		logger.info("*         JAVA_HOME: ".concat(SystemUtil.SYS_JAVA_HOME));
		logger.info("******************************************************");
		logger.info("******************* BMCServer start....**********************");

		new Thread(new BMCServerMain(), "BMCServer").start();
	}

    private void sendModuleVersionInfo(){
        Map<String, String> map = readAppJarPackage();
        new AgentSyncService().uploadModuleVerInfo(map);
        logger.info("Upload BmcServer info:MODULE_ID["+map.get("MODULE_ID")+"]," +
                "MODULE_VERSION["+map.get("MODULE_VERSION")+"]," +
                "BUILD_TIME["+map.get("BUILD_TIME")+"] successfully!");
    }

    private Map<String,String> readAppJarPackage(){
        Map<String,String> appInfo = new HashMap<String, String>();
        try{
            File file = new File(BmcProperties.APP_SERVER_HOME+"/libs/bmc-server.jar");
            JarFile jarFile = new JarFile(file);
            Manifest mf = jarFile.getManifest();
            Attributes attr = mf.getMainAttributes();
            String buildTime = attr.getValue("Build-On");
            if(null==buildTime || "".equals(buildTime.trim())){
                buildTime = "999912312359";
            }
            String version = attr.getValue("Implementation-Version");
            Date startDate = new Date();
            String startTime = Formater.datetimeToString(startDate,"yyyy-MM-dd HH:mm");
            appInfo.put("MODULE_ID",BmcProperties.APP_SERVER_ID);
            appInfo.put("MODULE_TYPE",BmcProperties.APP_SERVER_TYPE);
            appInfo.put("BUILD_TIME",buildTime);
            appInfo.put("MODULE_VERSION",version);
            appInfo.put("START_TIME",startTime);
        }catch (Exception e){
            logger.error("Exception while read bmc-server.jar",e);
        }
        return appInfo;
    }


}