package org.fastcatsearch.job.management; import java.io.IOException; import org.fastcatsearch.cluster.Node; import org.fastcatsearch.cluster.NodeService; import org.fastcatsearch.common.io.Streamable; import org.fastcatsearch.env.Environment; import org.fastcatsearch.exception.FastcatSearchException; import org.fastcatsearch.ir.io.DataInput; import org.fastcatsearch.ir.io.DataOutput; import org.fastcatsearch.job.Job; import org.fastcatsearch.service.ServiceManager; public class GetServerSystemInfoJob extends Job { private static final long serialVersionUID = -9023882122708815679L; @Override public JobResult doRun() throws FastcatSearchException { NodeService nodeService = ServiceManager.getInstance().getService(NodeService.class); Node myNode = nodeService.getMyNode(); ServerSystemInfo result = new ServerSystemInfo(); result.osName = Environment.OS_NAME; result.osArch = System.getProperty("os.arch"); result.userName = System.getProperty("user.name"); result.fileEncoding = System.getProperty("file.encoding"); result.javaHome = System.getProperty("java.home"); result.javaVendor = System.getProperty("java.vendor"); result.javaVersion = System.getProperty("java.version"); result.javaClasspath = System.getProperty("java.class.path"); result.homePath = environment.homeFile().getAbsolutePath(); return new JobResult(result); } public static class ServerSystemInfo implements Streamable { public String osName; public String osArch; public String userName; public String fileEncoding; public String javaHome; public String javaVendor; public String javaVersion; public String javaClasspath; public String homePath; @Override public void readFrom(DataInput input) throws IOException { osName = input.readString(); osArch = input.readString(); userName = input.readString(); fileEncoding = input.readString(); javaHome = input.readString(); javaVendor = input.readString(); javaVersion = input.readString(); javaClasspath = input.readString(); homePath = input.readString(); } @Override public void writeTo(DataOutput output) throws IOException { output.writeString(osName); output.writeString(osArch); output.writeString(userName); output.writeString(fileEncoding); output.writeString(javaHome); output.writeString(javaVendor); output.writeString(javaVersion); output.writeString(javaClasspath); output.writeString(homePath); } } }