Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion sonar-ps-plugin/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,24 @@
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
Expand All @@ -32,5 +36,22 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
11 changes: 11 additions & 0 deletions sonar-ps-plugin/.project
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,15 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
<filteredResources>
<filter>
<id>1750172521967</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
10 changes: 7 additions & 3 deletions sonar-ps-plugin/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -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
32 changes: 14 additions & 18 deletions sonar-ps-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@
<groupId>org.sonar.plugins</groupId>
<artifactId>sonar-ps-plugin</artifactId>
<packaging>sonar-plugin</packaging>
<version>0.5.3</version>
<version>0.6.0</version>

<name>Powershell Plugin for SonarQube</name>
<description>Powershell plugin for SonarQube</description>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.apiVersion>8.9.2.46101</sonar.apiVersion>
<jdk.min.version>1.9</jdk.min.version>
<sonar.apiVersion>10.11.0.2468</sonar.apiVersion>
<sonar.testingHarnessVersion>10.7.0.96327</sonar.testingHarnessVersion>
<jdk.min.version>17</jdk.min.version>
</properties>
<issueManagement>
<system>GitHub Issues</system>
Expand All @@ -41,25 +42,12 @@
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<groupId>org.sonarsource.api.plugin</groupId>
<artifactId>sonar-plugin-api</artifactId>
<version>${sonar.apiVersion}</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.sonarsource.sonarqube/sonar-plugin-api-impl -->
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<version>${sonar.apiVersion}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-testing-harness</artifactId>
<version>${sonar.apiVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
Expand All @@ -74,13 +62,21 @@
</dependency>



<!-- unit tests -->
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-testing-harness</artifactId>
<version>${sonar.apiVersion}</version>
<version>${sonar.testingHarnessVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<version>${sonar.testingHarnessVersion}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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");

Expand Down Expand Up @@ -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);

}

}

}