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); - } - } }