@Override public Platform deserialize(JSONObject json, Class<? extends Platform> cls) { return ReflectionUtils.evaluate(cls.getCanonicalName() + ".getInstance()"); } };
private static void bootstrapPlugins(Configuration configuration) { configuration.setPlatformProvider(new ExplicitCollectionProvider<>(configuration)); configuration.setMappingProvider(new ExplicitCollectionProvider<>(configuration)); configuration.setChannelConversionProvider(new ExplicitCollectionProvider<>(configuration)); try { Plugin basicPlugin = ReflectionUtils.evaluate(BASIC_PLUGIN); basicPlugin.configure(configuration); } catch (Exception e) { if (logger.isDebugEnabled()) { logger.debug("Could not load basic plugin.", e); } else { logger.warn("Could not load basic plugin."); } } }
DynamicPlugin.<List<String>>ifPresent(platforms.get("include"), List.class, expressions -> { for (String expression : expressions) { Object eval = ReflectionUtils.evaluate(expression); if (eval instanceof Platform) { plugin.addRequiredPlatform((Platform) eval); DynamicPlugin.<List<String>>ifPresent(platforms.get("exclude"), List.class, expressions -> { for (String expression : expressions) { Object eval = ReflectionUtils.evaluate(expression); if (eval instanceof Platform) { plugin.excludeRequiredPlatform((Platform) eval); DynamicPlugin.<List<String>>ifPresent(mappings.get("include"), List.class, expressions -> { for (String expression : expressions) { Object eval = ReflectionUtils.evaluate(expression); if (eval instanceof Mapping) { plugin.addMapping((Mapping) eval); DynamicPlugin.<List<String>>ifPresent(mappings.get("exclude"), List.class, expressions -> { for (String expression : expressions) { Object eval = ReflectionUtils.evaluate(expression); if (eval instanceof Mapping) { plugin.excludeMapping((Mapping) eval); DynamicPlugin.<List<String>>ifPresent(conversions.get("include"), List.class, expressions -> { for (String expression : expressions) { Object eval = ReflectionUtils.evaluate(expression); if (eval instanceof ChannelConversion) { plugin.addChannelConversion((ChannelConversion) eval);