001 package org.shiftone.jrat.core.config;
002
003 import org.shiftone.jrat.util.io.Dir;
004 import org.shiftone.jrat.util.log.Logger;
005
006 /**
007 * @author jeff@shiftone.org (Jeff Drost)
008 */
009 public class Settings {
010 private static final Logger LOG = Logger.getLogger(Settings.class);
011
012 private String applicationName;
013
014 private boolean systemPropertyTweakingEnabled = true;
015 private String baseDirectory = "jrat.output";
016 private String logLevel = "info";
017 private boolean nanoSecondTimingEnabled;
018 private int outputBufferSize = 1024 * 8;
019 private boolean outputCompressionEnabled;
020
021 //
022 private boolean httpServerEnabled;
023 private int httpPort = 8888;
024 //
025 private boolean jmxEnabled;
026 private boolean mBeanServerCreationEnabled;
027 private String mBeanServerServerUrl;
028 private String mBeanServerAgentId;
029 private boolean rmiRegistryCreationEnabled = true;
030 private int rmiRegistryPort = 2121;
031 //
032
033 private boolean injectorDefaultExcludesEnabled;
034
035
036 /**
037 * It is occasionally necessary for JRat to set a system property that
038 * it knows will change the behavior of an environment in a way that
039 * is necessary for profiling.
040 * This is only done when using the jvmti agent.
041 */
042 public boolean isSystemPropertyTweakingEnabled() {
043 return systemPropertyTweakingEnabled;
044 }
045
046 public void setSystemPropertyTweakingEnabled(boolean systemPropertyTweakingEnabled) {
047 this.systemPropertyTweakingEnabled = systemPropertyTweakingEnabled;
048 }
049
050 public String getApplicationName() {
051 return applicationName;
052 }
053
054 public void setApplicationName(String applicationName) {
055 this.applicationName = applicationName;
056 }
057
058 public Dir getBaseDirectory() {
059 return new Dir(baseDirectory);
060 }
061
062 public void setBaseDirectory(String baseDirectory) {
063 this.baseDirectory = baseDirectory;
064 }
065
066 public String getLogLevel() {
067 return logLevel;
068 }
069
070 public void setLogLevel(String logLevel) {
071 this.logLevel = logLevel;
072 }
073
074 public boolean isNanoSecondTimingEnabled() {
075 return nanoSecondTimingEnabled;
076 }
077
078 public void setNanoSecondTimingEnabled(boolean nanoSecondTimingEnabled) {
079 this.nanoSecondTimingEnabled = nanoSecondTimingEnabled;
080 }
081
082 public int getOutputBufferSize() {
083 return outputBufferSize;
084 }
085
086 public void setOutputBufferSize(int outputBufferSize) {
087 this.outputBufferSize = outputBufferSize;
088 }
089
090 public boolean isOutputCompressionEnabled() {
091 return outputCompressionEnabled;
092 }
093
094 public void setOutputCompressionEnabled(boolean outputCompressionEnabled) {
095 this.outputCompressionEnabled = outputCompressionEnabled;
096 }
097
098 public boolean isHttpServerEnabled() {
099 return httpServerEnabled;
100 }
101
102 public void setHttpServerEnabled(boolean httpServerEnabled) {
103 this.httpServerEnabled = httpServerEnabled;
104 }
105
106 public int getHttpPort() {
107 return httpPort;
108 }
109
110 public void setHttpPort(int httpPort) {
111 this.httpPort = httpPort;
112 }
113
114 public boolean isJmxEnabled() {
115 return jmxEnabled;
116 }
117
118 public void setJmxEnabled(boolean jmxEnabled) {
119 this.jmxEnabled = jmxEnabled;
120 }
121
122 public boolean isMBeanServerCreationEnabled() {
123 return mBeanServerCreationEnabled;
124 }
125
126 public void setMBeanServerCreationEnabled(boolean mBeanServerCreationEnabled) {
127 this.mBeanServerCreationEnabled = mBeanServerCreationEnabled;
128 }
129
130 public String getMBeanServerServerUrl() {
131 return this.mBeanServerServerUrl == null
132 ? "service:jmx:rmi:///jndi/rmi://localhost:" + getRmiRegistryPort() + "/jrat"
133 : this.mBeanServerServerUrl;
134 }
135
136 public void setMBeanServerServerUrl(String mBeanServerServerUrl) {
137 this.mBeanServerServerUrl = mBeanServerServerUrl;
138 }
139
140 public String getMBeanServerAgentId() {
141 return mBeanServerAgentId;
142 }
143
144 public void setMBeanServerAgentId(String mBeanServerAgentId) {
145 this.mBeanServerAgentId = mBeanServerAgentId;
146 }
147
148 public boolean isRmiRegistryCreationEnabled() {
149 return rmiRegistryCreationEnabled;
150 }
151
152 public void setRmiRegistryCreationEnabled(boolean rmiRegistryCreationEnabled) {
153 this.rmiRegistryCreationEnabled = rmiRegistryCreationEnabled;
154 }
155
156 public int getRmiRegistryPort() {
157 return rmiRegistryPort;
158 }
159
160 public void setRmiRegistryPort(int rmiRegistryPort) {
161 this.rmiRegistryPort = rmiRegistryPort;
162 }
163
164 public boolean isInjectorDefaultExcludesEnabled() {
165 return injectorDefaultExcludesEnabled;
166 }
167
168 public void setInjectorDefaultExcludesEnabled(boolean injectorDefaultExcludesEnabled) {
169 this.injectorDefaultExcludesEnabled = injectorDefaultExcludesEnabled;
170 }
171 }