From 4a344fc4fa511cd3b48cc15403f2b5d66d4245d7 Mon Sep 17 00:00:00 2001 From: Yassin Kammoun <52890329+yassin-kammoun-sonarsource@users.noreply.github.com> Date: Wed, 18 Sep 2024 12:19:31 +0200 Subject: [PATCH] JS-231 Deprecate the analyzer property sonar.nodejs.forceHost (#4823) --- .../nodejs/NodeCommandBuilderImpl.java | 11 ++++++++++- .../javascript/nodejs/NodeCommandTest.java | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/sonar-plugin/bridge/src/main/java/org/sonar/plugins/javascript/nodejs/NodeCommandBuilderImpl.java b/sonar-plugin/bridge/src/main/java/org/sonar/plugins/javascript/nodejs/NodeCommandBuilderImpl.java index 5eff493dc2..addc94c008 100644 --- a/sonar-plugin/bridge/src/main/java/org/sonar/plugins/javascript/nodejs/NodeCommandBuilderImpl.java +++ b/sonar-plugin/bridge/src/main/java/org/sonar/plugins/javascript/nodejs/NodeCommandBuilderImpl.java @@ -265,7 +265,16 @@ private String locateNode(boolean isForceHost) throws IOException { } private static boolean isForceHost(Configuration configuration) { - return configuration.getBoolean(NODE_FORCE_HOST_PROPERTY).orElse(configuration.getBoolean(SKIP_NODE_PROVISIONING_PROPERTY).orElse(false)); + var forceHost = configuration.getBoolean(NODE_FORCE_HOST_PROPERTY); + if (forceHost.isPresent()) { + LOG.warn( + "Property '{}' is deprecated and will be removed in a future version. Please use '{}' instead.", + NODE_FORCE_HOST_PROPERTY, + SKIP_NODE_PROVISIONING_PROPERTY + ); + return forceHost.get(); + } + return configuration.getBoolean(SKIP_NODE_PROVISIONING_PROPERTY).orElse(false); } private String locateNodeOnMac() throws IOException { diff --git a/sonar-plugin/bridge/src/test/java/org/sonar/plugins/javascript/nodejs/NodeCommandTest.java b/sonar-plugin/bridge/src/test/java/org/sonar/plugins/javascript/nodejs/NodeCommandTest.java index d63e3737fb..d71032575d 100644 --- a/sonar-plugin/bridge/src/test/java/org/sonar/plugins/javascript/nodejs/NodeCommandTest.java +++ b/sonar-plugin/bridge/src/test/java/org/sonar/plugins/javascript/nodejs/NodeCommandTest.java @@ -453,6 +453,25 @@ void test_skipping_nodejs_provisioning_property() throws Exception { .contains("Forcing to use Node.js from the host."); } + @Test + void test_node_force_host_property_deprecation() throws Exception { + var forceHostProp = "sonar.nodejs.forceHost"; + var settings = new MapSettings(); + settings.setProperty(forceHostProp, true); + + builder() + .configuration(settings.asConfig()) + .script("script.js") + .pathResolver(getPathResolver()) + .build(); + + assertThat(logTester.logs(Level.WARN)) + .contains( + "Property 'sonar.nodejs.forceHost' is deprecated and will be removed in a future version. " + + "Please use 'sonar.scanner.skipNodeProvisioning' instead." + ); + } + private static String resourceScript(String script) throws URISyntaxException { return new File(NodeCommandTest.class.getResource("/" + script).toURI()).getAbsolutePath(); }