private void load()

in core/src/main/java/com/epam/cme/mdp3/core/cfg/Configuration.java [46:69]


    private void load(final URI uri) throws ConfigurationException, MalformedURLException {
        // todo: if to implement the same via standard JAXB then dep to apache commons configuration will be not required
        final XMLConfiguration configuration = new XMLConfiguration();
        configuration.setDelimiterParsingDisabled(true);
        configuration.load(uri.toURL());
        for (final HierarchicalConfiguration channelCfg : configuration.configurationsAt("channel")) {
            final ChannelCfg channel = new ChannelCfg(channelCfg.getString("[@id]"), channelCfg.getString("[@label]"));

            for (final HierarchicalConfiguration connCfg : channelCfg.configurationsAt("connections.connection")) {
                final String id = connCfg.getString("[@id]");
                final FeedType type = FeedType.valueOf(connCfg.getString("type[@feed-type]"));
                final TransportProtocol protocol = TransportProtocol.valueOf(connCfg.getString("protocol").substring(0, 3));
                final Feed feed = Feed.valueOf(connCfg.getString("feed"));
                final String ip = connCfg.getString("ip");
                final int port = connCfg.getInt("port");
                final List<String> hostIPs = Arrays.asList(connCfg.getStringArray("host-ip"));

                final ConnectionCfg connection = new ConnectionCfg(feed, id, type, protocol, ip, hostIPs, port);
                channel.addConnection(connection);
                connCfgs.put(connection.getId(), connection);
            }
            channelCfgs.put(channel.getId(), channel);
        }
    }