diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-09-16 14:30:41 +0200 |
---|---|---|
committer | Duarte Meneses <duarte.meneses@sonarsource.com> | 2015-09-16 15:13:22 +0200 |
commit | 08e5054fa2bbc66035fa154c406da04348d5dafa (patch) | |
tree | 65e60a59b6a17db70e48576175be18455aa67a85 /sonar-runner-api/src/main/java | |
parent | b1a26dced4593825b27a2a57672a11eca5530aa9 (diff) | |
download | sonar-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')
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); |