Example usage for org.apache.commons.configuration AbstractFileConfiguration getProperty

List of usage examples for org.apache.commons.configuration AbstractFileConfiguration getProperty

Introduction

In this page you can find the example usage for org.apache.commons.configuration AbstractFileConfiguration getProperty.

Prototype

public Object getProperty(String key) 

Source Link

Usage

From source file:main.java.entry.ReadConfig.java

public static void readConfigFile(String file_name) {
    FileInputStream config_file = null;
    AbstractFileConfiguration config_param = null;

    Global.LOGGER.info("-----------------------------------------------------------------------------");
    Global.LOGGER.info("Reading simulation aspects from file ...");

    try {/*  w ww  . j  a  v  a2s. c  om*/
        // Access configuration file
        try {
            config_file = new FileInputStream(file_name);
            Global.LOGGER
                    .info("Simulation configuration file \"sim.cnf\" is found in the root directory and read.");

        } catch (IOException e) {
            e.printStackTrace();
            System.out.println(
                    "Simulation configuration file \"sim.cnf\" is missing in the working directory !!");
            System.exit(0);
        }

        // Load configuration parameters
        config_param = new PropertiesConfiguration();
        config_param.load(config_file);

        //Read the number of servers, partitions and replicas
        Global.simulation = (String) config_param.getProperty("simulation.name");
        Global.setup = (String) config_param.getProperty("setup");
        Global.servers = Integer.parseInt((String) config_param.getProperty("initial.servers"));
        Global.serverSSD = Integer.parseInt((String) config_param.getProperty("server.ssd"));
        Global.serverSSDCapacity = Integer.parseInt((String) config_param.getProperty("server.ssd.capacity"));
        Global.partitions = Integer.parseInt((String) config_param.getProperty("fixed.partitions"));
        Global.partitionCapacity = Integer
                .parseInt((String) config_param.getProperty("fixed.partition.capacity"));
        Global.replicas = Integer.parseInt((String) config_param.getProperty("number.of.replicas"));

        Global.LOGGER.info("-----------------------------------------------------------------------------");
        Global.LOGGER.info("Initial number of servers: " + Global.servers);
        Global.LOGGER.info(
                "Number of SSD in each server: " + Global.serverSSD + " " + Global.serverSSDCapacity + "GB");
        Global.LOGGER.info("Individual server's capacity: "
                + ((Global.serverSSD * Global.serverSSDCapacity) / 1000) + "GB");
        Global.LOGGER.info("Fixed number of partitions: " + Global.partitions);
        Global.LOGGER.info("Individual partition's capacity: " + (Global.partitionCapacity / 1000) + "GB");
        Global.LOGGER.info("Replication value: " + Global.replicas);

        // Workload execution parameters --  will be used in Workload Executor
        Global.simulationPeriod = Double.parseDouble((String) config_param.getProperty("simulation.period"));
        Global.warmupPeriod = Double.parseDouble((String) config_param.getProperty("warmup.period"));

        Global.meanInterArrivalTime = Double
                .parseDouble((String) config_param.getProperty("inverse.of.mean.inter.arrival.time"));
        Global.meanServiceTime = Double
                .parseDouble((String) config_param.getProperty("inverse.of.mean.service.time"));

        Global.percentageChangeInWorkload = Double
                .parseDouble((String) config_param.getProperty("percentage.change.in.workload"));
        //Global.adjustment = Double.parseDouble((String) config_param.getProperty("adjustment"));         
        Global.observationWindow = Integer
                .parseInt((String) config_param.getProperty("observation.window.size"));
        Global.uniqueMaxFixed = Integer.parseInt((String) config_param.getProperty("unique.max.fixed"));
        Global.expAvgWt = Double.parseDouble((String) config_param.getProperty("exponential.Avg.Weight"));
        Global.uniqueEnabled = Boolean.parseBoolean((String) config_param.getProperty("unique.enable"));

        Global.LOGGER.info("-----------------------------------------------------------------------------");
        Global.LOGGER.info("Simulation name: " + Global.simulation);
        Global.LOGGER
                .info("Simulation Period: " + (Global.simulationPeriod / Global.observationWindow) + " hrs");
        Global.LOGGER.info("Warmup time: " + (Global.warmupPeriod / Global.observationWindow) + " hrs");
        Global.LOGGER.info("-----------------------------------------------------------------------------");
        Global.LOGGER.info("Probability of Transaction birth and death: " + Global.percentageChangeInWorkload);
        Global.LOGGER.info("Mean inter Transaction arrival time: " + Global.meanInterArrivalTime);
        Global.LOGGER.info("Mean Transaction service time: " + Global.meanServiceTime);

        // Read configuration parameters
        Global.workloadAware = Boolean.parseBoolean((String) config_param.getProperty("workload.aware"));
        Global.workloadRepresentation = (String) config_param.getProperty("workload.representation");

        Global.LOGGER.info("-----------------------------------------------------------------------------");
        Global.LOGGER.info("Workload aware: " + Global.workloadAware);
        Global.LOGGER.info("Workload representation: " + Global.workloadRepresentation);

        if (Global.workloadAware) {

            Global.incrementalRepartitioning = Boolean
                    .parseBoolean((String) config_param.getProperty("incremental.repartitioning"));
            Global.graphcutBasedRepartitioning = Boolean
                    .parseBoolean((String) config_param.getProperty("graphcutbased.repartitioning"));

            Global.dynamicPartitioning = Boolean
                    .parseBoolean((String) config_param.getProperty("dynamic.partitioning"));
            Global.dynamicPartitions = Global.partitions; // Initialisation

            Global.repartStatic = Boolean
                    .parseBoolean((String) config_param.getProperty("static.repartitioning"));
            Global.repartHourly = Boolean
                    .parseBoolean((String) config_param.getProperty("hourly.repartitioning"));
            Global.repartThreshold = Boolean
                    .parseBoolean((String) config_param.getProperty("threshold.repartitioning"));

            Global.streamCollection = Boolean
                    .parseBoolean((String) config_param.getProperty("stream.collection"));
            Global.streamCollectorSizeFactor = Integer
                    .parseInt((String) config_param.getProperty("stream.collector.size.factor"));

            if (Global.streamCollection) {
                Global.dsm = new DataStreamMining();
                Global.associative = Boolean.parseBoolean((String) config_param.getProperty("associative"));
                Global.adaptive = Boolean.parseBoolean((String) config_param.getProperty("adaptive"));
            }

            Global.enableTrClassification = Boolean
                    .parseBoolean((String) config_param.getProperty("transaction.classification"));
            Global.trClassificationStrategy = (String) config_param
                    .getProperty("transaction.classification.strategy");

            Global.dataMigrationStrategy = (String) config_param.getProperty("data.migration.strategy");

            Global.compressionEnabled = Boolean
                    .parseBoolean((String) config_param.getProperty("compression.enabled"));
            Global.compressionBeforeSetup = Boolean
                    .parseBoolean((String) config_param.getProperty("compression.before.setup"));

            if (!Global.compressionBeforeSetup)
                Global.swordInitial = false;

            if (Global.incrementalRepartitioning) {
                Global.userDefinedIDtThreshold = Double
                        .parseDouble((String) config_param.getProperty("idt.threshold"));

                Global.spanReduction = Boolean
                        .parseBoolean((String) config_param.getProperty("span.reduction"));

                if (Global.spanReduction)
                    Global.spanReduce = Integer.parseInt((String) config_param.getProperty("span.reduce"));

                Global.lambda = Double.parseDouble((String) config_param.getProperty("lambda"));

                if (Global.lambda < 0 || Global.lambda > 1) {
                    Global.LOGGER.error("Wrong value set for 'lambda' !!");
                    System.exit(400);
                }
            }

            Global.LOGGER.info("-----------------------------------------------------------------------------");
            Global.LOGGER.info("Incremental repartitioning: " + Global.incrementalRepartitioning);
            Global.LOGGER.info("Static repartitioning: " + Global.repartStatic);
            Global.LOGGER.info("Hourly repartitioning: " + Global.repartHourly);
            Global.LOGGER.info("Threshold-based repartitioning: " + Global.repartThreshold);

            Global.LOGGER.info("-----------------------------------------------------------------------------");
            Global.LOGGER.info("Transaction classification: " + Global.enableTrClassification);
            Global.LOGGER.info("Transaction classification strategy: " + Global.trClassificationStrategy);

            Global.LOGGER.info("-----------------------------------------------------------------------------");
            Global.LOGGER.info("Data migration strategy: " + Global.dataMigrationStrategy);

            Global.LOGGER.info("-----------------------------------------------------------------------------");
            Global.LOGGER.info("Workload compression enabled: " + Global.compressionEnabled);
            Global.LOGGER.info("Compression before setup enabled: " + Global.compressionBeforeSetup);

            if (Global.compressionEnabled) {
                Global.compressionRatio = Double
                        .parseDouble((String) config_param.getProperty("compression.ratio"));
                Global.LOGGER.info("Compression ratio: " + Global.compressionRatio);
            }
        }
    } catch (ConfigurationException e) {
        Global.LOGGER.error("Failed to read the configurations from sim.cnf file !!", e);
    } finally {
        if (config_file != null) {
            try {
                config_file.close();
            } catch (IOException e) {
                Global.LOGGER.error("Failed to close the sim.cnf file !!", e);
            }
        }
    }
}