SurefireProperties setupProperties()

in maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java [1163:1209]


    SurefireProperties setupProperties() {
        SurefireProperties sysPropsFromFile = null;
        try {
            sysPropsFromFile = SurefireProperties.loadProperties(getSystemPropertiesFile());
        } catch (IOException e) {
            String msg = "The file '" + getSystemPropertiesFile().getAbsolutePath() + "' can't be read.";
            if (getConsoleLogger().isDebugEnabled()) {
                getConsoleLogger().debug(msg, e);
            } else {
                getConsoleLogger().warning(msg);
            }
        }

        SurefireProperties result = calculateEffectiveProperties(
                getSystemProperties(),
                getSystemPropertyVariables(),
                promoteUserPropertiesToSystemProperties ? getUserProperties() : new Properties(),
                sysPropsFromFile);

        result.setProperty("basedir", getBasedir().getAbsolutePath());
        result.setProperty("localRepository", getLocalRepositoryPath());
        if (isForking()) {
            for (Object o : result.propertiesThatCannotBeSetASystemProperties()) {
                if (getArgLine() == null || !getArgLine().contains("-D" + o + "=")) {
                    getConsoleLogger()
                            .warning(o + " cannot be set as system property, use <argLine>-D" + o
                                    + "=...</argLine> instead");
                }
            }
            for (Object systemPropertyMatchingArgLine : systemPropertiesMatchingArgLine(result)) {
                getConsoleLogger()
                        .warning("The system property "
                                + systemPropertyMatchingArgLine
                                + " is configured twice! "
                                + "The property appears in <argLine/> and any of <systemPropertyVariables/>, "
                                + "<systemProperties/> or user property.");
            }
        } else {
            result.setProperty("user.dir", getWorkingDirectory().getAbsolutePath());
        }

        if (getConsoleLogger().isDebugEnabled()) {
            showToLog(result, getConsoleLogger());
        }

        return result;
    }