private void loadInitData() throws Exception { String url = baseUrl + MONITOR_APPLICATION_INIT_URL; File file = new File(NOTIFICATION_INFO_FILENAME); if (!file.exists()) { String responseStr = NotificationHttpSupport.post( url, new HashMap<String, String>() { { put("ip", notificationProperties.getProperty("application.ip")); put("port", notificationProperties.getProperty("application.port")); put("appName", notificationProperties.getProperty("application.name")); } }); if (NotificationResponseType.Exception.name().equalsIgnoreCase(responseStr)) { logger.error("Init data from monitor server url [" + url + "] exception."); } else if (NotificationResponseType.NotExist.name().equalsIgnoreCase(responseStr)) { return; } else { JSONObject jsonObject = JSON.parseObject(responseStr); applicationId = jsonObject.getString("applicationId"); if (applicationId != null) { String urls = jsonObject.getString("urls"); if (urls != null && !urls.equals("")) { NotificationServiceFactory.buildNotificationService() .initData( jsonObject.getString("urls"), notificationProperties.getProperty("application.name")); } file.createNewFile(); OutputStream outputStream = null; try { outputStream = new FileOutputStream(file); outputStream.write(("agent.enable=true\nagent.id=" + applicationId).getBytes()); outputStream.flush(); } catch (Exception e) { logger.error("write file " + NOTIFICATION_INFO_FILENAME + "exception.", e); } finally { if (null != outputStream) { outputStream.close(); } } } } } else { reloadApplicationId(file, url); } }
private void reloadApplicationId(File file, String url) { InputStream inputStream = null; try { inputStream = new FileInputStream(file); Properties agentInfoProperties = new Properties(); agentInfoProperties.load(inputStream); applicationId = agentInfoProperties.get("agent.id").toString(); String responseStr = NotificationHttpSupport.post( url, new HashMap<String, String>() { { put("applicationId", applicationId); } }); if (NotificationResponseType.Exception.name().equalsIgnoreCase(responseStr)) { logger.error("Init data from monitor server url [" + url + "] exception."); } else if (NotificationResponseType.NotExist.name().equalsIgnoreCase(responseStr)) { removeApplication(); } else { JSONObject jsonObject = JSON.parseObject(responseStr); String urls = jsonObject.getString("urls"); if (urls != null && !urls.equals("")) { NotificationServiceFactory.buildNotificationService() .initData( jsonObject.getString("urls"), notificationProperties.getProperty("application.name")); } } } catch (Exception e) { logger.error("read file " + NOTIFICATION_INFO_FILENAME + "exception.", e); } finally { if (null != inputStream) { try { inputStream.close(); } catch (Exception e) { logger.error("input stream close exception.", e); } } } }