@Override public final void initializeFromJson(JsonNode node) { // Node must be an object node if (node instanceof ObjectNode) { for (Iterator<Map.Entry<String, JsonNode>> fieldItr = node.fields(); fieldItr.hasNext();) { Map.Entry<String, JsonNode> field = fieldItr.next(); String name = field.getKey(); JsonNode dsNode = field.getValue(); LOGGER.debug("Parsing {}", name); JsonNode typeNode = dsNode.get("type"); if (typeNode == null) { throw new IllegalArgumentException("type expected in " + name); } String type = typeNode.asText(); LOGGER.debug("{} is a {}", name, type); try { Class clazz = Thread.currentThread().getContextClassLoader().loadClass(type); DataSourceConfiguration ds = (DataSourceConfiguration) clazz.newInstance(); ds.initializeFromJson(dsNode); datasources.put(name, ds); } catch (Exception e) { throw new IllegalArgumentException(dsNode + ":" + e); } } } else { throw new IllegalArgumentException("node must be instanceof ObjectNode: " + node.toString()); } } }
private synchronized void initializeParser() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, IOException, InstantiationException { if (parser == null) { Extensions<JsonNode> extensions = new Extensions<>(); extensions.addDefaultExtensions(); Map<String, DataSourceConfiguration> ds = datasources.getDataSources(); for (Map.Entry<String, DataSourceConfiguration> entry : ds.entrySet()) { Class<? extends DataStoreParser> tempParser = entry.getValue().getMetadataDataStoreParser(); DataStoreParser backendParser = tempParser.newInstance(); extensions.registerDataStoreParser(backendParser.getDefaultName(), backendParser); } parser = new JSONMetadataParser(extensions, new DefaultTypes(), NODE_FACTORY); } }
private synchronized void initializeParser() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, IOException, InstantiationException { if (parser == null) { Extensions<JsonNode> extensions = new Extensions<>(); extensions.addDefaultExtensions(); Map<String, DataSourceConfiguration> ds = datasources.getDataSources(); for (Map.Entry<String, DataSourceConfiguration> entry : ds.entrySet()) { Class<? extends DataStoreParser> tempParser = entry.getValue().getMetadataDataStoreParser(); DataStoreParser backendParser = tempParser.newInstance(); injectDependencies(backendParser); extensions.registerDataStoreParser(backendParser.getDefaultName(), backendParser); } parser = new JSONMetadataParser(extensions, new DefaultTypes(), NODE_FACTORY); } }
private synchronized void initializeParser() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, IOException, InstantiationException { if (parser == null) { Extensions<JsonNode> extensions = new Extensions<>(); extensions.addDefaultExtensions(); Map<String, DataSourceConfiguration> ds = datasources.getDataSources(); for (Map.Entry<String, DataSourceConfiguration> entry : ds.entrySet()) { Class<? extends DataStoreParser> tempParser = entry.getValue().getMetadataDataStoreParser(); DataStoreParser backendParser = tempParser.newInstance(); injectDependencies(backendParser); extensions.registerDataStoreParser(backendParser.getDefaultName(), backendParser); } parser = new JSONMetadataParser(extensions, new DefaultTypes(), NODE_FACTORY); } }
@Override public final void initializeFromJson(JsonNode node) { // Node must be an object node if (node instanceof ObjectNode) { for (Iterator<Map.Entry<String, JsonNode>> fieldItr = node.fields(); fieldItr.hasNext();) { Map.Entry<String, JsonNode> field = fieldItr.next(); String name = field.getKey(); JsonNode dsNode = field.getValue(); LOGGER.debug("Parsing {}", name); JsonNode typeNode = dsNode.get("type"); if (typeNode == null) { throw new IllegalArgumentException("type expected in " + name); } String type = typeNode.asText(); LOGGER.debug("{} is a {}", name, type); try { Class clazz = Thread.currentThread().getContextClassLoader().loadClass(type); DataSourceConfiguration ds = (DataSourceConfiguration) clazz.newInstance(); ds.initializeFromJson(dsNode); datasources.put(name, ds); } catch (Exception e) { throw new IllegalArgumentException(dsNode + ":" + e); } } } else { throw new IllegalArgumentException("node must be instanceof ObjectNode: " + node.toString()); } } }
@Override public final void initializeFromJson(JsonNode node) { // Node must be an object node if (node instanceof ObjectNode) { for (Iterator<Map.Entry<String, JsonNode>> fieldItr = node.fields(); fieldItr.hasNext();) { Map.Entry<String, JsonNode> field = fieldItr.next(); String name = field.getKey(); JsonNode dsNode = field.getValue(); LOGGER.debug("Parsing {}", name); JsonNode typeNode = dsNode.get("type"); if (typeNode == null) { throw new IllegalArgumentException("type expected in " + name); } String type = typeNode.asText(); LOGGER.debug("{} is a {}", name, type); try { Class clazz = Class.forName(type); DataSourceConfiguration ds = (DataSourceConfiguration) clazz.newInstance(); ds.initializeFromJson(dsNode); datasources.put(name, ds); } catch (Exception e) { throw new IllegalArgumentException(dsNode + ":" + e); } } } else { throw new IllegalArgumentException("node must be instanceof ObjectNode: " + node.toString()); } } }