public static synchronized Class<?>[] getSubTypes(DrillConfig config) { List<String> packages = config.getStringList(CommonConstants.STORAGE_PLUGIN_CONFIG_SCAN_PACKAGES); Class<?>[] sec = PathScanner.scanForImplementationsArr(FormatPluginConfig.class, packages); logger.debug("Adding Format Plugin Configs including {}", (Object) sec); return sec; }
/** * Use reflection to scan for implementations of {@see FormatPlugin}. * * @param config - Drill configuration object, used to find the packages to scan * @return - list of classes that implement the interface. */ public static synchronized Class<?>[] getSubTypes(final DrillConfig config) { final List<String> packages = config.getStringList(CommonConstants.STORAGE_PLUGIN_CONFIG_SCAN_PACKAGES); final Class<?>[] pluginClasses = PathScanner.scanForImplementationsArr(FormatPluginConfig.class, packages); final String lineBrokenList = pluginClasses.length == 0 ? "" : "\n\t- " + Joiner.on("\n\t- ").join(pluginClasses); logger.debug( "Found {} format plugin configuration classes: {}.", pluginClasses.length, lineBrokenList); return pluginClasses; }