aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-runner-api/src/main/java
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2015-09-16 14:30:41 +0200
committerDuarte Meneses <duarte.meneses@sonarsource.com>2015-09-16 15:13:22 +0200
commit08e5054fa2bbc66035fa154c406da04348d5dafa (patch)
tree65e60a59b6a17db70e48576175be18455aa67a85 /sonar-runner-api/src/main/java
parentb1a26dced4593825b27a2a57672a11eca5530aa9 (diff)
downloadsonar-scanner-cli-08e5054fa2bbc66035fa154c406da04348d5dafa.tar.gz
sonar-scanner-cli-08e5054fa2bbc66035fa154c406da04348d5dafa.zip
SONARUNNER-91 SonarQube Runner should honor sonar.userHome
Diffstat (limited to 'sonar-runner-api/src/main/java')
-rw-r--r--sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java7
-rw-r--r--sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java8
-rw-r--r--sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java15
-rw-r--r--sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java2
4 files changed, 26 insertions, 6 deletions
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
index 3fa467e..44682fd 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/IsolatedLauncherFactory.java
@@ -20,6 +20,7 @@
package org.sonar.runner.impl;
import java.io.File;
+import java.nio.file.Paths;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.List;
@@ -51,6 +52,10 @@ public class IsolatedLauncherFactory {
private PersistentCache getCache(Properties props) {
PersistentCacheBuilder builder = new PersistentCacheBuilder(logger);
+ String home = props.getProperty("sonar.userHome");
+ if (home != null) {
+ builder.setSonarHome(Paths.get(home));
+ }
return builder.build();
}
@@ -70,7 +75,7 @@ public class IsolatedLauncherFactory {
return new SimulatedLauncher(version, logger);
}
ServerConnection serverConnection = ServerConnection.create(props, getCache(props), logger);
- JarDownloader jarDownloader = new JarDownloader(serverConnection, logger);
+ JarDownloader jarDownloader = new JarDownloader(serverConnection, logger, props);
return createLauncher(jarDownloader, rules);
}
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
index f3f88ba..4160754 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/JarDownloader.java
@@ -21,18 +21,22 @@ package org.sonar.runner.impl;
import java.io.File;
import java.util.List;
+import java.util.Properties;
+
import org.sonar.home.cache.Logger;
class JarDownloader {
private final ServerConnection serverConnection;
private final Logger logger;
+ private final Properties props;
- JarDownloader(ServerConnection conn, Logger logger) {
+ JarDownloader(ServerConnection conn, Logger logger, Properties props) {
this.serverConnection = conn;
this.logger = logger;
+ this.props = props;
}
List<File> download() {
- return new Jars(serverConnection, new JarExtractor(), logger).download();
+ return new Jars(serverConnection, new JarExtractor(), logger, props).download();
}
}
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
index 262c859..b526df9 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/Jars.java
@@ -23,6 +23,8 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Properties;
+
import org.sonar.home.cache.FileCache;
import org.sonar.home.cache.FileCacheBuilder;
import org.sonar.home.cache.Logger;
@@ -36,9 +38,11 @@ class Jars {
private final JarExtractor jarExtractor;
private final Logger logger;
- Jars(ServerConnection conn, JarExtractor jarExtractor, Logger logger) {
+ Jars(ServerConnection conn, JarExtractor jarExtractor, Logger logger, Properties props) {
this.logger = logger;
- this.fileCache = new FileCacheBuilder(logger).build();
+ this.fileCache = new FileCacheBuilder(logger)
+ .setUserHome(props.getProperty("sonar.userHome"))
+ .build();
this.connection = conn;
this.jarExtractor = jarExtractor;
}
@@ -53,6 +57,13 @@ class Jars {
this.jarExtractor = jarExtractor;
}
+ /**
+ * For unit tests
+ */
+ FileCache getFileCache() {
+ return fileCache;
+ }
+
List<File> download() {
List<File> files = new ArrayList<File>();
logger.debug("Extract sonar-runner-batch in temp...");
diff --git a/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java b/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
index 7156ebc..22081d3 100644
--- a/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
+++ b/sonar-runner-api/src/main/java/org/sonar/runner/impl/ServerConnection.java
@@ -161,7 +161,7 @@ class ServerConnection {
if (cached != null) {
return cached;
}
- logger.error(MessageFormat.format(SONAR_SERVER_CAN_NOT_BE_REACHED + " and had a cache miss", serverUrl));
+ logger.error(MessageFormat.format(SONAR_SERVER_CAN_NOT_BE_REACHED + " and data is not cached", serverUrl));
throw originalException;
} catch (IOException e) {
throw new IllegalStateException("Failed to access cache", e);