From 6258d923a5f42e00ddaf0ed45271933b2294b2fc Mon Sep 17 00:00:00 2001
From: Elena Vilchik
Date: Fri, 3 Jan 2020 09:18:10 +0100
Subject: Rely on run-node on Mac (#236)
---
.../org/sonar/css/plugin/server/CssAnalyzerBridgeServer.java | 3 ++-
.../main/java/org/sonar/css/plugin/server/bundle/Bundle.java | 3 ++-
.../sonar/css/plugin/server/bundle/CssAnalyzerBundle.java | 6 ++++++
sonar-css-plugin/src/sonarcss-assembly.xml | 2 ++
.../sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java | 7 +++++++
.../css/plugin/server/bundle/CssAnalyzerBundleTest.java | 12 ++++++++++++
6 files changed, 31 insertions(+), 2 deletions(-)
(limited to 'sonar-css-plugin/src')
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServer.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServer.java
index 702e880..a7bc764 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServer.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServer.java
@@ -108,7 +108,7 @@ public class CssAnalyzerBridgeServer {
PROFILER.stopDebug();
}
- private void initNodeCommand(SensorContext context, File scriptFile) {
+ private void initNodeCommand(SensorContext context, File scriptFile) throws IOException {
nodeCommandBuilder
.outputConsumer(message -> {
if (message.startsWith("DEBUG")) {
@@ -122,6 +122,7 @@ public class CssAnalyzerBridgeServer {
.minNodeVersion(8)
.configuration(context.config())
.script(scriptFile.getAbsolutePath())
+ .pathResolver(bundle)
.scriptArgs(String.valueOf(port));
context.config()
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/Bundle.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/Bundle.java
index 2639500..0ffd46d 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/Bundle.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/Bundle.java
@@ -20,8 +20,9 @@
package org.sonar.css.plugin.server.bundle;
import java.nio.file.Path;
+import org.sonarsource.nodejs.BundlePathResolver;
-public interface Bundle {
+public interface Bundle extends BundlePathResolver {
void deploy(Path deployLocation);
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundle.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundle.java
index eb59f05..7439ac1 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundle.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundle.java
@@ -45,6 +45,7 @@ public class CssAnalyzerBundle implements Bundle {
final String bundleLocation;
private String startServerScript = DEFAULT_STARTUP_SCRIPT.toString();
+ private Path deployLocation;
public CssAnalyzerBundle() {
this(DEFAULT_BUNDLE_LOCATION);
@@ -57,6 +58,7 @@ public class CssAnalyzerBundle implements Bundle {
@Override
public void deploy(Path deployLocation) {
+ this.deployLocation = deployLocation;
PROFILER.startDebug("Deploying bundle");
LOG.debug("Deploying css-bundle into {}", deployLocation);
InputStream bundle = getClass().getResourceAsStream(bundleLocation);
@@ -78,4 +80,8 @@ public class CssAnalyzerBundle implements Bundle {
return startServerScript;
}
+ @Override
+ public String resolve(String relativePath) {
+ return deployLocation.resolve("css-bundle").resolve(relativePath).toString();
+ }
}
diff --git a/sonar-css-plugin/src/sonarcss-assembly.xml b/sonar-css-plugin/src/sonarcss-assembly.xml
index 3bd1f9a..e056267 100644
--- a/sonar-css-plugin/src/sonarcss-assembly.xml
+++ b/sonar-css-plugin/src/sonarcss-assembly.xml
@@ -11,6 +11,8 @@
css-bundle
lib/**/*
+
+ package/**/*
bin/**/*
node_modules/**/*
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
index 29b6bd6..d0a2c2f 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java
@@ -19,6 +19,7 @@
*/
package org.sonar.css.plugin.server;
+import java.io.File;
import java.nio.file.Path;
import org.junit.After;
import org.junit.Before;
@@ -254,5 +255,11 @@ public class CssAnalyzerBridgeServerTest {
public String startServerScript() {
return "src/test/resources/mock-start-server/" + startServerScript;
}
+
+ @Override
+ public String resolve(String relativePath) {
+ File file = new File("src/test/resources");
+ return new File(file.getAbsoluteFile(), relativePath).getAbsolutePath();
+ }
}
}
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundleTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundleTest.java
index 96805d1..700b656 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundleTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/bundle/CssAnalyzerBundleTest.java
@@ -82,4 +82,16 @@ public class CssAnalyzerBundleTest {
bundle.deploy(deployLocation);
}).doesNotThrowAnyException();
}
+
+ @Test
+ public void test_resolve() {
+ Bundle bundle = new CssAnalyzerBundle("/bundle/test-css-bundle.zip");
+ Path deployLocation = tempFolder.newDir().toPath();
+ bundle.deploy(deployLocation);
+ assertThat(bundle.resolve("relative/path"))
+ .contains("css-bundle")
+ .endsWith("path")
+ .startsWith(deployLocation.toString());
+
+ }
}
--
cgit v1.2.3