diff --git a/sonar-ps-plugin/.classpath b/sonar-ps-plugin/.classpath
index 8e795b1..df66b20 100644
--- a/sonar-ps-plugin/.classpath
+++ b/sonar-ps-plugin/.classpath
@@ -9,20 +9,24 @@
+
+
+
+
-
+
@@ -32,5 +36,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sonar-ps-plugin/.project b/sonar-ps-plugin/.project
index 2489938..b003347 100644
--- a/sonar-ps-plugin/.project
+++ b/sonar-ps-plugin/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1750172521967
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/sonar-ps-plugin/.settings/org.eclipse.jdt.core.prefs b/sonar-ps-plugin/.settings/org.eclipse.jdt.core.prefs
index 1ab2bb5..5be673d 100644
--- a/sonar-ps-plugin/.settings/org.eclipse.jdt.core.prefs
+++ b/sonar-ps-plugin/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
+org.eclipse.jdt.core.compiler.compliance=9
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=9
diff --git a/sonar-ps-plugin/pom.xml b/sonar-ps-plugin/pom.xml
index cef0a39..84b9c07 100644
--- a/sonar-ps-plugin/pom.xml
+++ b/sonar-ps-plugin/pom.xml
@@ -7,15 +7,16 @@
org.sonar.plugins
sonar-ps-plugin
sonar-plugin
- 0.5.3
+ 0.6.0
Powershell Plugin for SonarQube
Powershell plugin for SonarQube
UTF-8
- 8.9.2.46101
- 1.9
+ 10.11.0.2468
+ 10.7.0.96327
+ 17
GitHub Issues
@@ -41,25 +42,12 @@
runtime
- org.sonarsource.sonarqube
+ org.sonarsource.api.plugin
sonar-plugin-api
${sonar.apiVersion}
provided
-
- org.sonarsource.sonarqube
- sonar-plugin-api-impl
- ${sonar.apiVersion}
- test
-
-
-
- org.sonarsource.sonarqube
- sonar-testing-harness
- ${sonar.apiVersion}
- test
-
org.apache.commons
commons-lang3
@@ -74,13 +62,21 @@
+
org.sonarsource.sonarqube
sonar-testing-harness
- ${sonar.apiVersion}
+ ${sonar.testingHarnessVersion}
+ test
+
+
+ org.sonarsource.sonarqube
+ sonar-plugin-api-impl
+ ${sonar.testingHarnessVersion}
test
+
junit
junit
diff --git a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/PowershellLanguage.java b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/PowershellLanguage.java
index 78ce401..585df20 100644
--- a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/PowershellLanguage.java
+++ b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/PowershellLanguage.java
@@ -1,6 +1,6 @@
package org.sonar.plugins.powershell;
-import org.sonar.api.config.Settings;
+import org.sonar.api.config.Configuration;
import org.sonar.api.resources.AbstractLanguage;
public class PowershellLanguage extends AbstractLanguage {
@@ -9,20 +9,16 @@ public class PowershellLanguage extends AbstractLanguage {
public static final String PROFILE_NAME = "Powershell default rules";
public static final String KEY = "ps";
- private final Settings settings;
+ private final Configuration config;
private static final String[] DEFAULT_FILE_SUFFIXES = new String[] { "ps1", "psm1", "psd1" };
- public PowershellLanguage(final Settings settings) {
+ public PowershellLanguage(final Configuration config) {
super(KEY, NAME);
- this.settings = settings;
-
+ this.config = config;
}
public String[] getFileSuffixes() {
- final String[] suffixes = this.settings.getStringArray(Constants.FILE_SUFFIXES);
- if (suffixes == null || suffixes.length == 0) {
- return DEFAULT_FILE_SUFFIXES;
- }
+ final String[] suffixes = this.config.get("sonar.ps.file.suffixes").map(s -> s.split(",")).orElse(DEFAULT_FILE_SUFFIXES);
return suffixes;
}
diff --git a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/BaseSensor.java b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/BaseSensor.java
index 5b11e21..90aa55d 100644
--- a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/BaseSensor.java
+++ b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/BaseSensor.java
@@ -7,7 +7,7 @@
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.SensorDescriptor;
-import org.sonar.api.config.Settings;
+import org.sonar.api.config.Configuration;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.plugins.powershell.Constants;
@@ -24,8 +24,8 @@ public void describe(final SensorDescriptor descriptor) {
@Override
public void execute(final SensorContext context) {
- final Settings settings = context.settings();
- final boolean skipPlugin = settings.getBoolean(Constants.SKIP_PLUGIN);
+ final Configuration config = context.config();
+ final boolean skipPlugin = config.getBoolean(Constants.SKIP_PLUGIN).orElse(false);
if (skipPlugin) {
LOGGER.debug("Skipping sensor as skip plugin flag is set: " + Constants.SKIP_PLUGIN);
diff --git a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/ScriptAnalyzerSensor.java b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/ScriptAnalyzerSensor.java
index 7dfd423..094a6f4 100644
--- a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/ScriptAnalyzerSensor.java
+++ b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/ScriptAnalyzerSensor.java
@@ -8,7 +8,7 @@
import org.apache.commons.lang3.SystemUtils;
import org.sonar.api.batch.fs.FileSystem;
import org.sonar.api.batch.sensor.SensorContext;
-import org.sonar.api.config.Settings;
+import org.sonar.api.config.Configuration;
import org.sonar.api.utils.TempFolder;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
@@ -32,10 +32,8 @@ public ScriptAnalyzerSensor(final TempFolder folder) {
@Override
protected void innerExecute(final SensorContext context) {
-
- final Settings settings = context.settings();
-
- final String powershellExecutable = settings.getString(Constants.PS_EXECUTABLE);
+ final Configuration config = context.config();
+ final String powershellExecutable = config.get("sonar.ps.executable").orElse("powershell.exe");
try {
final File parserFile = folder.newFile("ps", "scriptAnalyzer.ps1");
diff --git a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/TokenizerSensor.java b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/TokenizerSensor.java
index 0abc8ac..53ecb61 100644
--- a/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/TokenizerSensor.java
+++ b/sonar-ps-plugin/src/main/java/org/sonar/plugins/powershell/sensors/TokenizerSensor.java
@@ -12,7 +12,7 @@
import org.sonar.api.batch.fs.FilePredicates;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.SensorContext;
-import org.sonar.api.config.Settings;
+import org.sonar.api.config.Configuration;
import org.sonar.api.utils.TempFolder;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
@@ -44,16 +44,13 @@ public TokenizerSensor(final TempFolder folder) {
@Override
protected void innerExecute(final SensorContext context) {
-
- final Settings settings = context.settings();
- final boolean skipAnalysis = settings.getBoolean(Constants.SKIP_TOKENIZER);
-
+ final Configuration config = context.config();
+ final boolean skipAnalysis = config.getBoolean(Constants.SKIP_TOKENIZER).orElse(false);
if (skipAnalysis) {
LOGGER.debug("Skipping tokenizer as skip flag is set");
return;
}
-
- final String powershellExecutable = settings.getString(Constants.PS_EXECUTABLE);
+ final String powershellExecutable = config.get("sonar.ps.executable").orElse("powershell.exe");
final File parserFile = folder.newFile("ps", "parser.ps1");
@@ -126,17 +123,14 @@ public void run() {
}
try {
- long timeout = settings.getLong(Constants.TIMEOUT_TOKENIZER) == 0 ? 3600
- : settings.getLong(Constants.TIMEOUT_TOKENIZER);
+ long timeout = config.get("sonar.ps.tokenizer.timeout").map(Long::parseLong).orElse(3600L);
LOGGER.info("Waiting for file analysis to finish for " + timeout + " seconds");
service.shutdown();
service.awaitTermination(timeout, TimeUnit.SECONDS);
service.shutdownNow();
} catch (final InterruptedException e) {
LOGGER.warn("Unexpected error while running waiting for executor service to finish", e);
-
}
-
}
}