Skip to content

Commit 1f21179

Browse files
committed
code review changes
1 parent 9569bff commit 1f21179

26 files changed

+136
-1331
lines changed

src/main/java/com/appdynamics/extensions/ABaseMonitor.java

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
package com.appdynamics.extensions;
1717

18-
import com.appdynamics.extensions.conf.ExtensionContextConfiguration;
19-
import com.appdynamics.extensions.conf.ExtensionContext;
18+
import com.appdynamics.extensions.conf.MonitorContextConfiguration;
19+
import com.appdynamics.extensions.conf.MonitorContext;
2020
import com.appdynamics.extensions.file.FileWatchListener;
2121
import com.appdynamics.extensions.util.AssertUtils;
2222
import com.appdynamics.extensions.util.PathResolver;
@@ -39,7 +39,7 @@
3939
* <p>An {@code ABaseMonitor} is a wrapper on top of
4040
* {@link AManagedMonitor} to remove the boiler plate code of
4141
* creating a {@link AMonitorJob} and initializing the
42-
* {@link ExtensionContextConfiguration}.
42+
* {@link MonitorContextConfiguration}.
4343
*
4444
* <p>The MA or SIM agent loads all the {@link AManagedMonitor}s
4545
* from their respective subdirectories in the monitors directory
@@ -94,10 +94,10 @@ public abstract class ABaseMonitor extends AManagedMonitor{
9494
private File installDir;
9595

9696
/**
97-
* A configuration object that reads the monitor's config file
97+
* A contextConfiguration object that reads the monitor's config file
9898
* and initializes the different bits required by the monitor.
9999
*/
100-
protected ExtensionContextConfiguration configuration;
100+
private MonitorContextConfiguration contextConfiguration;
101101

102102
/**
103103
* A runnable which does all the leg work for fetching the
@@ -111,22 +111,38 @@ public ABaseMonitor(){
111111
}
112112

113113
protected void initialize(final Map<String, String> args) {
114-
if(configuration == null){
114+
if(contextConfiguration == null){
115+
installDir = getInstallDirectory();
115116
monitorJob = createMonitorJob();
116-
installDir = PathResolver.resolveDirectory(AManagedMonitor.class);
117-
configuration = new ExtensionContextConfiguration(getMonitorName(), getDefaultMetricPrefix(), installDir, monitorJob);
118-
FileWatchListener fileWatchListener = new FileWatchListener() {
119-
@Override
120-
public void onFileChange(File file) {
121-
configuration.setConfigYml(args.get("config-file"));
122-
onConfigReload(file);
123-
}
124-
};
125-
configuration.registerListener(args.get("config-file"), fileWatchListener);
117+
contextConfiguration = createContextConfiguration();
118+
contextConfiguration.registerListener(args.get("config-file"), createYmlFileListener(args.get("config-file")));
126119
initializeMoreStuff(args);
127120
}
128121
}
129122

123+
private FileWatchListener createYmlFileListener(final String ymlFile) {
124+
FileWatchListener fileWatchListener = new FileWatchListener() {
125+
@Override
126+
public void onFileChange(File file) {
127+
contextConfiguration.setConfigYml(ymlFile);
128+
onConfigReload(file);
129+
}
130+
};
131+
return fileWatchListener;
132+
}
133+
134+
private File getInstallDirectory() {
135+
File installDir = PathResolver.resolveDirectory(AManagedMonitor.class);
136+
if(installDir == null){
137+
throw new RuntimeException("The install directory cannot be null");
138+
}
139+
return installDir;
140+
}
141+
142+
private MonitorContextConfiguration createContextConfiguration() {
143+
return new MonitorContextConfiguration(getMonitorName(), getDefaultMetricPrefix(), installDir, monitorJob);
144+
}
145+
130146
protected void onConfigReload(File file){};
131147

132148
protected AMonitorJob createMonitorJob() {
@@ -162,9 +178,9 @@ public TaskOutput execute(Map<String, String> args, TaskExecutionContext taskExe
162178
}
163179

164180
protected void executeMonitor() {
165-
if(configuration.isEnabled()){
166-
ExtensionContext context = configuration.getContext();
167-
AssertUtils.assertNotNull(context, "The context of the extension has not been initialised!!!! Please check your configuration");
181+
if(contextConfiguration.isEnabled()){
182+
MonitorContext context = contextConfiguration.getContext();
183+
AssertUtils.assertNotNull(context, "The context of the extension has not been initialised!!!! Please check your contextConfiguration");
168184
if(context.isScheduledModeEnabled()){ //scheduled mode
169185
logger.debug("Task scheduler is enabled, printing the metrics from the cache");
170186
monitorJob.printAllFromCache();
@@ -185,8 +201,8 @@ protected static String getImplementationVersion() {
185201

186202
public abstract String getMonitorName();
187203

188-
public ExtensionContextConfiguration getConfiguration() {
189-
return configuration;
204+
public MonitorContextConfiguration getContextConfiguration() {
205+
return contextConfiguration;
190206
}
191207

192208
protected abstract void doRun(TasksExecutionServiceProvider tasksExecutionServiceProvider);

src/main/java/com/appdynamics/extensions/AMonitorJob.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void run() {
4545
}
4646

4747
public void printAllFromCache() {
48-
ConcurrentMap<String, Metric> map = baseMonitor.configuration.getContext().getCachedMetrics();
48+
ConcurrentMap<String, Metric> map = baseMonitor.getContextConfiguration().getContext().getCachedMetrics();
4949
Set<String> keys;
5050
if (map != null && (keys = map.keySet()) != null) {
5151
for (String key : keys) {

src/main/java/com/appdynamics/extensions/MetricWriteHelper.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ protected MetricWriteHelper() {
5454
public MetricWriteHelper(ABaseMonitor baseMonitor) {
5555
AssertUtils.assertNotNull(baseMonitor, "The ABaseMonitor instance cannot be null");
5656
this.baseMonitor = baseMonitor;
57-
derivedMetricsCalculator = baseMonitor.getConfiguration().getContext().createDerivedMetricsCalculator();
57+
derivedMetricsCalculator = baseMonitor.getContextConfiguration().getContext().createDerivedMetricsCalculator();
5858
}
5959

6060
public void printMetric(String metricPath, String metricValue, String aggregationType, String timeRollup, String clusterRollup) {
6161
if (validateStrings(metricPath, metricValue, timeRollup, clusterRollup) && isValidMetricValue(metricValue)) {
62-
if (baseMonitor.getConfiguration().getContext().isScheduledModeEnabled()) {
62+
if (baseMonitor.getContextConfiguration().getContext().isScheduledModeEnabled()) {
6363
Metric metric = new Metric(MetricPathUtils.getMetricName(metricPath), metricValue, metricPath, aggregationType, timeRollup, clusterRollup);
6464
logger.debug("Scheduled mode is enabled, caching the metric {}", metric);
65-
baseMonitor.getConfiguration().getContext().putInMetricCache(metricPath, metric);
65+
baseMonitor.getContextConfiguration().getContext().putInMetricCache(metricPath, metric);
6666
} else {
6767
MetricWriter metricWriter = getMetricWriter(metricPath, aggregationType, timeRollup, clusterRollup);
6868
metricWriter.printMetric(metricValue);
@@ -71,7 +71,7 @@ public void printMetric(String metricPath, String metricValue, String aggregatio
7171
}
7272
if (cacheMetrics) {
7373
Metric metric = new Metric(MetricPathUtils.getMetricName(metricPath), metricValue, metricPath, aggregationType, timeRollup, clusterRollup);
74-
baseMonitor.getConfiguration().getContext().putInMetricCache(metricPath, metric);
74+
baseMonitor.getContextConfiguration().getContext().putInMetricCache(metricPath, metric);
7575
}
7676
}
7777
addForDerivedMetricsCalculation(metricPath, metricValue);
@@ -117,10 +117,10 @@ public void printMetric(String metricPath, BigDecimal value, String metricType)
117117
}
118118

119119
public MetricWriter getMetricWriter(String metricPath, String aggregationType, String timeRollup, String clusterRollup) {
120-
MetricWriter writer = baseMonitor.getConfiguration().getContext().getFromWriterCache(metricPath);
120+
MetricWriter writer = baseMonitor.getContextConfiguration().getContext().getFromWriterCache(metricPath);
121121
if (writer == null) {
122122
writer = baseMonitor.getMetricWriter(metricPath, aggregationType, timeRollup, clusterRollup);
123-
baseMonitor.getConfiguration().getContext().putInWriterCache(metricPath, writer);
123+
baseMonitor.getContextConfiguration().getContext().putInWriterCache(metricPath, writer);
124124
}
125125
return writer;
126126
}
@@ -189,7 +189,7 @@ private String[] createMetricType(String metricType) {
189189
}
190190

191191
public Set<String> getMetricPaths() {
192-
ConcurrentMap<String, Metric> map = baseMonitor.getConfiguration().getContext().getCachedMetrics();
192+
ConcurrentMap<String, Metric> map = baseMonitor.getContextConfiguration().getContext().getCachedMetrics();
193193
if(map != null){
194194
return map.keySet();
195195
}

src/main/java/com/appdynamics/extensions/MetricWriteHelperFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121

22-
import static com.appdynamics.extensions.conf.ExtensionContext.isWorkbenchMode;
22+
import static com.appdynamics.extensions.conf.MonitorContext.isWorkbenchMode;
2323

2424
/**
2525
* Created by abey.tom on 3/20/16.

src/main/java/com/appdynamics/extensions/TaskInputArgs.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,7 @@ public class TaskInputArgs {
3434
public static final String URI = "uri";
3535
public static final String PORT = "port";
3636
public static final String USE_SSL = "useSsl";
37-
public static final String DISABLE_SSL_CERT_VALIDATION = "disable-ssl-cert-validation";
3837
public static final String METRIC_PREFIX = "metric-prefix";
39-
public static final String TRUST_STORE_FILE = "trust-store-file";
40-
public static final String TRUST_STORE_PWD = "trust-store-password";
41-
public static final String SSL_VERIFY_HOSTNAME = "ssl-verify-hostname";
42-
public static final String PROXY_URI = "proxy-uri";
43-
public static final String PROXY_HOST = "proxy-host";
44-
public static final String PROXY_PORT = "proxy-port";
45-
public static final String PROXY_USER = "proxy-username";
46-
public static final String PROXY_PASSWORD = "proxy-password";
47-
public static final String PROXY_PASSWORD_ENCRYPTED = "proxy-password-encrypted";
48-
public static final String PROXY_USE_SSL = "proxy-use-ssl";
49-
public static final String PROXY_AUTH_TYPE = "proxy-auth-type";
5038
public static final String ENCRYPTION_KEY = "encryptionKey";
5139
public static final String SSL_PROTOCOL = "sslProtocols";
5240

src/main/java/com/appdynamics/extensions/TasksExecutionServiceProvider.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,9 @@
1515

1616
package com.appdynamics.extensions;
1717

18-
import org.apache.commons.httpclient.util.ExceptionUtil;
19-
import org.apache.http.util.ExceptionUtils;
2018
import org.slf4j.Logger;
2119
import org.slf4j.LoggerFactory;
2220

23-
import java.io.PrintWriter;
24-
import java.io.StringWriter;
2521
import java.util.concurrent.atomic.AtomicInteger;
2622

2723
/*
@@ -45,7 +41,7 @@ public TasksExecutionServiceProvider(ABaseMonitor aBaseMonitor, MetricWriteHelpe
4541

4642

4743
public void submit(final String name, final AMonitorTaskRunnable aServerTask){
48-
aBaseMonitor.getConfiguration().getContext().getExecutorService().submit(name,new Runnable() {
44+
aBaseMonitor.getContextConfiguration().getContext().getExecutorService().submit(name,new Runnable() {
4945
@Override
5046
public void run() {
5147
try{

src/main/java/com/appdynamics/extensions/conf/ExtensionContext.java renamed to src/main/java/com/appdynamics/extensions/conf/MonitorContext.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
/**
2525
* Created by venkata.konala on 3/29/18.
2626
*/
27-
public class ExtensionContext {
27+
public class MonitorContext {
2828

29-
public static final Logger logger = LoggerFactory.getLogger(ExtensionContext.class);
29+
public static final Logger logger = LoggerFactory.getLogger(MonitorContext.class);
3030
public static final String EXTENSION_WORKBENCH_MODE = "extension.workbench.mode";
3131
private String monitorName;
3232
private Map<String, ?> config;
@@ -40,7 +40,7 @@ public class ExtensionContext {
4040
private DerivedMetricsModule derivedMetricsModule;
4141
private PerMinValueCalculatorModule perMinValueCalculatorModule;
4242

43-
public ExtensionContext(String monitorName){
43+
MonitorContext(String monitorName){
4444
this.monitorName = monitorName;
4545
workBenchModule = new WorkBenchModule();
4646
httpClientModule = new HttpClientModule();
@@ -62,7 +62,7 @@ public void initialize(AMonitorJob monitorJob, Map<String,?> config, String metr
6262
jobScheduleModule.initScheduledJob(config, monitorName, monitorJob);
6363
cacheModule.initCache();
6464
} else{
65-
logger.error("The configuration is not enabled {}", config);
65+
logger.error("The contextConfiguration is not enabled {}", config);
6666
}
6767

6868
}

src/main/java/com/appdynamics/extensions/conf/ExtensionContextConfiguration.java renamed to src/main/java/com/appdynamics/extensions/conf/MonitorContextConfiguration.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,10 @@
2727
/**
2828
* Created by venkata.konala on 3/29/18.
2929
*/
30-
public class ExtensionContextConfiguration {
30+
public class MonitorContextConfiguration {
3131

3232

33-
public static final Logger logger = LoggerFactory.getLogger(ExtensionContextConfiguration.class);
34-
private String monitorName;
33+
public static final Logger logger = LoggerFactory.getLogger(MonitorContextConfiguration.class);
3534
private File installDir;
3635
private AMonitorJob aMonitorJob;
3736
private Map<String, ?> configYml;
@@ -41,22 +40,19 @@ public class ExtensionContextConfiguration {
4140
private JAXBContext jaxbContext;
4241
private FileWatchListenerModule fileWatchListenerModule;
4342
private boolean enabled;
44-
private ExtensionContext context;
43+
private MonitorContext context;
4544

46-
public ExtensionContextConfiguration(String monitorName, String defaultMetricPrefix, File installDir, AMonitorJob aMonitorJob){
47-
this.monitorName = monitorName;
45+
public MonitorContextConfiguration(String monitorName, String defaultMetricPrefix, File installDir, AMonitorJob aMonitorJob){
4846
this.defaultMetricPrefix = defaultMetricPrefix;
4947
this.installDir = installDir;
50-
if(installDir == null){
51-
throw new RuntimeException("The install directory cannot be null");
52-
}
53-
fileWatchListenerModule = new FileWatchListenerModule();
54-
context = new ExtensionContext(monitorName);
48+
this.aMonitorJob = aMonitorJob;
49+
this.fileWatchListenerModule = new FileWatchListenerModule();
50+
this.context = new MonitorContext(monitorName);
5551
}
5652

5753
public void setConfigYml(String path){
5854
File configFile = resolvePath(path, installDir);
59-
logger.info("Loading the configuration from {}", configFile.getAbsolutePath());
55+
logger.info("Loading the contextConfiguration from {}", configFile.getAbsolutePath());
6056
Map<String, ?> rootElem = YmlReader.readFromFileAsMap(configFile);
6157
if(rootElem == null){
6258
logger.error("Unable to get data from the config file");
@@ -70,7 +66,7 @@ public void setConfigYml(String path){
7066
}
7167
else{
7268
this.enabled = false;
73-
logger.error("The configuration is not enabled {}", configYml);
69+
logger.error("The contextConfiguration is not enabled {}", configYml);
7470
}
7571
context.initialize(aMonitorJob, getConfigYml(), getMetricPrefix());
7672
}
@@ -120,7 +116,7 @@ private void setMetricPrefix(String metricPrefix, String defaultMetricPrefix){
120116
}
121117
logger.info("The metric prefix is initialized as {}", metricPrefix);
122118
if (Strings.isNullOrEmpty(metricPrefix)) {
123-
throw new IllegalArgumentException("The metricPrefix cannot be resolved. Please set it in the configuration");
119+
throw new IllegalArgumentException("The metricPrefix cannot be resolved. Please set it in the contextConfiguration");
124120
}
125121
}
126122

@@ -138,14 +134,14 @@ private File resolvePath(String path, File installDir) {
138134
}
139135

140136
public void registerListener(String path, FileWatchListener callback){
141-
fileWatchListenerModule.createListener(path , callback, installDir, context, 3000);
137+
fileWatchListenerModule.createListener(path , callback, installDir, 3000);
142138
}
143139

144140
public boolean isEnabled(){
145141
return enabled;
146142
}
147143

148-
public ExtensionContext getContext(){
144+
public MonitorContext getContext(){
149145
return context;
150146
}
151147

src/main/java/com/appdynamics/extensions/conf/modules/FileWatchListenerModule.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package com.appdynamics.extensions.conf.modules;
1717

1818
import com.appdynamics.extensions.MetricWriteHelper;
19-
import com.appdynamics.extensions.conf.ExtensionContext;
19+
import com.appdynamics.extensions.conf.MonitorContext;
2020
import com.appdynamics.extensions.file.FileWatchListener;
2121
import com.appdynamics.extensions.util.PathResolver;
2222
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
@@ -30,7 +30,7 @@
3030
import java.util.Map;
3131
import java.util.Set;
3232

33-
import static com.appdynamics.extensions.conf.ExtensionContext.isWorkbenchMode;
33+
import static com.appdynamics.extensions.conf.MonitorContext.isWorkbenchMode;
3434

3535
/**
3636
* Created by venkata.konala on 10/24/17.
@@ -43,12 +43,12 @@ public class FileWatchListenerModule {
4343
private FileAlterationMonitor monitor;
4444
private Integer fileWatcherInterval;
4545

46-
public void createListener(String path, FileWatchListener fileWatchListener, File installDir, ExtensionContext context, Integer fileWatcherInterval) {
46+
public void createListener(String path, FileWatchListener fileWatchListener, File installDir, Integer fileWatcherInterval) {
4747
this.fileWatcherInterval = fileWatcherInterval;
4848
File file = resolvePath(path, installDir);
4949
logger.debug("The path [{}] is resolved to file {}", path, file.getAbsolutePath());
5050
createListener(file, fileWatchListener);
51-
createWatcher(file, context);
51+
createWatcher(file);
5252
//Initialize it for the fisrt time
5353
fileWatchListener.onFileChange(file);
5454
}
@@ -69,7 +69,7 @@ private void createListener(File file, FileWatchListener fileWatchListener) {
6969
listenerMap.put(file, fileWatchListener);
7070
}
7171

72-
private void createWatcher(File file, final ExtensionContext context) {
72+
private void createWatcher(File file) {
7373
File dir = file.getParentFile();
7474
if (monitor == null) {
7575
initMonitor();
@@ -88,13 +88,6 @@ public void onFileChange(File file) {
8888
}
8989
} catch (Exception e) {
9090
logger.error("Error while invoking the file watch listener", e);
91-
} finally {
92-
if(context != null) {
93-
MetricWriteHelper workbench = context.getWorkBenchModule().getWorkBench();
94-
if (workbench != null) {
95-
workbench.reset();
96-
}
97-
}
9891
}
9992
}
10093
});

src/main/java/com/appdynamics/extensions/conf/modules/WorkBenchModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.appdynamics.extensions.workbench.metric.WorkbenchMetricStore;
2020
import java.util.Map;
2121

22-
import static com.appdynamics.extensions.conf.ExtensionContext.isWorkbenchMode;
22+
import static com.appdynamics.extensions.conf.MonitorContext.isWorkbenchMode;
2323

2424
/**
2525
* Created by venkata.konala on 10/24/17.

0 commit comments

Comments
 (0)