com.retroduction.carma.application.Carma.java Source code

Java tutorial

Introduction

Here is the source code for com.retroduction.carma.application.Carma.java

Source

/**
  *  This file is part of Carma (Retroduction.org).
  *
  *  Carma is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
  *  Carma is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with Carma.  If not, see <http://www.gnu.org/licenses/>.
  *
  * Copyright Retroduction.org (c) 2007-2010
  */

package com.retroduction.carma.application;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.ParseException;

import com.retroduction.carma.application.util.CLIValidator;
import com.retroduction.carma.core.Core;

public class Carma {

    private static final String DEFAULT_USER_CONFIG = "carma.properties";

    /**
     * command line test runner, reads configuration from mutationconfig.xml
     * 
     * @throws ParseException
     * @throws IOException
     */
    public static void main(String[] args) throws ParseException {

        CommandLine line = new CLIValidator().readCLI(args);

        File customPropertiesFile;
        if (line.hasOption(CLIValidator.USER_CONFIG_OPTION_SHORT)) {
            customPropertiesFile = new File(line.getOptionValue(CLIValidator.USER_CONFIG_OPTION_SHORT));
        } else {
            customPropertiesFile = new File(DEFAULT_USER_CONFIG);
        }

        CarmaDriverSetup setup = new CarmaDriverSetup();

        Properties customProps = new Properties();
        try {
            customProps.load(new FileInputStream(customPropertiesFile));

        } catch (IOException e) {
            throw new CarmaException("Failed to load configuration", e);
        }
        setup.addCustomConfiguration(customProps);
        Core driver = setup.getDriver();
        driver.execute();

    }

}