⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendwebspheremessage.java

📁 用java开发的关于
💻 JAVA
字号:
import org.json.simple.JSONObject;

//import java.io.IOException;
import java.util.HashMap;

//import javax.management.ObjectName;
import java.io.*;

public class SendWebsphereMessage {

	private IOUtil io = new IOUtil();

	private WebsphereConfigure configure = new WebsphereConfigure();

	private WSConfigManagement ws = new WSConfigManagement();

	private JSONObject jSONObject = null;

	private String warnCmd;

	private String dataCmd;

	private String modifiedAttr;

	/*
	 * All the data get from WS
	 */
	private String jdbcConnectionPoolSize;

	private String runningMode;

	private String heapSize;

	private String threadPoolInfo;

	private String systemLogPath;

	private String userLogPath;

	private String cpuUsage;

	private String faultJDBCConnNums;

	private String ipAddress;

	private String jdbcConnTime;

	private String jvmRunTime;

	private String newObjectByPool;

	private String threadActiveNums;

	private String threadDestroyNums;

	public SendWebsphereMessage() {
		jdbcConnectionPoolSize = ws.getJDBCConnectionPoolSize();
		runningMode = ws.getRunningMode();
		heapSize = ws.getHeapSize();
		threadPoolInfo = ws.getThreadPoolInfo();
		systemLogPath = ws.getSystemLogPath();
		userLogPath = ws.getUserLogPath();
		cpuUsage = ws.getCPUUsage();
		faultJDBCConnNums = ws.getFaultJDBCConnNums();
		ipAddress = ws.getIpAddress();
		jdbcConnTime = ws.getJDBCConnTime();
		jvmRunTime = ws.getJVMRunTime();
		newObjectByPool = ws.getNewObjectByPool();
		threadActiveNums = ws.getThreadActiveNums();
		threadDestroyNums = ws.getThreadDestroyNums();
	}

	public void newCfgFile() {
		String stringContent = MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE + "="
				+ jdbcConnectionPoolSize + "\r\n"
				+ MainTableUtil.AS_RUNNING_MODE + "=" + runningMode + "\r\n"
				+ MainTableUtil.AS_HEAP_SIZE + "=" + heapSize + "\r\n"
				+ MainTableUtil.AS_CONFIG_THREADS_NUM + "=" + threadPoolInfo
				+ "\r\n" + MainTableUtil.AS_SYSTEM_LOG_PATH + "="
				+ systemLogPath + "\r\n" + MainTableUtil.AS_USER_LOG_PATH + "="
				+ userLogPath + "\r\n" + AttributesUtil.WS_CPU_USAGE + "="
				+ cpuUsage + "\r\n" + AttributesUtil.WS_FAULT_JDBCCONN_NUMS
				+ "=" + faultJDBCConnNums + "\r\n"
				+ AttributesUtil.WS_IP_ADDRESS + "=" + ipAddress + "\r\n"
				+ AttributesUtil.WS_JDBCCONN_TIME + "=" + jdbcConnTime + "\r\n"
				+ AttributesUtil.WS_JVM_RUN_TIME + "=" + jvmRunTime + "\r\n"
				+ AttributesUtil.WS_OBJECT_NUMS + "=" + newObjectByPool
				+ "\r\n" + AttributesUtil.WS_THREAD_ACTIVE_NUMS + "="
				+ threadActiveNums + "\r\n"
				+ AttributesUtil.WS_THREAD_DESTROY_NUMS + "="
				+ threadDestroyNums + "\r\n";
		io.writeInNewFile(configure.getConfigFilePath()
				+ configure.getWebsphereDataFile(), stringContent);
	}

