static void processInstallableClasses()

in disco-java-agent/disco-java-agent-core/src/main/java/software/amazon/disco/agent/plugin/PluginDiscovery.java [303:325]


    static void processInstallableClasses(String pluginName, String installableClassNames, boolean bootstrap, boolean runtimeOnly) throws Exception {
        if (installableClassNames != null) {
            String[] classNames = splitString(installableClassNames);
            for (String className: classNames) {
                if (runtimeOnly) {
                    log.info("DiSCo(Core) Installable/Package declared in plugin will be ignored because agent is configured as runtime only: " + className);
                    continue;
                }

                try {
                    Class<?> clazz = classForName(className.trim(), bootstrap);
                    if (Installable.class.isAssignableFrom(clazz) || Package.class.isAssignableFrom(clazz)) {
                        ClassInfo installableInfo = new ClassInfo(pluginName, clazz, bootstrap);
                        installableClasses.add(installableInfo);
                    } else {
                        log.warn("DiSCo(Core) specified Installable is not an instance of Installable or Package: " + className);
                    }
                } catch (ClassNotFoundException e) {
                    log.warn("DiSCo(Core) cannot locate Installable: " + className, e);
                }
            }
        }
    }