in disco-java-agent/disco-java-agent-core/src/main/java/software/amazon/disco/agent/plugin/PluginDiscovery.java [95:128]
public static void scan(Instrumentation instrumentation, AgentConfig config) {
installableClasses = new LinkedList<>();
initClasses = new LinkedList<>();
listenerClasses = new LinkedList<>();
pluginOutcomes = new HashMap<>();
try {
if (config.getPluginPath() == null) {
log.info("DiSCo(Core) no plugin path specified, skipping plugin scan");
return;
}
File pluginDir = new File(config.getPluginPath());
if (!pluginDir.isDirectory()) {
log.warn("DiSCo(Core) invalid plugin path specified, skipping plugin scan");
return;
}
File[] files = pluginDir.listFiles();
if (files != null) {
for (File jarFile : files) {
if (jarFile.getName().substring(jarFile.getName().lastIndexOf(".")).equalsIgnoreCase(".jar")) {
processJarFile(instrumentation, jarFile, config.isRuntimeOnly());
} else {
//ignore non JAR file
log.info("DiSCo(Core) non JAR file found on plugin path, skipping this file");
}
}
}
} catch (Throwable t) {
//safely do nothing
log.error("DiSCo(Core) error while processing plugins", t);
}
}