	public boolean compareContentWithOrigFile() {
		boolean modified = false;
		String configfile_path = configure.getConfigFilePath();
		String websphere_datafile_name = configure.getWebsphereDataFile();
		StringBuffer sb = new StringBuffer();
		HashMap map = io.getOrigFile(configfile_path + websphere_datafile_name);

		if (!heapSize.equals(map.get(MainTableUtil.AS_HEAP_SIZE))
				|| !cpuUsage.equals(map.get(AttributesUtil.WS_CPU_USAGE))
				|| !faultJDBCConnNums.equals(map
						.get(AttributesUtil.WS_FAULT_JDBCCONN_NUMS))
				|| !ipAddress.equals(map.get(AttributesUtil.WS_IP_ADDRESS))
				|| !jdbcConnectionPoolSize.equals(map
						.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE))
				|| !jdbcConnTime.equals(map
						.get(AttributesUtil.WS_JDBCCONN_TIME))
				|| !jvmRunTime.equals(map.get(AttributesUtil.WS_JVM_RUN_TIME))
				|| !newObjectByPool.toString().equals(
						map.get(AttributesUtil.WS_OBJECT_NUMS))
				|| !runningMode.equals(map.get(MainTableUtil.AS_RUNNING_MODE))
				|| !systemLogPath.equals(map
						.get(MainTableUtil.AS_SYSTEM_LOG_PATH))
				|| !threadActiveNums.equals(map
						.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS))
				|| !threadDestroyNums.toString().equals(
						map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS))
				|| !userLogPath.equals(map.get(MainTableUtil.AS_USER_LOG_PATH))
				|| !threadPoolInfo.toString().equals(
						map.get(MainTableUtil.AS_CONFIG_THREADS_NUM))) {
			if (!heapSize.equals(map.get(MainTableUtil.AS_HEAP_SIZE))) {
				sb.append(MainTableUtil.AS_HEAP_SIZE);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_HEAP_SIZE));
				sb.append(" TO ");
				sb.append(heapSize);
				sb.append(",");

			}
			if (!cpuUsage.equals(map.get(AttributesUtil.WS_CPU_USAGE))) {
				sb.append(AttributesUtil.WS_CPU_USAGE);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_CPU_USAGE));
				sb.append(" TO ");
				sb.append(cpuUsage);
				sb.append(",");
			}
			if (!faultJDBCConnNums.equals(map
					.get(AttributesUtil.WS_FAULT_JDBCCONN_NUMS))) {
				sb.append(AttributesUtil.WS_CPU_USAGE);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_CPU_USAGE));
				sb.append(" TO ");
				sb.append(faultJDBCConnNums);
				sb.append(",");
			}
			if (!ipAddress.equals(map.get(AttributesUtil.WS_IP_ADDRESS))) {
				sb.append(AttributesUtil.WS_IP_ADDRESS);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_IP_ADDRESS));
				sb.append(" TO ");
				sb.append(ipAddress);
				sb.append(",");
			}
			if (!jdbcConnectionPoolSize.equals(map
					.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE))) {
				sb.append(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE));
				sb.append(" TO ");
				sb.append(jdbcConnectionPoolSize);
				sb.append(",");
			}
			if (!jdbcConnTime.equals(map.get(AttributesUtil.WS_JDBCCONN_TIME))) {
				sb.append(AttributesUtil.WS_JDBCCONN_TIME);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_JDBCCONN_TIME));
				sb.append(" TO ");
				sb.append(jdbcConnTime);
				sb.append(",");
			}
			if (!jvmRunTime.equals(map.get(AttributesUtil.WS_JVM_RUN_TIME))) {
				sb.append(AttributesUtil.WS_JVM_RUN_TIME);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_JVM_RUN_TIME));
				sb.append(" TO ");
				sb.append(jvmRunTime);
				sb.append(",");
			}
			if (!newObjectByPool.equals(map.get(AttributesUtil.WS_OBJECT_NUMS))) {
				sb.append(AttributesUtil.WS_OBJECT_NUMS);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_OBJECT_NUMS));
				sb.append(" TO ");
				sb.append(newObjectByPool);
				sb.append(",");
			}
			if (!runningMode.equals(map.get(MainTableUtil.AS_RUNNING_MODE))) {
				sb.append(MainTableUtil.AS_RUNNING_MODE);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_RUNNING_MODE));
				sb.append(" TO ");
				sb.append(runningMode);
				sb.append(",");
			}
			if (!systemLogPath
					.equals(map.get(MainTableUtil.AS_SYSTEM_LOG_PATH))) {
				sb.append(MainTableUtil.AS_SYSTEM_LOG_PATH);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_SYSTEM_LOG_PATH));
				sb.append(" TO ");
				sb.append(systemLogPath);
				sb.append(",");
			}
			if (!threadActiveNums.equals(map
					.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS))) {
				sb.append(AttributesUtil.WS_THREAD_ACTIVE_NUMS);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS));
				sb.append(" TO ");
				sb.append(threadActiveNums);
				sb.append(",");
			}
			if (!threadDestroyNums.toString().equals(
					map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS))) {
				sb.append(AttributesUtil.WS_THREAD_DESTROY_NUMS);
				sb.append(" from ");
				sb.append(map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS));
				sb.append(" TO ");
				sb.append(threadDestroyNums);
				sb.append(",");
			}
			if (!userLogPath.equals(map.get(MainTableUtil.AS_USER_LOG_PATH))) {
				sb.append(MainTableUtil.AS_USER_LOG_PATH);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_USER_LOG_PATH));
				sb.append(" TO ");
				sb.append(userLogPath);
				sb.append(",");
			}
			if (!threadPoolInfo.toString().equals(
					map.get(MainTableUtil.AS_CONFIG_THREADS_NUM))) {
				sb.append(MainTableUtil.AS_CONFIG_THREADS_NUM);
				sb.append(" from ");
				sb.append(map.get(MainTableUtil.AS_CONFIG_THREADS_NUM));
				sb.append(" TO ");
				sb.append(threadPoolInfo);
				sb.append(",");
			}
			modifiedAttr = sb.toString();
			int index = -1;
			index = modifiedAttr.lastIndexOf(",");
			if (index != -1)
				modifiedAttr = modifiedAttr.substring(0, index);
			//System.out.println(modifiedAttr);
			newCfgFile();
			modified = true;
			//System.out.println("Modify the file");
		}
		return modified;

	}

	public JSONObject send() {
		FormatTransform formatTransform = new FormatTransform();
		String configfile_path = configure.getConfigFilePath();
		String websphere_datafile_name = configure.getWebsphereDataFile();
		String cmcolName = configure.getCmcolname();
		String globalCfgName = configure.getGlobalConfigfileName();
		String ci = io.getCIName(configfile_path + globalCfgName);
		if (!io.checkOriginalFile(configfile_path + websphere_datafile_name)) {
			this.newCfgFile();
			formatTransform.setAsName(cmcolName);
			formatTransform.setType("N");
			jSONObject = formatTransform.getJsonFormat(ws);
			warnCmd = "./postemsg -f gateway.conf -r WARNING -m \"New CI:" + ci
					+ "\"" + " source=\"gtscm\"" + " CI_CREATE ALL";
			String originalJSON = jSONObject.toString();
			String escapeJSON=Escape.escape(originalJSON);
			dataCmd = "./postemsg -f gateway.conf -r WARNING -m " 
					+ escapeJSON + " source=\"gtscm\""
					+ " CI_DATA ALL";
			// send new type message
		} else {
			// read file checking data to determine to modify or delete
			if (compareContentWithOrigFile()) {
				formatTransform.setAsName(cmcolName);
				formatTransform.setType("M");

				jSONObject = formatTransform.getJsonFormat(ws);
				warnCmd = "./postemsg -f gateway.conf -r WARNING -m \"Modify CI:"
						+ ci + "," + " ATTR:" + modifiedAttr + "\""
						+ " source=\"gtscm\"" + " CI_MODIFY ALL";
				/*
				 * Widdows OS : should replace all " to \" of the
				 * jSONObject.toString() String,here i use replacedJSON Other
				 * OS: using originalJSON directly
				 */

				String originalJSON = jSONObject.toString();
				String replacedJSON = originalJSON.replaceAll("\"", "\\\\\"");
				String escapeJSON=Escape.escape(originalJSON);
				dataCmd = "./postemsg -f gateway.conf -r WARNING -m " 
						+ escapeJSON  + " source=\"gtscm\""
						+ " CI_DATA ALL";
			}
		}
		return jSONObject;
	}

	public String getWarnCmd() {
		return warnCmd;
	}

	public String getDataCmd() {
		return dataCmd;
	}

	public static void main(String[] args) {
		SendWebsphereMessage send = new SendWebsphereMessage();
		send.send();
		//String warn = send.getWarnCmd();
		String data = send.getDataCmd();
//		if (warn != null ) {
//			try {
//				Runtime.getRuntime().exec(warn);
//				Runtime.getRuntime().exec(data);
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//		}
		if(data!=null){
			try {
				Runtime.getRuntime().exec(data);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		//System.out.println(send.getWarnCmd());
		System.out.println(send.getDataCmd());
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -