Skip to content

Commit 1cc69ab

Browse files
authored
Merge pull request #533 from xdev-software/update-from-template-merged
Update from template (auto-merged)
2 parents 01953e9 + 98220ae commit 1cc69ab

File tree

8 files changed

+108
-12
lines changed

8 files changed

+108
-12
lines changed

.config/checkstyle/checkstyle.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@
7979
<property name="format" value="^(?!(.*(Map|List|Set))$).+$"/>
8080
<property name="tokens" value="PARAMETER_DEF, VARIABLE_DEF, PATTERN_VARIABLE_DEF, RECORD_COMPONENT_DEF, LAMBDA"/>
8181
</module>
82+
<!-- Name classes correctly and don't use generic name for everything -->
83+
<module name="IllegalIdentifierName">
84+
<property name="format" value="^(?!(.*(Helper|Util))$).+$"/>
85+
<property name="tokens" value=" CLASS_DEF"/>
86+
</module>
8287
<module name="IllegalImport"/>
8388
<module name="InterfaceIsType"/>
8489
<module name="JavadocStyle">

.config/pmd/java/ruleset.xml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@
146146
<rule ref="category/java/errorprone.xml/CollectionTypeMismatch"/>
147147
<rule ref="category/java/errorprone.xml/ComparisonWithNaN"/>
148148
<rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly"/>
149-
<rule ref="category/java/errorprone.xml/DontImportSun"/>
150149
<rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices"/>
151150
<rule ref="category/java/errorprone.xml/EqualsNull"/>
152151
<rule ref="category/java/errorprone.xml/IdempotentOperations"/>
@@ -164,6 +163,7 @@
164163
<rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance"/>
165164
<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
166165
<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
166+
<rule ref="category/java/errorprone.xml/UnsupportedJdkApiUsage"/>
167167
<rule ref="category/java/errorprone.xml/UselessPureMethodCall"/>
168168

169169

@@ -208,6 +208,36 @@
208208
<rule ref="category/java/security.xml"/>
209209

210210

211+
<rule name="AvoidOptionalGet"
212+
language="java"
213+
message="Avoid using Optional#get"
214+
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"
215+
externalInfoUrl="https://stackoverflow.com/a/49159955">
216+
<description>
217+
`Optional#get` can be interpreted as a getter by developers, however this is not the case as it throws an exception when empty.
218+
219+
It should be replaced by
220+
* doing a mapping directly using `.map` or `.ifPresent`
221+
* using the preferred `.orElseThrow`, `.orElse` or `.or` methods
222+
223+
Java Developer Brian Goetz also writes regarding this topic:
224+
225+
> Java 8 was a huge improvement to the platform, but one of the few mistakes we made was the naming of `Optional.get()`, because the name just invites people to call it without calling `isPresent()`, undermining the whole point of using `Optional` in the first place.
226+
>
227+
> During the Java 9 time frame, we proposed to deprecate `Optional.get()`, but the public response to that was ... let's say cold. As a smaller step, we introduced `orElseThrow()` in 10 (see [JDK-8140281](https://bugs.openjdk.java.net/browse/JDK-8140281)) as a more transparently named synonym for the current pernicious behavior of `get()`. IDEs warn on unconditional use of `get()`, but not on `orElseThrow()`, which is a step forward in teaching people to code better. The question is, in a sense, a "glass half empty" view of the current situation; `get()` is still problematic.
228+
</description>
229+
<priority>3</priority>
230+
<properties>
231+
<property name="xpath">
232+
<value>
233+
<![CDATA[
234+
//MethodCall[pmd-java:matchesSig('java.util.Optional#get()')]
235+
]]>
236+
</value>
237+
</property>
238+
</properties>
239+
</rule>
240+
211241
<rule name="AvoidStringBuilderOrBuffer"
212242
language="java"
213243
message="StringBuilder/StringBuffer should not be used"

.github/workflows/broken-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919

2020
- name: Link Checker
2121
id: lychee
22-
uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2
22+
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2
2323
with:
2424
fail: false # Don't fail on broken links, create an issue instead
2525

.github/workflows/check-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
fi
7979
8080
- name: Upload demo files
81-
uses: actions/upload-artifact@v6
81+
uses: actions/upload-artifact@v7
8282
with:
8383
name: demo-files-java-${{ matrix.java }}
8484
path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar
@@ -161,7 +161,7 @@ jobs:
161161

