diff options
Diffstat (limited to 'sonar-css-plugin/src')
6 files changed, 31 insertions, 2 deletions
| 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 @@              <directory>css-bundle</directory>              <includes>                  <include>lib/**/*</include> +                <!-- contains 'run-node', default NodeJS on MacOS --> +                <include>package/**/*</include>                  <include>bin/**/*</include>                  <include>node_modules/**/*</include>              </includes> 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()); + +  }  } | 
