Skip to content

Commit c4157d9

Browse files
authored
update dependencies (#11)
* update dependencies * revert to java 25 and fix deprecated annotations * add nullaway, errorprone, archunit and remove package-info-files * add ArchitectureTest, use FakerExtended and add annotations * requested changes * requested change
1 parent 19c067a commit c4157d9

34 files changed

Lines changed: 207 additions & 91 deletions

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ jobs:
1111
runs-on: ubuntu-24.04
1212
timeout-minutes: 10
1313
steps:
14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v7
1515
- uses: aboutbits/github-actions-java/setup-with-maven@v4
1616
with:
17-
java-version: 21
17+
java-version: 25
1818
- name: Test
1919
env:
2020
GITHUB_USER_NAME: ${{ github.actor }}

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ jobs:
1313
runs-on: ubuntu-24.04
1414
timeout-minutes: 15
1515
steps:
16-
- uses: actions/checkout@v5
16+
- uses: actions/checkout@v7
1717
with:
1818
token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
1919
- uses: aboutbits/github-actions-base/git-setup@v2
2020
- uses: aboutbits/github-actions-java/setup-with-maven@v4
2121
with:
22-
java-version: 21
22+
java-version: 25
2323
- uses: aboutbits/github-actions-java/set-version-with-maven@v4
2424
with:
2525
version: "${{ github.event.inputs.version }}"

.idea/misc.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pom.xml

Lines changed: 68 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>org.springframework.boot</groupId>
88
<artifactId>spring-boot-starter-parent</artifactId>
9-
<version>3.2.2</version>
9+
<version>4.0.4</version>
1010
<relativePath/> <!-- lookup parent from repository -->
1111
</parent>
1212

@@ -16,10 +16,22 @@
1616
<description>Spring Boot Email Service</description>
1717

1818
<properties>
19-
<java.version>21</java.version>
20-
<mapstruct.version>1.5.5.Final</mapstruct.version>
19+
<java.version>25</java.version>
20+
<mapstruct.version>1.6.3</mapstruct.version>
21+
<nullaway.version>0.13.2</nullaway.version>
22+
<errorprone.version>2.49.0</errorprone.version>
2123
</properties>
2224

25+
<dependencyManagement>
26+
<dependencies>
27+
<dependency>
28+
<groupId>it.aboutbits</groupId>
29+
<artifactId>archunit-toolbox</artifactId>
30+
<version>1.1.0</version>
31+
</dependency>
32+
</dependencies>
33+
</dependencyManagement>
34+
2335
<dependencies>
2436
<dependency>
2537
<groupId>org.springframework.boot</groupId>
@@ -57,49 +69,59 @@
5769
<groupId>org.postgresql</groupId>
5870
<artifactId>postgresql</artifactId>
5971
</dependency>
60-
<dependency>
61-
<groupId>io.hypersistence</groupId>
62-
<artifactId>hypersistence-utils-hibernate-63</artifactId>
63-
<version>3.7.0</version>
64-
</dependency>
6572
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
6673
<dependency>
6774
<groupId>com.fasterxml.jackson.core</groupId>
6875
<artifactId>jackson-databind</artifactId>
6976
</dependency>
70-
7177
<dependency>
72-
<groupId>com.github.javafaker</groupId>
73-
<artifactId>javafaker</artifactId>
74-
<version>1.0.2</version>
78+
<groupId>net.datafaker</groupId>
79+
<artifactId>datafaker</artifactId>
80+
<version>2.7.0</version>
7581
<scope>test</scope>
7682
</dependency>
7783
<dependency>
7884
<groupId>org.testcontainers</groupId>
7985
<artifactId>testcontainers</artifactId>
80-
<version>1.18.0</version>
86+
<version>2.0.5</version>
8187
<scope>test</scope>
8288
</dependency>
8389
<dependency>
8490
<groupId>org.testcontainers</groupId>
85-
<artifactId>junit-jupiter</artifactId>
86-
<version>1.18.0</version>
91+
<artifactId>testcontainers-junit-jupiter</artifactId>
92+
<version>2.0.5</version>
8793
<scope>test</scope>
8894
</dependency>
8995
<dependency>
9096
<groupId>org.testcontainers</groupId>
91-
<artifactId>postgresql</artifactId>
92-
<version>1.18.0</version>
97+
<artifactId>testcontainers-postgresql</artifactId>
98+
<version>2.0.5</version>
9399
<scope>test</scope>
94100
</dependency>
101+
<dependency>
102+
<groupId>com.tngtech.archunit</groupId>
103+
<artifactId>archunit-junit5</artifactId>
104+
<version>1.4.2</version>
105+
<scope>test</scope>
106+
</dependency>
107+
<dependency>
108+
<groupId>it.aboutbits</groupId>
109+
<artifactId>archunit-toolbox</artifactId>
110+
<scope>test</scope>
111+
</dependency>
112+
<dependency>
113+
<groupId>it.aboutbits</groupId>
114+
<artifactId>spring-boot-testing</artifactId>
115+
<version>2.5.0</version>
116+
</dependency>
95117
</dependencies>
96118

97119
<build>
98120
<plugins>
99121
<plugin>
100122
<groupId>org.apache.maven.plugins</groupId>
101123
<artifactId>maven-compiler-plugin</artifactId>
102-
<version>3.11.0</version>
124+
<version>3.15.0</version>
103125
<configuration>
104126
<source>${java.version}</source>
105127
<target>${java.version}</target>
@@ -119,17 +141,43 @@
119141
<artifactId>lombok-mapstruct-binding</artifactId>
120142
<version>0.2.0</version>
121143
</path>
144+
<path>
145+
<groupId>com.google.errorprone</groupId>
146+
<artifactId>error_prone_core</artifactId>
147+
<version>${errorprone.version}</version>
148+
</path>
149+
<path>
150+
<groupId>com.uber.nullaway</groupId>
151+
<artifactId>nullaway</artifactId>
152+
<version>${nullaway.version}</version>
153+
</path>
122154
</annotationProcessorPaths>
123155
<compilerArgs>
124156
<arg>-Amapstruct.defaultComponentModel=spring</arg>
125157
<arg>-Amapstruct.unmappedTargetPolicy=ERROR</arg>
158+
<arg>-XDcompilePolicy=simple</arg>
159+
<arg>--should-stop=ifError=FLOW</arg>
160+
<!-- @formatter:off -->
161+
<arg>-Xplugin:ErrorProne -XepDisableAllChecks -XepOpt:NullAway:AnnotatedPackages=it.aboutbits.springboot.emailservice -XepOpt:NullAway:JSpecifyMode=true -Xep:NullAway:ERROR -XepOpt:NullAway:ExcludedFieldAnnotations=org.mockito.InjectMocks,org.mockito.Mock</arg>
162+
<!-- @formatter:on -->
163+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
164+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
165+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
166+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
167+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
168+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
169+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
170+
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
171+
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
172+
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
126173
</compilerArgs>
174+
<fork>true</fork>
127175
</configuration>
128176
</plugin>
129177
<plugin>
130178
<groupId>org.apache.maven.plugins</groupId>
131179
<artifactId>maven-checkstyle-plugin</artifactId>
132-
<version>3.2.1</version>
180+
<version>3.6.0</version>
133181
<configuration>
134182
<configLocation>checkstyle.xml</configLocation>
135183
<suppressionsFileExpression>
@@ -154,7 +202,7 @@
154202
<dependency>
155203
<groupId>com.puppycrawl.tools</groupId>
156204
<artifactId>checkstyle</artifactId>
157-
<version>10.3.4</version>
205+
<version>13.5.0</version>
158206
</dependency>
159207
</dependencies>
160208
</plugin>

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A reusable mailer service to send emails.
44

55
## Setup
66

7-
Add the mailer service to the classpath by adding the following maven dependency. Versions haven be found [here](../../packages)
7+
Add the mailer service to the classpath by adding the following maven dependency. Versions can be found [here](../../packages)
88

99
```xml
1010

src/main/java/it/aboutbits/springboot/emailservice/EmailServiceConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import it.aboutbits.springboot.emailservice.lib.application.UnavailableAttachmentDataSource;
1616
import it.aboutbits.springboot.emailservice.lib.jpa.EmailRepository;
1717
import jakarta.persistence.EntityManager;
18+
import org.jspecify.annotations.NullMarked;
1819
import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
1920
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2021
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -25,6 +26,7 @@
2526
import java.util.List;
2627

2728
@AutoConfigurationPackage
29+
@NullMarked
2830
public class EmailServiceConfiguration {
2931
@Bean(initMethod = "migrate")
3032
@ConditionalOnProperty(value = "aboutbits.emailservice.migrations.enabled", matchIfMissing = true)

src/main/java/it/aboutbits/springboot/emailservice/lib/AttachmentCleanerCallback.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package it.aboutbits.springboot.emailservice.lib;
22

3+
import org.jspecify.annotations.NullMarked;
4+
5+
@NullMarked
36
public interface AttachmentCleanerCallback {
47
void report(Report report);
58

src/main/java/it/aboutbits/springboot/emailservice/lib/AttachmentDataSource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package it.aboutbits.springboot.emailservice.lib;
22

33
import it.aboutbits.springboot.emailservice.lib.exception.AttachmentException;
4+
import org.jspecify.annotations.NullMarked;
45

56
import java.io.InputStream;
67

8+
@NullMarked
79
public interface AttachmentDataSource {
810
InputStream getAttachmentPayload(long fileReference) throws AttachmentException;
911

src/main/java/it/aboutbits/springboot/emailservice/lib/EmailAttachmentDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package it.aboutbits.springboot.emailservice.lib;
22

33
import it.aboutbits.springboot.emailservice.lib.model.Email;
4+
import org.jspecify.annotations.NullMarked;
45

6+
@NullMarked
57
public record EmailAttachmentDto(
68
long id,
79

src/main/java/it/aboutbits/springboot/emailservice/lib/EmailDto.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package it.aboutbits.springboot.emailservice.lib;
22

3-
import org.springframework.lang.Nullable;
3+
import org.jspecify.annotations.NullMarked;
4+
import org.jspecify.annotations.Nullable;
45

56
import java.time.OffsetDateTime;
67
import java.util.List;
78
import java.util.Set;
89

10+
@NullMarked
911
public record EmailDto(
1012
long id,
1113

@@ -29,9 +31,12 @@ public record EmailDto(
2931
Set<EmailAttachmentDto> attachments,
3032

3133
OffsetDateTime scheduledAt,
34+
@Nullable
3235
OffsetDateTime sentAt,
3336

37+
@Nullable
3438
OffsetDateTime errorAt,
39+
@Nullable
3540
String errorMessage,
3641

3742
OffsetDateTime createdAt,

0 commit comments

Comments
 (0)