public ProgramCommandLine makeProgramCommandLine()

in sonar-plugin-agent/src/main/java/jetbrains/buildserver/sonarplugin/SQRBuildService.java [57:98]


    public ProgramCommandLine makeProgramCommandLine() throws RunBuildException {
        final String jdkHome = getRunnerContext().getRunnerParameters().get(JavaRunnerConstants.TARGET_JDK_HOME);
        if (jdkHome != null) {
            getRunnerContext().addEnvironmentVariable("JAVA_HOME", jdkHome);
        }

        final String sonarScannerRoot = getSonarScannerRoot();
        if (sonarScannerRoot == null) {
            throw new RunBuildException("No SonarQube Scanner selected");
        }
        final AgentRunningBuild agentBuild = getBuild();
        Map<String, String> environmentVariables = new HashMap<>(getRunnerContext().getBuildParameters().getEnvironmentVariables());
        final List<String> programArgs = composeSQRArgs(getRunnerContext().getRunnerParameters(), agentBuild.getSharedConfigParameters(), sonarScannerRoot, agentBuild.getBuildTempDirectory(), environmentVariables);

        final boolean useScanner = isUseScannerMain(sonarScannerRoot);
        final JavaCommandLineBuilder builder = new JavaCommandLineBuilder();

        String agentHomePath = myBuildAgentConfiguration.getAgentHomeDirectory().getPath();
        String syncCertPathToFolder = TrustedCertificatesDirectory.getServerCertificatesDirectoryFromHome(agentHomePath);
        Path pathToTemporaryTrustStore = SSLTools.cloneKeyStoreWithTC(jdkHome, syncCertPathToFolder);
        List<String> jvmAgrs = new ArrayList<>(JavaRunnerUtil.extractJvmArgs(getRunnerContext().getRunnerParameters()));
        if (pathToTemporaryTrustStore != null)
            jvmAgrs.add("-Djavax.net.ssl.trustStore=" + pathToTemporaryTrustStore);


        final ProgramCommandLine build = builder.withClassPath(getClasspath())
                                                .withMainClass(getMainClass(useScanner))
                                                .withJavaHome(jdkHome)
                                                .withBaseDir(agentBuild.getCheckoutDirectory().getAbsolutePath())
                                                .withEnvVariables(environmentVariables)
                                                .withJvmArgs(jvmAgrs)
                                                .withClassPath(getClasspath())
                                                .withProgramArgs(programArgs)
                                                .withWorkingDir(getRunnerContext().getWorkingDirectory().getAbsolutePath()).build();

        getLogger().message("Starting SQS from " + sonarScannerRoot);
        for (String str : build.getArguments()) {
            getLogger().message(str);
        }

        return build;
    }