Skip to content

Commit 4769c1f

Browse files
authored
Merge pull request #657 from xdev-software/update-from-template-merged
Update from template (auto-merged)
2 parents 329d338 + 3442f08 commit 4769c1f

11 files changed

Lines changed: 115 additions & 18 deletions

File tree

.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: 3 additions & 3 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
@@ -160,8 +160,8 @@ jobs:
160160
run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -DskipTests -T2C
161161

162162
- name: Upload report
163-
if: always()
164-
uses: actions/upload-artifact@v6
163+
if: ${{ !cancelled() }}
164+
uses: actions/upload-artifact@v7
165165
with:
166166
name: pmd-report
167167
if-no-files-found: ignore

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
8888
- name: Create Release
8989
id: create-release
90-
uses: shogo82148/actions-create-release@559c27ce7eb834825e2b55927c64f6d1bd1db716 # v1
90+
uses: shogo82148/actions-create-release@6a396031bc74c57403da1018fec74d24c6aa03cd # v1
9191
with:
9292
tag_name: v${{ steps.version.outputs.release }}
9393
release_name: v${{ steps.version.outputs.release }}
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

.idea/externalDependencies.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
wrapperVersion=3.3.4
22
distributionType=only-script
3-
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip
3+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip

flow-demo/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
<mainClass>software.xdev.vaadin.Application</mainClass>
3030

3131
<!-- Dependency-Versions -->
32-
<vaadin.version>25.0.3</vaadin.version>
32+
<vaadin.version>25.0.7</vaadin.version>
3333

34-
<org.springframework.boot.version>4.0.2</org.springframework.boot.version>
34+
<org.springframework.boot.version>4.0.3</org.springframework.boot.version>
3535
</properties>
3636

3737
<dependencyManagement>
@@ -167,7 +167,7 @@
167167
<plugin>
168168
<groupId>org.apache.maven.plugins</groupId>
169169
<artifactId>maven-compiler-plugin</artifactId>
170-
<version>3.14.1</version>
170+
<version>3.15.0</version>
171171
<configuration>
172172
<release>${maven.compiler.release}</release>
173173
<compilerArgs>

flow/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
5050

5151
<!-- Dependency-Versions -->
52-
<vaadin.version>25.0.3</vaadin.version>
52+
<vaadin.version>25.0.7</vaadin.version>
5353
</properties>
5454

5555
<dependencyManagement>
@@ -125,7 +125,7 @@
125125
<plugin>
126126
<groupId>org.apache.maven.plugins</groupId>
127127
<artifactId>maven-compiler-plugin</artifactId>
128-
<version>3.14.1</version>
128+
<version>3.15.0</version>
129129
<configuration>
130130
<release>${maven.compiler.release}</release>
131131
<compilerArgs>
@@ -267,7 +267,7 @@
267267
<dependency>
268268
<groupId>com.puppycrawl.tools</groupId>
269269
<artifactId>checkstyle</artifactId>
270-
<version>13.0.0</version>
270+
<version>13.3.0</version>
271271
</dependency>
272272
</dependencies>
273273
<configuration>
@@ -305,12 +305,12 @@
305305
<dependency>
306306
<groupId>net.sourceforge.pmd</groupId>
307307
<artifactId>pmd-core</artifactId>
308-
<version>7.20.0</version>
308+
<version>7.22.0</version>
309309
</dependency>
310310
<dependency>
311311
<groupId>net.sourceforge.pmd</groupId>
312312
<artifactId>pmd-java</artifactId>
313-
<version>7.20.0</version>
313+
<version>7.22.0</version>
314314
</dependency>
315315
</dependencies>
316316
</plugin>

0 commit comments

Comments
 (0)