Skip to content

Commit 8a9dda4

Browse files
committed
Add encoding to environment
1 parent ebf4355 commit 8a9dda4

File tree

5 files changed

+40
-4
lines changed

5 files changed

+40
-4
lines changed

.github/workflows/mvn.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
---
22
name: mvn
3-
env:
4-
JAVA_TOOL_OPTIONS: "-Dfile.encoding=UTF8"
5-
JAVA_OPTS: "%JAVA_OPTS% -Dfile.encoding=UTF-8"
63
on:
74
push:
85
branches:
@@ -29,4 +26,4 @@ jobs:
2926
key: ${{ runner.os }}-jdk-${{ matrix.java }}-maven-${{ hashFiles('**/pom.xml') }}
3027
restore-keys: |
3128
${{ runner.os }}-jdk-${{ matrix.java }}-maven-
32-
- run: mvn -B install -Pqulice
29+
- run: mvn -B install -Pqulice

qulice-maven-plugin/src/main/java/com/qulice/maven/DefaultMavenEnvironment.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.net.URI;
4242
import java.net.URL;
4343
import java.net.URLClassLoader;
44+
import java.nio.charset.Charset;
4445
import java.security.PrivilegedAction;
4546
import java.util.Collection;
4647
import java.util.LinkedList;
@@ -292,6 +293,18 @@ public void setAsser(final Collection<String> ass) {
292293
this.asser.addAll(ass);
293294
}
294295

296+
/**
297+
* Get source files encoding.
298+
* @return Charset of the source files
299+
*/
300+
public Charset encoding() {
301+
String charset = this.iproperties.getProperty("project.build.sourceEncoding");
302+
if (charset == null) {
303+
charset = "UTF-8";
304+
}
305+
return Charset.forName(charset);
306+
}
307+
295308
/**
296309
* Creates URL ClassLoader in privileged block.
297310
*

qulice-maven-plugin/src/main/java/com/qulice/maven/MavenEnvironment.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import com.qulice.spi.Environment;
3434
import java.io.File;
35+
import java.nio.charset.Charset;
3536
import java.util.Collection;
3637
import java.util.Properties;
3738
import org.apache.maven.project.MavenProject;
@@ -182,5 +183,10 @@ public boolean exclude(final String check, final String name) {
182183
public Collection<String> excludes(final String checker) {
183184
return this.env.excludes(checker);
184185
}
186+
187+
@Override
188+
public Charset encoding() {
189+
return this.env.encoding();
190+
}
185191
}
186192
}

qulice-pmd/src/main/java/com/qulice/pmd/SourceValidator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.jcabi.log.Logger;
3434
import com.qulice.spi.Environment;
3535
import java.io.File;
36+
import java.nio.charset.Charset;
3637
import java.util.Collection;
3738
import java.util.Collections;
3839
import java.util.LinkedList;
@@ -70,6 +71,11 @@ final class SourceValidator {
7071
*/
7172
private final PMDConfiguration config;
7273

74+
/**
75+
* Source files encoding.
76+
*/
77+
private final Charset encoding;
78+
7379
/**
7480
* Creates new instance of <code>SourceValidator</code>.
7581
* @param env Environment
@@ -79,6 +85,7 @@ final class SourceValidator {
7985
this.listener = new PmdListener(env);
8086
this.renderer = new PmdRenderer();
8187
this.config = new PMDConfiguration();
88+
this.encoding = env.encoding();
8289
}
8390

8491
/**
@@ -95,6 +102,7 @@ public Collection<PmdError> validate(
95102
this.config.setMinimumPriority(RulePriority.LOW);
96103
this.config.setIgnoreIncrementalAnalysis(true);
97104
this.config.setShowSuppressedViolations(true);
105+
this.config.setSourceEncoding(this.encoding.name());
98106
final Report report = new Report();
99107
report.addListener(this.listener);
100108
this.context.setReport(report);

qulice-spi/src/main/java/com/qulice/spi/Environment.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import java.io.File;
3434
import java.io.IOException;
35+
import java.nio.charset.Charset;
3536
import java.nio.charset.StandardCharsets;
3637
import java.util.Arrays;
3738
import java.util.Collection;
@@ -122,6 +123,12 @@ public interface Environment {
122123
*/
123124
Collection<String> excludes(String checker);
124125

126+
/**
127+
* Encoding for the files.
128+
* @return Source files charset
129+
*/
130+
Charset encoding();
131+
125132
/**
126133
* Mock of {@link Environment}.
127134
*
@@ -323,5 +330,10 @@ public Collection<String> excludes(final String checker) {
323330
}
324331
return exc;
325332
}
333+
334+
@Override
335+
public Charset encoding() {
336+
return StandardCharsets.UTF_8;
337+
}
326338
}
327339
}

0 commit comments

Comments
 (0)