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