Example usage for org.apache.commons.configuration HierarchicalConfiguration getInt

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getInt

Introduction

In this page you can find the example usage for org.apache.commons.configuration HierarchicalConfiguration getInt.

Prototype

public int getInt(String key) 

Source Link

Usage

From source file:Cresendo.java

public static void main(String[] args) {
    String cfgFileReceiver = null; // Path to config file for eif receiver agent
    String cfgFileEngine = null; // Path to config file for xml event engine
    Options opts = null; // Command line options
    HelpFormatter hf = null; // Command line help formatter

    // Setup the message record which will contain text written to the log file
    ////www  . j  a v a2  s  . c  o m
    // The message logger object is created when the "-l" is processed
    // as this object need to be associated with a log file
    //
    LogRecord msg = new LogRecord(LogRecord.TYPE_INFO, "Cresendo", "main", "", "", "", "", "");

    // Get the directory separator (defaults to "/")
    //
    dirSep = System.getProperty("file.separator", "/");

    // Initialise the structure containing the event handler objects
    //
    Vector<IEventHandler> eventHandler = new Vector<IEventHandler>(10, 10);

    // Process the command line arguments
    //
    try {
        opts = new Options();
        hf = new HelpFormatter();

        opts.addOption("h", "help", false, "Command line arguments help");
        opts.addOption("i", "instance name", true, "Name of cresendo instance");
        opts.addOption("l", "log dir", true, "Path to log file directory");
        opts.addOption("c", "config dir", true, "Path to configuarion file directory");

        opts.getOption("l").setRequired(true);
        opts.getOption("c").setRequired(true);

        BasicParser parser = new BasicParser();
        CommandLine cl = parser.parse(opts, args);

        // Print out some help and exit
        //
        if (cl.hasOption('h')) {
            hf.printHelp("Options", opts);
            System.exit(0);
        }

        // Set the instance name
        //
        if (cl.hasOption('i')) {
            instanceName = cl.getOptionValue('i'); // Set to something other than "default"
        }

        // Setup the message and trace logging objects for the EventEngine
        //
        if (cl.hasOption('l')) {
            // Setup the the paths to the message, trace and status log files
            //
            logDir = cl.getOptionValue("l");

            logPath = logDir + dirSep + instanceName + "-engine.log";
            tracePath = logDir + dirSep + instanceName + "-engine.trace";
            statusPath = logDir + dirSep + instanceName + "-engine.status";
        } else {
            // NOTE:  This should be picked up by the MissingOptionException catch below
            //        but I couldn't get this to work so I added the following code:
            //
            hf.printHelp("Option 'l' is a required option", opts);
            System.exit(1);
        }

        // Read the receiver and engine config files in the config directory
        //
        if (cl.hasOption('c')) {
            // Setup and check path to eif config file for TECAgent receiver object
            //
            configDir = cl.getOptionValue("c");
            cfgFileReceiver = configDir + dirSep + instanceName + ".conf";
            checkConfigFile(cfgFileReceiver);

            // Setup and check path to xml config file for the EventEngine
            //
            cfgFileEngine = cl.getOptionValue("c") + dirSep + instanceName + ".xml";
            checkConfigFile(cfgFileEngine);

        } else {
            // NOTE:  This should be picked up by the MissingOptionException catch below
            //        but I couldn't get this to work so I added the following code:
            //
            hf.printHelp("Option 'c' is a required option", opts);
            System.exit(1);
        }
    } catch (UnrecognizedOptionException e) {
        hf.printHelp(e.toString(), opts);
        System.exit(1);
    } catch (MissingOptionException e) {
        hf.printHelp(e.toString(), opts);
        System.exit(1);
    } catch (MissingArgumentException e) {
        hf.printHelp(e.toString(), opts);
        System.exit(1);
    } catch (ParseException e) {
        e.printStackTrace();
        System.exit(1);
    } catch (Exception e) {
        System.err.println(e.toString());
        System.exit(1);
    }

    // Main program
    //
    try {
        // =====================================================================
        // Setup the message, trace and status logger objects
        //
        try {
            msgHandler = new FileHandler("cresendo", "message handler", logPath);
            msgHandler.openDevice();

            msgLogger = new MessageLogger("cresendo", "message log");
            msgLogger.addHandler(msgHandler);

            trcHandler = new FileHandler("cresendo", "trace handler", tracePath);
            trcHandler.openDevice();

            trcLogger = new TraceLogger("cresendo", "trace log");
            trcLogger.addHandler(trcHandler);

            statLogger = new StatusLogger(statusPath);
        } catch (Exception e) {
            System.err.println(e.toString());
            System.exit(1);
        }

        // Add the shutdown hook
        //
        Runtime.getRuntime().addShutdownHook(new ShutdownThread(msgLogger, instanceName));

        // ---------------------------------------------------------------------
        // =====================================================================
        // Load and parse the xml event engine configuration file
        //
        //
        msg.setText("Loading xml engine from: '" + cfgFileEngine + "'");

        try {
            XMLConfiguration xmlProcessor = new XMLConfiguration();
            xmlProcessor.setFileName(cfgFileEngine);

            // Validate the xml against a document type declaration
            //
            xmlProcessor.setValidating(true);

            // Don't interpolate the tag contents by splitting them on a delimiter
            // (ie by default a comma)
            //
            xmlProcessor.setDelimiterParsingDisabled(true);

            // This will throw a ConfigurationException if the xml document does not
            // conform to its dtd.  By doing this we hopefully catch any errors left
            // behind after the xml configuration file has been edited.
            //
            xmlProcessor.load();

            // Setup the trace flag
            //
            ConfigurationNode engine = xmlProcessor.getRootNode();
            List rootAttribute = engine.getAttributes();

            for (Iterator it = rootAttribute.iterator(); it.hasNext();) {
                ConfigurationNode attr = (ConfigurationNode) it.next();

                String attrName = attr.getName();
                String attrValue = (String) attr.getValue();

                if (attrValue == null || attrValue == "") {
                    System.err.println("\n  Error: The value of the attribute '" + attrName + "'"
                            + "\n         in the xml file '" + cfgFileEngine + "'" + "\n         is not set");
                    System.exit(1);
                }

                if (attrName.matches("trace")) {
                    if (attrValue.matches("true") || attrValue.matches("on")) {
                        trcLogger.setLogging(true);
                    }
                }

                if (attrName.matches("status")) {
                    if (attrValue.matches("true") || attrValue.matches("on")) {
                        statLogger.setLogging(true);
                    } else {
                        statLogger.setLogging(false);
                    }
                }

                if (attrName.matches("interval")) {
                    if (!attrValue.matches("[0-9]+")) {
                        System.err.println("\n  Error: The value of the interval attribute in: '"
                                + cfgFileEngine + "'" + "\n         should only contain digits from 0 to 9."
                                + "\n         It currently contains: '" + attrValue + "'");
                        System.exit(1);
                    }

                    statLogger.setInterval(Integer.parseInt(attrValue));
                }
            }

            // Now build and instantiate the list of classes that will process events
            // received by the TECAgent receiver in a chain like manner.
            //
            List classes = xmlProcessor.configurationsAt("class");

            for (Iterator it = classes.iterator(); it.hasNext();) {
                HierarchicalConfiguration sub = (HierarchicalConfiguration) it.next();

                // sub contains now all data contained in a single <class></class> tag set
                //
                String className = sub.getString("name");

                // Log message
                //
                msg.setText(msg.getText() + "\n  Instantiated event handler class: '" + className + "'");

                // The angle brackets describing the class of object held by the
                // Vector are implemented by Java 1.5 and have 2 effects.
                //
                // 1. The list accepts only elements of that class and nothing else
                // (Of course thanks to Auto-Wrap you can also add double-values)
                //
                // 2. the get(), firstElement() ... Methods don't return a Object, but
                //    they deliver an element of the class.
                //
                Vector<Class> optTypes = new Vector<Class>(10, 10);
                Vector<Object> optValues = new Vector<Object>(10, 10);

                for (int i = 0; i <= sub.getMaxIndex("option"); i++) {
                    Object optValue = null;
                    String optVarName = sub.getString("option(" + i + ")[@varname]");
                    String optJavaType = sub.getString("option(" + i + ")[@javatype]");

                    // Use the specified java type in order to make the method call
                    // to the heirarchical sub object [painful :-((]
                    //
                    if (optJavaType.matches("byte")) {
                        optTypes.addElement(byte.class);
                        optValue = sub.getByte("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("short")) {
                        optTypes.addElement(byte.class);
                        optValue = sub.getShort("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("int")) {
                        optTypes.addElement(int.class);
                        optValue = sub.getInt("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("long")) {
                        optTypes.addElement(long.class);
                        optValue = sub.getLong("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("float")) {
                        optTypes.addElement(float.class);
                        optValue = sub.getFloat("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0.0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("double")) {
                        optTypes.addElement(double.class);
                        optValue = sub.getDouble("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = 0.0; // Set to something nullish
                        }
                    } else if (optJavaType.matches("boolean")) {
                        optTypes.addElement(boolean.class);
                        optValue = sub.getBoolean("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = false; // Set to something nullish
                        }
                    } else if (optJavaType.matches("String")) {
                        optTypes.addElement(String.class);
                        optValue = sub.getString("option(" + i + ")");

                        if (optValue == null) // Catch nulls
                        {
                            optValue = ""; // Set it to something nullish
                        }
                    } else {
                        System.err.println(
                                "Error: Unsupported java type found in xml config: '" + optJavaType + "'");
                        System.exit(1);
                    }

                    // Add option value element
                    //
                    //              System.out.println("Option value is: '" + optValue.toString() + "'\n");
                    //
                    optValues.addElement(optValue);

                    // Append to message text
                    //
                    String msgTemp = msg.getText();
                    msgTemp += "\n      option name: '" + optVarName + "'";
                    msgTemp += "\n      option type: '" + optJavaType + "'";
                    msgTemp += "\n     option value: '" + optValues.lastElement().toString() + "'";
                    msg.setText(msgTemp);
                }

                try {
                    // Instantiate the class with the java reflection api
                    //
                    Class klass = Class.forName(className);

                    // Setup an array of paramater types in order to retrieve the matching constructor
                    //
                    Class[] types = optTypes.toArray(new Class[optTypes.size()]);

                    // Get the constructor for the class which matches the parameter types
                    //
                    Constructor konstruct = klass.getConstructor(types);

                    // Create an instance of the event handler
                    //
                    IEventHandler eventProcessor = (IEventHandler) konstruct.newInstance(optValues.toArray());

                    // Add the instance to the list of event handlers
                    //
                    eventHandler.addElement(eventProcessor);

                } catch (InvocationTargetException e) {
                    System.err.println("Error: " + e.toString());
                    System.exit(1);
                } catch (ClassNotFoundException e) {
                    System.err.println("Error: class name not found: '" + className + "' \n" + e.toString());
                    System.exit(1);
                } catch (Exception e) {
                    System.err.println(
                            "Error: failed to instantiate class: '" + className + "' \n" + e.toString());
                    System.exit(1);
                }
            }
        } catch (ConfigurationException cex) // Something went wrong loading the xml file
        {
            System.err.println("\n" + "Error loading XML file: " + cfgFileEngine + "\n" + cex.toString());
            System.exit(1);
        } catch (Exception e) {
            System.err.println(e.toString());
            System.exit(1);
        }

        // ---------------------------------------------------------------------
        // =====================================================================
        // Setup the TECAgent receiver 
        // 
        Reader cfgIn = null;

        try {
            cfgIn = new FileReader(cfgFileReceiver);
        } catch (Exception e) {
            System.err.println(e.toString());
            System.exit(1);
        }

        // Start the TECAgent receiver and register the event engine handler
        //
        TECAgent receiver = new TECAgent(cfgIn, TECAgent.RECEIVER_MODE, false);

        EventEngine ee = new EventEngine(eventHandler, msgLogger, trcLogger);

        receiver.registerListener(ee);

        // Construct message and send it to the message log
        //
        String text = "\n  Cresendo instance '" + instanceName + "' listening for events on port '"
                + receiver.getConfigVal("ServerPort") + "'";

        msg.setText(msg.getText() + text);
        msgLogger.log(msg); // Send message to log

        // ---------------------------------------------------------------------
        // =====================================================================
        // Initiate status logging
        //
        if (statLogger.isLogging()) {
            int seconds = statLogger.getInterval();

            while (true) {
                try {
                    statLogger.log();
                } catch (Exception ex) {
                    System.err.println("\n  An error occurred while writing to '" + statusPath + "'" + "\n  '"
                            + ex.toString() + "'");
                }

                Thread.sleep(seconds * 1000); // Convert sleep time to milliseconds
            }
        }

        // ---------------------------------------------------------------------
    } catch (Exception e) {
        System.err.println(e.toString());
        System.exit(1);
    }
}

From source file:edu.cwru.sepia.Main.java

private static Agent[] getAgents(HierarchicalConfiguration config) {
    String[] participatingAgents = config.getStringArray("agents.ParticipatingAgents");
    Agent[] agents = new Agent[participatingAgents.length];

    for (int i = 0; i < participatingAgents.length; i++) {
        String key = "agents." + participatingAgents[i];
        HierarchicalConfiguration agentConfig = config.configurationAt(key);
        String className = agentConfig.getString("ClassName");
        int playerId = agentConfig.getInt("PlayerId");
        String[] arguments = agentConfig.getStringArray("ConstructorArguments");
        try {/*ww w.  j a v a  2s  .  com*/
            Class<?> classDef = Class.forName(className);
            Agent agent = null;
            try {
                if (arguments != null && arguments.length != 0)
                    agent = (Agent) classDef.getConstructor(int.class, String[].class).newInstance(playerId,
                            arguments);
            } catch (Exception e) {
            }
            if (agent == null) {
                @SuppressWarnings("unchecked")
                Constructor<? extends Agent> constructor = (Constructor<? extends Agent>) classDef
                        .getConstructor(int.class);
                agent = (Agent) constructor.newInstance(playerId);
            }
            agents[i] = agent;
        } catch (Exception ex) {
            String errorMessage = String.format("Unable to instantiate %s with playerId %d%s.", className,
                    playerId,
                    (arguments == null ? "" : " and additional arguments " + Arrays.toString(arguments)));
            logger.log(Level.SEVERE, errorMessage, ex);
            throw new RuntimeException(ex);//make sure the program fails and the error gets propagated
        }
        agents[i].setConfiguration(agentConfig);
    }

    return agents;
}

From source file:com.tulskiy.musique.system.configuration.PlaylistConfiguration.java

public static List<Playlist> getPlaylists() {
    ArrayList<Playlist> playlists = new ArrayList<Playlist>();

    Configuration config = Application.getInstance().getConfiguration();

    Iterator pConfs = config.configurationsAt(getPlaylistKey()).iterator();
    while (pConfs.hasNext()) {
        Playlist playlist = new Playlist();
        playlist.setColumns(new LinkedList<PlaylistColumn>());

        HierarchicalConfiguration pConf = (HierarchicalConfiguration) pConfs.next();
        playlist.setName(pConf.getString("name", "Default"));
        playlist.setGroupBy(pConf.getString("groupBy"));
        playlist.setLibraryView(pConf.getBoolean("isLibraryView", false));

        Iterator cConfs = pConf.configurationsAt("columns.column").iterator();
        while (cConfs.hasNext()) {
            PlaylistColumn column = new PlaylistColumn();

            HierarchicalConfiguration cConf = (HierarchicalConfiguration) cConfs.next();
            column.setName(cConf.getString("name"));
            column.setExpression(cConf.getString("expression"));
            column.setSize(cConf.getInt("size"));
            column.setAllign(cConf.getInt("alignment"));

            playlist.getColumns().add(column);
        }/*  ww w .j  ava  2s. c  o m*/

        playlists.add(playlist);
    }

    return playlists;
}

From source file:com.sinfonier.util.XMLProperties.java

/**
 * Get Integer from xml configuration file.
 * /*from ww  w  . ja v a 2 s  .c o m*/
 * @param xml
 * @param property
 */
public static Integer getInt(HierarchicalConfiguration xml, String property) {
    if (xml.getString(property) == null || xml.getString(property).equals(""))
        throw new XMLConfigException("Error in XML Configuration. Property " + property + " null or empty");
    return xml.getInt(property);
}

From source file:au.id.hazelwood.xmltvguidebuilder.config.ConfigFactory.java

public Config create(File file) throws InvalidConfigException {
    try {/*w  w  w . j  a  v a2  s. c o m*/
        StopWatch stopWatch = new StopWatch();
        stopWatch.start();
        LOGGER.debug("Validating config file {}", file);
        schema.newValidator().validate(new StreamSource(file));
        LOGGER.debug("Loading config file {}", file);
        HierarchicalConfiguration configuration = new XMLConfiguration(file);
        int offset = configuration.getInt("listing.offset");
        int days = configuration.getInt("listing.days");
        int synopsis = configuration.getInt("listing.synopsis");
        String regionId = configuration.getString("listing.regionId");
        Map<Integer, ChannelConfig> channelConfigById = loadChannelConfigs(configuration);
        Config config = new Config(offset, days, synopsis, regionId,
                new ArrayList<>(channelConfigById.values()));
        LOGGER.debug("Loaded {} from {} in {}", config, file, formatDurationWords(stopWatch.getTime()));
        return config;
    } catch (Throwable e) {
        throw new InvalidConfigException(e.getMessage(), e);
    }
}

From source file:com.boozallen.cognition.ingest.storm.topology.ConfigurableIngestTopology.java

/**
 * Gets a topology builder and set of storm bolt configurations. Initializes the bolts and sets them with the
 * topology builder./*  w  ww.  ja  v  a 2  s.c  o  m*/
 *
 * @param builder   storm topology builder
 * @param boltsConf component configurations
 * @param spout     type of storm component being added (spout/bolt)
 * @throws ConfigurationException
 */
void configureBolts(TopologyBuilder builder, SubnodeConfiguration boltsConf, String spout)
        throws ConfigurationException {

    String prevComponent = spout;
    // bolts subscribe to other bolts by number
    HashMap<Integer, String> boltNumberToId = new HashMap<>();

    List<HierarchicalConfiguration> bolts = boltsConf.configurationsAt(BOLT);
    for (HierarchicalConfiguration bolt : bolts) {
        String boltType = bolt.getString(TYPE);
        Configuration boltConf = bolt.configurationAt(CONF);
        int boltNum = bolt.getInt(NUMBER_ATTRIBUTE);

        String boltId = String.format("%02d_%s", boltNum, boltType);
        boltNumberToId.put(boltNum, boltId);
        String subscribingToComponent = getSubscribingToComponent(prevComponent, boltNumberToId, boltConf);
        logger.info("{} subscribing to {}", boltId, subscribingToComponent);

        IComponent baseComponent = buildComponent(boltType, boltConf);

        StormParallelismConfig stormParallelismConfig = getStormParallelismConfig(boltConf);
        BoltDeclarer declarer = buildBoltDeclarer(builder, stormParallelismConfig, boltId, baseComponent);

        configureTickFrequency(boltConf, declarer);

        configureStreamGrouping(subscribingToComponent, boltConf, declarer);

        prevComponent = boltId;

        boltNum++;
    }
}

From source file:net.datenwerke.sandbox.util.SandboxParser.java

protected StackEntry getStackEntry(HierarchicalConfiguration stack) {
    int pos = stack.getInt("[@pos]");
    String stype = stack.getString("[@type]");
    Boolean prefix = stack.getBoolean("[@prefix]", false);

    return new StackEntry(pos, stype, Boolean.TRUE.equals(prefix));
}

From source file:com.sonicle.webtop.core.app.DataSourcesConfig.java

protected HikariConfig parseDataSource(HierarchicalConfiguration dsEl) throws ParseException {
    HikariConfig config = createHikariConfig();

    if (dsEl.containsKey("[@dataSourceClassName]")) { // Jdbc 4 configs
        config.setDataSourceClassName(dsEl.getString("[@dataSourceClassName]"));
        config.addDataSourceProperty("serverName", dsEl.getString("[@serverName]"));
        if (dsEl.containsKey("[@port]"))
            config.addDataSourceProperty("port", dsEl.getInt("[@port]"));
        config.addDataSourceProperty("databaseName", dsEl.getString("[@databaseName]"));

    } else if (dsEl.containsKey("[@driverClassName]")) { // Jdbc 3 configs
        config.setDriverClassName(dsEl.getString("[@driverClassName]"));
        config.setJdbcUrl(dsEl.getString("[@jdbcUrl]"));
    }/*ww  w.  j  a va2s .c  om*/

    if (dsEl.containsKey("[@username]"))
        config.setUsername(dsEl.getString("[@username]"));
    if (dsEl.containsKey("[@password]"))
        config.setPassword(dsEl.getString("[@password]"));

    if (!dsEl.isEmpty()) {
        List<HierarchicalConfiguration> elProps = dsEl.configurationsAt("property");
        Properties props = new Properties();
        for (HierarchicalConfiguration elProp : elProps) {
            if (elProp.containsKey("[@name]") && elProp.containsKey("[@value]")) {
                final String name = elProp.getString("[@name]");
                final String value = elProp.getString("[@value]");
                if (!StringUtils.isBlank(name)) {
                    props.setProperty(name, value);
                    logger.trace("property: {} -> {}", name, value);
                }
            }
        }
        PropertyElf.setTargetFromProperties(config, props);
    }

    // Common configs...
    /*
    if(dsEl.containsKey("[@autoCommit]")) config.setAutoCommit(dsEl.getBoolean("[@autoCommit]"));
    if(dsEl.containsKey("[@connectionTimeout]")) config.setConnectionTimeout(dsEl.getLong("[@connectionTimeout]"));
    if(dsEl.containsKey("[@idleTimeout]")) config.setIdleTimeout(dsEl.getLong("[@idleTimeout]"));
    if(dsEl.containsKey("[@maxLifetime]")) config.setMaxLifetime(dsEl.getLong("[@maxLifetime]"));
    if(dsEl.containsKey("[@minimumIdle]")) config.setMinimumIdle(dsEl.getInt("[@minimumIdle]"));
    if(dsEl.containsKey("[@maximumPoolSize]")) config.setMaximumPoolSize(dsEl.getInt("[@maximumPoolSize]"));
    */

    return config;
}

From source file:com.epam.cme.mdp3.core.cfg.Configuration.java

/**
 * Loads and parse CME MDP Configuration.
 *
 * @param uri URI to CME MDP Configuration (config.xml, usually available on CME FTP)
 * @throws ConfigurationException if failed to parse configuration file
 * @throws MalformedURLException  if URI to Configuration is malformed
 *///  ww w .  ja  v a  2 s.  co  m
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);
    }
}

From source file:ch.admin.suis.msghandler.config.ClientConfigurationFactory.java

private void setupNativeOutbox(Iterator j, String baseDir, String sedexId,
        SenderConfiguration defaultSenderConfiguration) throws ConfigurationException {

    final HierarchicalConfiguration outboxSub = (HierarchicalConfiguration) j.next();

    final MessageType messageType = new MessageType(outboxSub.getInt(".[@msgType]"));

    String resolverFile = outboxSub.getString(".recipientIdResolver[@filePath]");
    File scriptFile = FileUtils.createPath(baseDir, resolverFile);
    FileUtils.isFile(scriptFile, ".recipientIdResolver[@filePath]");
    final ScriptedNamingService resolver = new ScriptedNamingService(scriptFile,
            outboxSub.getString(".recipientIdResolver[@method]"));

    String outboxDir = outboxSub.getString(DIR_PATH);
    final Outbox outbox = new Outbox(FileUtils.createPath(baseDir, outboxDir), sedexId, messageType, resolver);

    LOG.info("participant ID resolver configured, " + resolver + " for outbox " + outbox.getDirectory());

    final String outboxCron = outboxSub.getString("[@cron]");
    if (null != outboxCron) {
        // the outbox defines its own cron, create a separate sender configuration for this outbox
        // create the sender configuration - with the cron from the outbox
        final SenderConfiguration senderConfiguration = new SenderConfiguration(outboxCron);
        senderConfiguration.addOutbox(outbox);

        // and add this configuration to the client config
        clientConfiguration.addSenderConfiguration(senderConfiguration);
        LOG.info("sender added, " + senderConfiguration);
    } else {//  ww  w  .j av  a2s .com
        // add this outbox to the default configuration
        defaultSenderConfiguration.addOutbox(outbox);
    }

    // the signing outboxes
    final List cfgSigningOutboxes = outboxSub.configurationsAt(".signingOutbox");

    setupSiginingOutbox(cfgSigningOutboxes, baseDir, outbox);
}