public void doMain()

in java/src/org/apache/qetest/xsl/XSLTestHarness.java [594:676]


    public void doMain(String args[])
    {
        // Must have at least one arg to continue
        if ((args == null) || (args.length == 0))
        {
            System.err.println("ERROR in usage: must have at least one argument");
            System.err.println(usage());
            return;
        }

        // Initialize ourselves and a list of tests to execute
        // Side effects: sets harnessProps, debug
        String tests[] = doTestHarnessInit(args);
        if (tests == null)
        {
            System.err.println("ERROR in usage: Problem during initialization - no tests!");
            System.err.println(usage());
            return;
        }

        // Use a separate copy of our properties to init our Reporter
        Properties reporterProps = (Properties)harnessProps.clone();

        // Ensure we have an XMLFileLogger if we have a logName
        String logF = reporterProps.getProperty(Logger.OPT_LOGFILE);

        if ((logF != null) && (!logF.equals("")))
        {
            // We should ensure there's an XMLFileReporter
            String r = reporterProps.getProperty(Reporter.OPT_LOGGERS);

            if (r == null)
            {
                reporterProps.put(Reporter.OPT_LOGGERS,
                              "org.apache.qetest.XMLFileLogger");
            }
            else if (r.indexOf("XMLFileLogger") <= 0)
            {
                reporterProps.put(Reporter.OPT_LOGGERS,
                              r + Reporter.LOGGER_SEPARATOR
                              + "org.apache.qetest.XMLFileLogger");
            }
        }

        // Ensure we have a ConsoleLogger unless asked not to
        // @todo improve and document this feature
        String noDefault = reporterProps.getProperty("noDefaultReporter");
        if (noDefault == null)
        {
            // We should ensure there's an XMLFileReporter
            String r = reporterProps.getProperty(Reporter.OPT_LOGGERS);

            if (r == null)
            {
                reporterProps.put(Reporter.OPT_LOGGERS,
                              "org.apache.qetest.ConsoleLogger");
            }
            else if (r.indexOf("ConsoleLogger") <= 0)
            {
                reporterProps.put(Reporter.OPT_LOGGERS,
                              r + Reporter.LOGGER_SEPARATOR
                              + "org.apache.qetest.ConsoleLogger");
            }
        }

        // A Reporter will auto-initialize from the values
        //  in the properties block
        reporter = new Reporter(reporterProps);
        reporter.addDefaultLogger();  // add default logger if needed

        // Call worker method to actually run all the tests
        // Worker method manages all it's own reporting, including 
        //  calling testFileInit/testFileClose
        boolean notUsed = runHarness(tests);

        // Tell user if a logFile should have been saved
        String logFile = reporterProps.getProperty(Logger.OPT_LOGFILE);
        if (logFile != null)
        {
            System.out.println("");
            System.out.println("Hey! A summary-harness logFile was written to: " + logFile);
        }
    }