162162
- name: Upload report
163163
if: always()
164-
uses: actions/upload-artifact@v6
164+
uses: actions/upload-artifact@v7
165165
with:
166166
name: pmd-report
167167
if-no-files-found: ignore
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Report workflow security problems
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ develop ]
7+
paths:
8+
- '.github/workflows/**'
9+
10+
permissions:
11+
issues: write
12+
13+
jobs:
14+
prt:
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 15
17+
# Only run this in our repos (Prevent notification spam by forks)
18+
if: ${{ github.repository_owner == 'xdev-software' }}
19+
steps:
20+
- uses: actions/checkout@v6
21+
22+
- name: Check
23+
id: check
24+
run: |
25+
grep -l 'pull_request_target:' --exclude report-gha-workflow-security-problems.yml *.yml > reported.txt && exit 1 || exit 0
26+
working-directory: .github/workflows
27+
28+
- name: Find already existing issue
29+
id: find-issue
30+
if: ${{ !cancelled() }}
31+
run: |
32+
echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title "Incorrectly configure GHA workflow (prt)"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT
33+
env:
34+
GH_TOKEN: ${{ github.token }}
35+
36+
- name: Close issue if everything is fine
37+
if: ${{ success() && steps.find-issue.outputs.number != '' }}
38+
run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }}
39+
env:
40+
GH_TOKEN: ${{ github.token }}
41+
42+
- name: Create report
43+
if: ${{ failure() && steps.check.conclusion == 'failure' }}
44+
run: |
45+
echo 'Detected usage of `pull_request_target`. This event is dangerous and MUST NOT BE USED AT ALL COST!' > reported.md
46+
echo '' >> reported.md
47+
echo '/cc @xdev-software/gha-workflow-security' >> reported.md
48+
echo '' >> reported.md
49+
echo '```' >> reported.md
50+
cat .github/workflows/reported.txt >> reported.md
51+
echo '```' >> reported.md
52+
cat reported.md
53+
54+
- name: Create Issue From File
55+
if: ${{ failure() && steps.check.conclusion == 'failure' }}
56+
uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6
57+
with:
58+
issue-number: ${{ steps.find-issue.outputs.number }}
59+
title: 'Incorrectly configure GHA workflow (prt)'
60+
content-filepath: ./reported.md
61+
labels: bug, automated

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<dependency>
4646
<groupId>com.puppycrawl.tools</groupId>
4747
<artifactId>checkstyle</artifactId>
48-
<version>13.0.0</version>
48+
<version>13.3.0</version>
4949
</dependency>
5050
</dependencies>
5151
<configuration>
@@ -83,12 +83,12 @@
8383
<dependency>
8484
<groupId>net.sourceforge.pmd</groupId>
8585
<artifactId>pmd-core</artifactId>
86-
<version>7.20.0</version>
86+
<version>7.22.0</version>
8787
</dependency>
8888
<dependency>
8989
<groupId>net.sourceforge.pmd</groupId>
9090
<artifactId>pmd-java</artifactId>
91-
<version>7.20.0</version>
91+
<version>7.22.0</version>
9292
</dependency>
9393
</dependencies>
9494
</plugin>

vaadin-date-range-picker-demo/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
<plugin>
153153
<groupId>org.apache.maven.plugins</groupId>
154154
<artifactId>maven-compiler-plugin</artifactId>
155-
<version>3.14.1</version>
155+
<version>3.15.0</version>
156156
<configuration>
157157
<release>${maven.compiler.release}</release>
158158
<compilerArgs>

vaadin-date-range-picker/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
<plugin>
120120
<groupId>org.apache.maven.plugins</groupId>
121121
<artifactId>maven-compiler-plugin</artifactId>
122-
<version>3.14.1</version>
122+
<version>3.15.0</version>
123123
<configuration>
124124
<release>${maven.compiler.release}</release>
125125
<compilerArgs>
@@ -261,7 +261,7 @@
261261
<dependency>
262262
<groupId>com.puppycrawl.tools</groupId>
263263
<artifactId>checkstyle</artifactId>
264-
<version>13.0.0</version>
264+
<version>13.3.0</version>
265265
</dependency>
266266
</dependencies>
267267
<configuration>
@@ -299,12 +299,12 @@
299299
<dependency>
300300
<groupId>net.sourceforge.pmd</groupId>
301301
<artifactId>pmd-core</artifactId>
302-
<version>7.20.0</version>
302+
<version>7.22.0</version>
303303
</dependency>
304304
<dependency>
305305
<groupId>net.sourceforge.pmd</groupId>
306306
<artifactId>pmd-java</artifactId>
307-
<version>7.20.0</version>
307+
<version>7.22.0</version>
308308
</dependency>
309309
</dependencies>
310310
</plugin>

0 commit comments

Comments
 (0)