ja-netfilter/src/main/java/com/janetfilter/core/Environment.java

128 lines
3.5 KiB
Java

package com.janetfilter.core;
import com.janetfilter.core.utils.ProcessUtils;
import com.janetfilter.core.utils.StringUtils;
import java.io.File;
import java.lang.instrument.Instrumentation;
public final class Environment {
private final String pid;
private final String version;
private final int versionNumber;
private final String appName;
private final File baseDir;
private final File agentFile;
private final File configDir;
private final File pluginsDir;
private final File logsDir;
private final String nativePrefix;
private final String disabledPluginSuffix;
private final boolean attachMode;
private final Instrumentation instrumentation;
public Environment(Instrumentation instrumentation, File agentFile, boolean attachMode) {
this(instrumentation, agentFile, null, attachMode);
}
public Environment(Instrumentation instrumentation, File agentFile, String app, boolean attachMode) {
this.instrumentation = instrumentation;
this.agentFile = agentFile;
baseDir = agentFile.getParentFile();
if (StringUtils.isEmpty(app)) {
appName = "";
configDir = new File(baseDir, "config");
pluginsDir = new File(baseDir, "plugins");
logsDir = new File(baseDir, "logs");
} else {
appName = app.toLowerCase();
configDir = new File(baseDir, "config-" + appName);
pluginsDir = new File(baseDir, "plugins-" + appName);
logsDir = new File(baseDir, "logs-" + appName);
}
pid = ProcessUtils.currentId();
version = Launcher.VERSION;
versionNumber = Launcher.VERSION_NUMBER;
nativePrefix = StringUtils.randomMethodName(15) + "_";
disabledPluginSuffix = ".disabled.jar";
this.attachMode = attachMode;
}
public String getPid() {
return pid;
}
public String getVersion() {
return version;
}
public int getVersionNumber() {
return versionNumber;
}
public String getAppName() {
return appName;
}
public File getBaseDir() {
return baseDir;
}
public File getAgentFile() {
return agentFile;
}
public File getConfigDir() {
return configDir;
}
public File getPluginsDir() {
return pluginsDir;
}
public File getLogsDir() {
return logsDir;
}
public String getNativePrefix() {
return nativePrefix;
}
public String getDisabledPluginSuffix() {
return disabledPluginSuffix;
}
public boolean isAttachMode() {
return attachMode;
}
public boolean isJavaagentMode() {
return !attachMode;
}
public Instrumentation getInstrumentation() {
return instrumentation;
}
@Override
public String toString() {
return "Environment: {" +
"\n\tpid = " + pid +
", \n\tversion = " + version +
", \n\tversionNumber = " + versionNumber +
", \n\tappName = " + appName +
", \n\tbaseDir = " + baseDir +
", \n\tagentFile = " + agentFile +
", \n\tconfigDir = " + configDir +
", \n\tpluginsDir = " + pluginsDir +
", \n\tlogsDir = " + logsDir +
", \n\tnativePrefix = " + nativePrefix +
", \n\tdisabledPluginSuffix = " + disabledPluginSuffix +
", \n\tattachMode = " + attachMode +
"\n}";
}
}