aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2016-04-11 14:27:32 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2016-04-11 16:08:38 +0200
commitea7aefed7960719825584238ce311d4db71d0cae (patch)
treee83e33d5e32b4a9b62491de4b8cf578bff602f12
parente87f05efbc57e816503f74811bde44859c8f009b (diff)
downloadsonar-scanner-cli-ea7aefed7960719825584238ce311d4db71d0cae.tar.gz
sonar-scanner-cli-ea7aefed7960719825584238ce311d4db71d0cae.zip
SQSCANNER-7 SQSCANNER-6 Deprecate sonar-runner and SONAR_RUNNER_OPTS
And replace by sonar-scanner and SONAR_SCANNER_OPTS
-rw-r--r--appveyor.ps12
-rw-r--r--assembly.xml2
-rw-r--r--it/pom.xml2
-rw-r--r--it/src/test/java/com/sonar/runner/it/JavaTest.java57
-rw-r--r--it/src/test/java/com/sonar/runner/it/ScannerTestCase.java3
-rw-r--r--pom.xml4
-rwxr-xr-xsrc/main/assembly/bin/sonar-runner14
-rw-r--r--src/main/assembly/bin/sonar-runner.bat17
-rwxr-xr-xsrc/main/assembly/bin/sonar-scanner110
-rw-r--r--src/main/assembly/bin/sonar-scanner.bat97
-rw-r--r--src/main/assembly/conf/sonar-scanner.properties (renamed from src/main/assembly/conf/sonar-runner.properties)0
-rw-r--r--src/main/java/org/sonarsource/scanner/cli/Conf.java16
-rw-r--r--src/main/java/org/sonarsource/scanner/cli/Main.java6
-rw-r--r--src/main/java/org/sonarsource/scanner/cli/SystemInfo.java6
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/ConfTest.java10
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java6
-rw-r--r--src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-scanner.properties (renamed from src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-runner.properties)0
-rw-r--r--src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-scanner.properties (renamed from src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-runner.properties)0
-rwxr-xr-xtravis.sh1
19 files changed, 308 insertions, 45 deletions
diff --git a/appveyor.ps1 b/appveyor.ps1
index 7885abf..c3fa1d9 100644
--- a/appveyor.ps1
+++ b/appveyor.ps1
@@ -113,6 +113,8 @@ CALLSTACK:$(Get-PSCallStack | Out-String)
}
}
+BuildSnapshot "SonarSource/sonar-scanner-api"
+
switch ($env:RUN)
{
"ci"
diff --git a/assembly.xml b/assembly.xml
index e1ba25c..057789b 100644
--- a/assembly.xml
+++ b/assembly.xml
@@ -13,6 +13,7 @@
<outputDirectory>bin</outputDirectory>
<includes>
<include>sonar-runner.bat</include>
+ <include>sonar-scanner.bat</include>
</includes>
<lineEnding>dos</lineEnding>
<filtered>true</filtered>
@@ -22,6 +23,7 @@
<outputDirectory>bin</outputDirectory>
<includes>
<include>sonar-runner</include>
+ <include>sonar-scanner</include>
</includes>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
diff --git a/it/pom.xml b/it/pom.xml
index a336a74..14d38e7 100644
--- a/it/pom.xml
+++ b/it/pom.xml
@@ -31,7 +31,7 @@
<dependency>
<groupId>org.sonarsource.orchestrator</groupId>
<artifactId>sonar-orchestrator</artifactId>
- <version>3.10.1</version>
+ <version>3.11-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
diff --git a/it/src/test/java/com/sonar/runner/it/JavaTest.java b/it/src/test/java/com/sonar/runner/it/JavaTest.java
index e092ebb..001ed23 100644
--- a/it/src/test/java/com/sonar/runner/it/JavaTest.java
+++ b/it/src/test/java/com/sonar/runner/it/JavaTest.java
@@ -20,11 +20,12 @@
package com.sonar.runner.it;
import com.sonar.orchestrator.build.BuildResult;
-import com.sonar.orchestrator.build.SonarRunner;
+import com.sonar.orchestrator.build.SonarScanner;
import com.sonar.orchestrator.locator.ResourceLocation;
import java.io.File;
import java.io.IOException;
import java.util.List;
+import org.apache.commons.lang.SystemUtils;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
@@ -56,7 +57,7 @@ public class JavaTest extends ScannerTestCase {
orchestrator.getServer().provisionProject("java:sample", "Java Sample, with comma");
orchestrator.getServer().associateProjectToQualityProfile("java:sample", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.verbose", "true")
.addArguments("-e");
// SONARPLUGINS-3061
@@ -102,7 +103,7 @@ public class JavaTest extends ScannerTestCase {
orchestrator.getServer().provisionProject("java:bytecode", "Java Bytecode Sample");
orchestrator.getServer().associateProjectToQualityProfile("java:bytecode", "java", "requires-bytecode");
- SonarRunner build = newScanner(new File("projects/java-bytecode"));
+ SonarScanner build = newScanner(new File("projects/java-bytecode"));
orchestrator.executeBuild(build);
Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:bytecode").setMetrics("lcom4", "violations"));
@@ -134,7 +135,7 @@ public class JavaTest extends ScannerTestCase {
orchestrator.getServer().provisionProject("java:basedir-with-source", "Basedir with source");
orchestrator.getServer().associateProjectToQualityProfile("java:basedir-with-source", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/basedir-with-source"));
+ SonarScanner build = newScanner(new File("projects/basedir-with-source"));
orchestrator.executeBuild(build);
Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:basedir-with-source").setMetrics("files", "ncloc"));
@@ -151,7 +152,7 @@ public class JavaTest extends ScannerTestCase {
orchestrator.getServer().provisionProject("SAMPLE", "Java Sample, with comma");
orchestrator.getServer().associateProjectToQualityProfile("SAMPLE", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProjectKey("SAMPLE");
orchestrator.executeBuild(build);
@@ -165,7 +166,7 @@ public class JavaTest extends ScannerTestCase {
*/
@Test
public void should_override_working_dir_with_relative_path() {
- SonarRunner build = newScanner(new File("projects/override-working-dir"))
+ SonarScanner build = newScanner(new File("projects/override-working-dir"))
.setProperty("sonar.working.directory", ".overridden-relative-sonar");
orchestrator.executeBuild(build);
@@ -179,7 +180,7 @@ public class JavaTest extends ScannerTestCase {
@Test
public void should_override_working_dir_with_absolute_path() {
File projectHome = new File("projects/override-working-dir");
- SonarRunner build = newScanner(projectHome)
+ SonarScanner build = newScanner(projectHome)
.setProperty("sonar.working.directory", new File(projectHome, ".overridden-absolute-sonar").getAbsolutePath());
orchestrator.executeBuild(build);
@@ -192,7 +193,7 @@ public class JavaTest extends ScannerTestCase {
*/
@Test
public void should_fail_if_source_dir_does_not_exist() {
- SonarRunner build = newScanner(new File("projects/bad-source-dirs"));
+ SonarScanner build = newScanner(new File("projects/bad-source-dirs"));
BuildResult result = orchestrator.executeBuildQuietly(build);
assertThat(result.getStatus()).isNotEqualTo(0);
@@ -206,7 +207,7 @@ public class JavaTest extends ScannerTestCase {
@Test
public void should_log_message_when_deprecated_properties_are_used() {
assumeTrue(!orchestrator.getServer().version().isGreaterThanOrEquals("4.3"));
- SonarRunner build = newScanner(new File("projects/using-deprecated-props"));
+ SonarScanner build = newScanner(new File("projects/using-deprecated-props"));
BuildResult result = orchestrator.executeBuild(build);
String logs = result.getLogs();
@@ -221,7 +222,7 @@ public class JavaTest extends ScannerTestCase {
*/
@Test
public void should_warn_when_analysis_is_platform_dependent() {
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
// ORCH-243
.setSourceEncoding("");
String log = orchestrator.executeBuild(build).getLogs();
@@ -240,7 +241,7 @@ public class JavaTest extends ScannerTestCase {
public void should_enable_verbose() {
// this line should appear in all versions (LTS-DEV) in debug only
String expectedLog = "Available languages:";
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.verbose", "true");
String logs = orchestrator.executeBuild(build).getLogs();
assertThat(logs).contains(expectedLog);
@@ -248,7 +249,7 @@ public class JavaTest extends ScannerTestCase {
@Test
public void should_fail_if_unable_to_connect() {
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.host.url", "http://foo");
BuildResult result = orchestrator.executeBuildQuietly(build);
@@ -262,7 +263,7 @@ public class JavaTest extends ScannerTestCase {
@Test
public void run_from_external_location() throws IOException {
File tempDir = temp.newFolder();
- SonarRunner build = newScanner(tempDir)
+ SonarScanner build = newScanner(tempDir)
.setProperty("sonar.projectBaseDir", new File("projects/java-sample").getAbsolutePath())
.addArguments("-e");
orchestrator.executeBuild(build);
@@ -272,6 +273,36 @@ public class JavaTest extends ScannerTestCase {
assertThat(project.getVersion()).isEqualTo("1.2.3");
}
+ @Test
+ public void use_old_script_and_old_env_variable() {
+ SonarScanner build = newScanner(new File("projects/java-sample"))
+ .setUseOldSonarRunnerScript(true)
+ .setEnvironmentVariable("SONAR_RUNNER_OPTS", "-Xmx2m");
+ BuildResult executeBuild = orchestrator.executeBuildQuietly(build);
+ assertThat(executeBuild.getStatus()).isNotEqualTo(0);
+ String logs = executeBuild.getLogs();
+ if (SystemUtils.IS_OS_WINDOWS) {
+ assertThat(logs).contains("WARN: sonar-runner.bat script is deprecated. Please use sonar-scanner.bat instead.");
+ assertThat(logs).contains("WARN: SONAR_RUNNER_OPTS is deprecated. Please use SONAR_SCANNER_OPTS instead.");
+ } else {
+ assertThat(logs).contains("WARN: sonar-runner script is deprecated. Please use sonar-scanner instead.");
+ assertThat(logs).contains("WARN: $SONAR_RUNNER_OPTS is deprecated. Please use $SONAR_SCANNER_OPTS instead.");
+ }
+ assertThat(logs).contains("java.lang.OutOfMemoryError");
+ }
+
+ @Test
+ public void use_new_script_and_new_env_variable() {
+ SonarScanner build = newScanner(new File("projects/java-sample"))
+ .setEnvironmentVariable("SONAR_SCANNER_OPTS", "-Xmx2m");
+ BuildResult executeBuild = orchestrator.executeBuildQuietly(build);
+ assertThat(executeBuild.getStatus()).isNotEqualTo(0);
+ String logs = executeBuild.getLogs();
+ assertThat(logs).doesNotContain("sonar-runner");
+ assertThat(logs).doesNotContain("SONAR_RUNNER_OPTS");
+ assertThat(logs).contains("java.lang.OutOfMemoryError");
+ }
+
private String findbugsFileKey() {
if (orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
return "java:bytecode:src/HasFindbugsViolation.java";
diff --git a/it/src/test/java/com/sonar/runner/it/ScannerTestCase.java b/it/src/test/java/com/sonar/runner/it/ScannerTestCase.java
index 9d8e63d..0f8d7fa 100644
--- a/it/src/test/java/com/sonar/runner/it/ScannerTestCase.java
+++ b/it/src/test/java/com/sonar/runner/it/ScannerTestCase.java
@@ -56,7 +56,8 @@ public abstract class ScannerTestCase {
SonarScanner newScanner(File baseDir, String... keyValueProperties) {
SonarScanner scannerCli = SonarScanner.create(baseDir, keyValueProperties);
- scannerCli.setRunnerVersion(artifactVersion().toString());
+ scannerCli.setScannerVersion(artifactVersion().toString());
return scannerCli;
}
+
}
diff --git a/pom.xml b/pom.xml
index d490039..a8c73ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -158,8 +158,8 @@
<configuration>
<rules>
<requireFilesSize>
- <minsize>490000</minsize>
- <maxsize>500000</maxsize>
+ <minsize>500000</minsize>
+ <maxsize>510000</maxsize>
<files>
<file>${project.build.directory}/sonar-scanner-${project.version}.zip</file>
</files>
diff --git a/src/main/assembly/bin/sonar-runner b/src/main/assembly/bin/sonar-runner
index 3d2b092..556e712 100755
--- a/src/main/assembly/bin/sonar-runner
+++ b/src/main/assembly/bin/sonar-runner
@@ -65,6 +65,8 @@ real_path () {
echo "$FOO"
}
+echo WARN: 'sonar-runner' script is deprecated. Please use 'sonar-scanner' instead.
+
if [ -z "$SONAR_RUNNER_HOME" ] ; then
PRG="$0"
@@ -92,6 +94,14 @@ else
JAVA_CMD="`which java`"
fi
+if [ -n "$SONAR_RUNNER_OPTS" ] ;
+then
+ echo WARN: '$SONAR_RUNNER_OPTS' is deprecated. Please use '$SONAR_SCANNER_OPTS' instead.
+ if [ -z "$SONAR_SCANNER_OPTS" ] ; then
+ SONAR_SCANNER_OPTS=$SONAR_RUNNER_OPTS
+ fi
+fi
+
JAR_FILE="${SONAR_RUNNER_HOME}"/lib/sonar-scanner-cli-${project.version}.jar
PROJECT_HOME=`pwd`
@@ -102,9 +112,9 @@ PROJECT_HOME=`pwd`
exec "$JAVA_CMD" \
-Djava.awt.headless=true \
- $SONAR_RUNNER_OPTS \
+ $SONAR_SCANNER_OPTS \
-classpath $JAR_FILE \
- "-Drunner.home=\${SONAR_RUNNER_HOME}" \
+ "-Dscanner.home=\${SONAR_RUNNER_HOME}" \
"-Dproject.home=\${PROJECT_HOME}" \
org.sonarsource.scanner.cli.Main "$@"
diff --git a/src/main/assembly/bin/sonar-runner.bat b/src/main/assembly/bin/sonar-runner.bat
index 32b3e83..b004a10 100644
--- a/src/main/assembly/bin/sonar-runner.bat
+++ b/src/main/assembly/bin/sonar-runner.bat
@@ -14,6 +14,8 @@ set ERROR_CODE=0
@REM set local scope for the variables with windows NT shell
@setlocal
+echo WARN: sonar-runner.bat script is deprecated. Please use sonar-scanner.bat instead.
+
@REM ==== START VALIDATION ====
@REM *** JAVA EXEC VALIDATION ***
if not "%JAVA_HOME%" == "" goto foundJavaHome
@@ -51,14 +53,14 @@ set JAVA_EXEC="%JAVA_HOME%\bin\java.exe"
:OkJava
if NOT "%SONAR_RUNNER_HOME%"=="" goto cleanSonarRunnerHome
set SONAR_RUNNER_HOME=%~dp0..
-goto run
+goto sonarRunnerOpts
:cleanSonarRunnerHome
@REM If the property has a trailing backslash, remove it
if "%SONAR_RUNNER_HOME:~-1%"=="\" set SONAR_RUNNER_HOME=%SONAR_RUNNER_HOME:~0,-1%
@REM Check if the provided SONAR_RUNNER_HOME is a valid install dir
-IF EXIST "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto run
+IF EXIST "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto sonarRunnerOpts
echo.
echo ERROR: SONAR_RUNNER_HOME exists but does not point to a valid install
@@ -66,7 +68,14 @@ echo directory: %SONAR_RUNNER_HOME%
echo.
goto error
-
+@REM ==== HANDLE DEPRECATED SONAR_RUNNER_OPTS ====
+:sonarRunnerOpts
+if "%SONAR_RUNNER_OPTS%" == "" (
+ goto run
+) else (
+ echo WARN: SONAR_RUNNER_OPTS is deprecated. Please use SONAR_SCANNER_OPTS instead.
+ if not "%SONAR_SCANNER_OPTS%" == "" (set SONAR_SCANNER_OPTS=%SONAR_RUNNER_OPTS%)
+)
@REM ==== START RUN ====
:run
@@ -74,7 +83,7 @@ echo %SONAR_RUNNER_HOME%
set PROJECT_HOME=%CD%
-%JAVA_EXEC% -Djava.awt.headless=true %SONAR_RUNNER_OPTS% -cp "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Drunner.home=%SONAR_RUNNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
+%JAVA_EXEC% -Djava.awt.headless=true %SONAR_SCANNER_OPTS% -cp "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Dscanner.home=%SONAR_RUNNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
if ERRORLEVEL 1 goto error
goto end
diff --git a/src/main/assembly/bin/sonar-scanner b/src/main/assembly/bin/sonar-scanner
new file mode 100755
index 0000000..1a25d3f
--- /dev/null
+++ b/src/main/assembly/bin/sonar-scanner
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# SonarQube Scanner Startup Script for Unix
+#
+# Optional ENV vars:
+# SONAR_SCANNER_HOME - location of runner's installed home dir
+# SONAR_SCANNER_OPTS - parameters passed to the Java VM when running SonarQube Scanner
+
+# The following notice only apply to real_path function copied from
+# https://sites.google.com/site/jdisnard/realpath
+# Copyright 2010 Jon Disnard. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY Jon Disnard ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of Jon Disnard.
+real_path () {
+ OIFS=$IFS
+ IFS='/'
+ for I in $1
+ do
+ # Resolve relative path punctuation.
+ if [ "$I" = "." ] || [ -z "$I" ]
+ then continue
+ elif [ "$I" = ".." ]
+ then FOO="${FOO%%/${FOO##*/}}"
+ continue
+ else FOO="${FOO}/${I}"
+ fi
+
+ # Dereference symbolic links.
+ if [ -h "$FOO" ] && [ -x "/bin/ls" ]
+ then IFS=$OIFS
+ set `/bin/ls -l "$FOO"`
+ while shift ;
+ do
+ if [ "$1" = "->" ]
+ then FOO=$2
+ shift $#
+ break
+ fi
+ done
+ fi
+ done
+ IFS=$OIFS
+ echo "$FOO"
+}
+
+if [ -z "$SONAR_SCANNER_HOME" ] ; then
+ PRG="$0"
+
+ if [ -h "$PRG" ] ; then
+ # resolve symlinks
+ PRG=`real_path "$PRG"`
+ fi
+
+ SONAR_SCANNER_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ SONAR_SCANNER_HOME=`cd "$SONAR_SCANNER_HOME" && pwd`
+fi
+
+# check that the SONAR_SCANNER_HOME has been correctly set
+if [ ! -f "$SONAR_SCANNER_HOME/lib/sonar-scanner-cli-${project.version}.jar" ] ; then
+ echo '$SONAR_SCANNER_HOME' does not point to a valid installation directory: $SONAR_SCANNER_HOME
+ exit 1
+fi
+
+if [ -n "$JAVA_HOME" ]
+then
+ JAVA_CMD="$JAVA_HOME/bin/java"
+else
+ JAVA_CMD="`which java`"
+fi
+
+JAR_FILE="${SONAR_SCANNER_HOME}"/lib/sonar-scanner-cli-${project.version}.jar
+PROJECT_HOME=`pwd`
+
+#echo "Info: Using sonar-scanner at $SONAR_SCANNER_HOME"
+#echo "Info: Using java at $JAVA_CMD"
+#echo "Info: Using classpath $JAR_FILE"
+#echo "Info: Using project $PROJECT_HOME"
+
+exec "$JAVA_CMD" \
+ -Djava.awt.headless=true \
+ $SONAR_SCANNER_OPTS \
+ -classpath $JAR_FILE \
+ "-Dscanner.home=\${SONAR_SCANNER_HOME}" \
+ "-Dproject.home=\${PROJECT_HOME}" \
+ org.sonarsource.scanner.cli.Main "$@"
+
diff --git a/src/main/assembly/bin/sonar-scanner.bat b/src/main/assembly/bin/sonar-scanner.bat
new file mode 100644
index 0000000..55ae38a
--- /dev/null
+++ b/src/main/assembly/bin/sonar-scanner.bat
@@ -0,0 +1,97 @@
+@REM SonarQube Runner Startup Script for Windows
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars:
+@REM SONAR_SCANNER_HOME - location of runner's installed home dir
+@REM SONAR_SCANNER_OPTS - parameters passed to the Java VM when running Sonar
+
+@echo off
+
+set ERROR_CODE=0
+
+@REM set local scope for the variables with windows NT shell
+@setlocal
+
+@REM ==== START VALIDATION ====
+@REM *** JAVA EXEC VALIDATION ***
+if not "%JAVA_HOME%" == "" goto foundJavaHome
+
+for %%i in (java.exe) do set JAVA_EXEC=%%~$PATH:i
+
+if not "%JAVA_EXEC%" == "" (
+ set JAVA_EXEC="%JAVA_EXEC%"
+ goto OkJava
+)
+
+if not "%JAVA_EXEC%" == "" goto OkJava
+
+echo.
+echo ERROR: JAVA_HOME not found in your environment, and no Java
+echo executable present in the PATH.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation, or add "java.exe" to the PATH
+echo.
+goto error
+
+:foundJavaHome
+if EXIST "%JAVA_HOME%\bin\java.exe" goto foundJavaExeFromJavaHome
+
+echo.
+echo ERROR: JAVA_HOME exists but does not point to a valid Java home
+echo folder. No "\bin\java.exe" file can be found there.
+echo.
+goto error
+
+:foundJavaExeFromJavaHome
+set JAVA_EXEC="%JAVA_HOME%\bin\java.exe"
+
+@REM *** SONAR SCANNER HOME VALIDATION ***
+:OkJava
+if NOT "%SONAR_SCANNER_HOME%"=="" goto cleanSQScannerHome
+set SONAR_SCANNER_HOME=%~dp0..
+goto run
+
+:cleanSQScannerHome
+@REM If the property has a trailing backslash, remove it
+if "%SONAR_SCANNER_HOME:~-1%"=="\" set SONAR_SCANNER_HOME=%SONAR_SCANNER_HOME:~0,-1%
+
+@REM Check if the provided SONAR_SCANNER_HOME is a valid install dir
+IF EXIST "%SONAR_SCANNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto run
+
+echo.
+echo ERROR: SONAR_SCANNER_HOME exists but does not point to a valid install
+echo directory: %SONAR_SCANNER_HOME%
+echo.
+goto error
+
+
+
+@REM ==== START RUN ====
+:run
+echo %SONAR_SCANNER_HOME%
+
+set PROJECT_HOME=%CD%
+
+%JAVA_EXEC% -Djava.awt.headless=true %SONAR_SCANNER_OPTS% -cp "%SONAR_SCANNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Dscanner.home=%SONAR_SCANNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+@REM ==== END EXECUTION ====
+
+:end
+@REM set local scope for the variables with windows NT shell
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+@REM see http://code-bear.com/bearlog/2007/06/01/getting-the-exit-code-from-a-batch-file-that-is-run-from-a-python-program/
+goto exit
+
+:returncode
+exit /B %1
+
+:exit
+call :returncode %ERROR_CODE%
diff --git a/src/main/assembly/conf/sonar-runner.properties b/src/main/assembly/conf/sonar-scanner.properties
index e1528cb..e1528cb 100644
--- a/src/main/assembly/conf/sonar-runner.properties
+++ b/src/main/assembly/conf/sonar-scanner.properties
diff --git a/src/main/java/org/sonarsource/scanner/cli/Conf.java b/src/main/java/org/sonarsource/scanner/cli/Conf.java
index 74f0f62..cf2b37f 100644
--- a/src/main/java/org/sonarsource/scanner/cli/Conf.java
+++ b/src/main/java/org/sonarsource/scanner/cli/Conf.java
@@ -32,8 +32,8 @@ import java.util.Map;
import java.util.Properties;
class Conf {
- private static final String RUNNER_HOME = "runner.home";
- private static final String RUNNER_SETTINGS = "runner.settings";
+ private static final String SCANNER_HOME = "scanner.home";
+ private static final String SCANNER_SETTINGS = "scanner.settings";
private static final String PROJECT_HOME = "project.home";
private static final String PROJECT_SETTINGS = "project.settings";
private static final String PROPERTY_MODULES = "sonar.modules";
@@ -62,7 +62,7 @@ class Conf {
}
private Properties loadGlobalProperties() throws IOException {
- Path settingsFile = locatePropertiesFile(cli.properties(), RUNNER_HOME, "conf/sonar-runner.properties", RUNNER_SETTINGS);
+ Path settingsFile = locatePropertiesFile(cli.properties(), SCANNER_HOME, "conf/sonar-scanner.properties", SCANNER_SETTINGS);
if (settingsFile != null && Files.isRegularFile(settingsFile)) {
logger.info("Scanner configuration file: " + settingsFile);
return toProperties(settingsFile);
@@ -74,7 +74,7 @@ class Conf {
private Properties loadProjectProperties() throws IOException {
Properties rootProps = new Properties();
Properties knownProps = new Properties();
-
+
knownProps.putAll(System.getProperties());
knownProps.putAll(cli.properties());
@@ -121,7 +121,7 @@ class Conf {
if (parentProps.containsKey(PROPERTY_MODULES)) {
for (String module : getListFromProperty(parentProps, PROPERTY_MODULES)) {
Properties moduleProps = extractModuleProperties(module, parentProps);
- //higher priority to child configuration files
+ // higher priority to child configuration files
loadModuleConfigFile(parentBaseDir, moduleProps, module);
// the child project may have children as well
@@ -184,9 +184,9 @@ class Conf {
private static Path locatePropertiesFile(Properties props, String homeKey, String relativePathFromHome, String settingsKey) {
Path settingsFile = null;
- String runnerHome = props.getProperty(homeKey, "");
- if (!"".equals(runnerHome)) {
- settingsFile = Paths.get(runnerHome, relativePathFromHome);
+ String scannerHome = props.getProperty(homeKey, "");
+ if (!"".equals(scannerHome)) {
+ settingsFile = Paths.get(scannerHome, relativePathFromHome);
}
return locatePropertiesFile(settingsFile, props, settingsKey);
diff --git a/src/main/java/org/sonarsource/scanner/cli/Main.java b/src/main/java/org/sonarsource/scanner/cli/Main.java
index fc7be85..f0b76bf 100644
--- a/src/main/java/org/sonarsource/scanner/cli/Main.java
+++ b/src/main/java/org/sonarsource/scanner/cli/Main.java
@@ -26,9 +26,9 @@ import org.sonarsource.scanner.api.EmbeddedScanner;
/**
* Arguments :
* <ul>
- * <li>runner.home: optional path to runner home (root directory with sub-directories bin, lib and conf)</li>
- * <li>runner.settings: optional path to runner global settings, usually ${runner.home}/conf/sonar-runner.properties.
- * This property is used only if ${runner.home} is not defined</li>
+ * <li>scanner.home: optional path to Scanner home (root directory with sub-directories bin, lib and conf)</li>
+ * <li>scanner.settings: optional path to runner global settings, usually ${scanner.home}/conf/sonar-scanner.properties.
+ * This property is used only if ${scanner.home} is not defined</li>
* <li>project.home: path to project root directory. If not set, then it's supposed to be the directory where the runner is executed</li>
* <li>project.settings: optional path to project settings. Default value is ${project.home}/sonar-project.properties.</li>
* </ul>
diff --git a/src/main/java/org/sonarsource/scanner/cli/SystemInfo.java b/src/main/java/org/sonarsource/scanner/cli/SystemInfo.java
index dadde0d..e202a3e 100644
--- a/src/main/java/org/sonarsource/scanner/cli/SystemInfo.java
+++ b/src/main/java/org/sonarsource/scanner/cli/SystemInfo.java
@@ -33,9 +33,9 @@ class SystemInfo {
logger.info("SonarQube Scanner " + ScannerVersion.version());
logger.info(java());
logger.info(os());
- String runnerOpts = system.getenv("SONAR_RUNNER_OPTS");
- if (runnerOpts != null) {
- logger.info("SONAR_RUNNER_OPTS=" + runnerOpts);
+ String scannerOpts = system.getenv("SONAR_SCANNER_OPTS");
+ if (scannerOpts != null) {
+ logger.info("SONAR_SCANNER_OPTS=" + scannerOpts);
}
}
diff --git a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
index c792504..db9b6c5 100644
--- a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
@@ -52,7 +52,7 @@ public class ConfTest {
@Test
public void should_load_global_settings_by_home() throws Exception {
Path home = Paths.get(getClass().getResource("ConfTest/shouldLoadRunnerSettingsByHome/").toURI());
- args.setProperty("runner.home", home.toAbsolutePath().toString());
+ args.setProperty("scanner.home", home.toAbsolutePath().toString());
Properties properties = conf.properties();
assertThat(properties.get("sonar.prop")).isEqualTo("value");
@@ -81,7 +81,7 @@ public class ConfTest {
@Test
public void should_load_conf_by_direct_path() throws Exception {
Path settings = Paths.get(getClass().getResource("ConfTest/shouldLoadRunnerSettingsByDirectPath/other-conf.properties").toURI());
- args.setProperty("runner.settings", settings.toAbsolutePath().toString());
+ args.setProperty("scanner.settings", settings.toAbsolutePath().toString());
assertThat(conf.properties().get("sonar.prop")).isEqualTo("otherValue");
}
@@ -90,7 +90,7 @@ public class ConfTest {
public void shouldLoadCompleteConfiguration() throws Exception {
Path runnerHome = Paths.get(getClass().getResource("ConfTest/shouldLoadCompleteConfiguration/runner").toURI());
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadCompleteConfiguration/project").toURI());
- args.setProperty("runner.home", runnerHome.toAbsolutePath().toString());
+ args.setProperty("scanner.home", runnerHome.toAbsolutePath().toString());
args.setProperty("project.home", projectHome.toAbsolutePath().toString());
Properties properties = conf.properties();
@@ -143,7 +143,7 @@ public class ConfTest {
assertThat(properties.getProperty("module3.sonar.projectName")).isEqualTo("Module 3");
assertThat(properties.getProperty("sonar.projectBaseDir")).isEqualTo(projectHome.toString());
}
-
+
@Test
public void shouldCliOverrideSettingFiles() throws Exception {
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadModuleConfigurationOverrideBasedir/project").toURI());
@@ -159,7 +159,7 @@ public class ConfTest {
assertThat(properties.getProperty("module3.sonar.projectName")).isEqualTo("mod3");
assertThat(properties.getProperty("sonar.projectBaseDir")).isEqualTo(projectHome.toString());
}
-
+
@Test
public void shouldUseCliToDiscoverModules() throws Exception {
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadModuleConfigurationOverrideBasedir/project").toURI());
diff --git a/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java b/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
index 0c1fa8f..0786c83 100644
--- a/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
@@ -76,19 +76,19 @@ public class SystemInfoTest {
public void should_print() {
mockOs();
mockJava();
- when(mockSystem.getenv("SONAR_RUNNER_OPTS")).thenReturn("arg");
+ when(mockSystem.getenv("SONAR_SCANNER_OPTS")).thenReturn("arg");
SystemInfo.print(logs);
verify(mockSystem).getProperty("java.version");
verify(mockSystem).getProperty("os.version");
- verify(mockSystem).getenv("SONAR_RUNNER_OPTS");
+ verify(mockSystem).getenv("SONAR_SCANNER_OPTS");
verify(logs, never()).info("SonarQube Scanner null");
verify(logs).info("SonarQube Scanner " + ScannerVersion.version());
verify(logs).info("Java 1.9 oracle (64-bit)");
verify(logs).info("linux 2.5 x64");
- verify(logs).info("SONAR_RUNNER_OPTS=arg");
+ verify(logs).info("SONAR_SCANNER_OPTS=arg");
verifyNoMoreInteractions(logs);
}
}
diff --git a/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-runner.properties b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-scanner.properties
index 7edfb99..7edfb99 100644
--- a/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-runner.properties
+++ b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadCompleteConfiguration/runner/conf/sonar-scanner.properties
diff --git a/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-runner.properties b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-scanner.properties
index 1e03622..1e03622 100644
--- a/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-runner.properties
+++ b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldLoadRunnerSettingsByHome/conf/sonar-scanner.properties
diff --git a/travis.sh b/travis.sh
index f9a9784..1c860bc 100755
--- a/travis.sh
+++ b/travis.sh
@@ -10,6 +10,7 @@ function configureTravis {
configureTravis
build_snapshot SonarSource/sonar-scanner-api
+build_snapshot SonarSource/orchestrator
case "$TARGET" in