public static void scan()

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);
        }
    }