Skip to content

Commit d00d8e7

Browse files
renovate[bot]gjong
andauthored
Update dependency io.micronaut.platform:micronaut-platform to v4.5.0 (#30)
* Update dependency io.micronaut.platform:micronaut-platform to v4.5.0 * Fix failures after version bump micronaut. * Auto generate JSON schemas for classes. * Resolve issue with always calling expensive methods in logging. --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gerben Jongerius <g.jongerius@jong-soft.com>
1 parent 6f950a1 commit d00d8e7

23 files changed

+118
-373
lines changed

bpmn-process/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ micronaut {
22
testRuntime("junit5")
33
}
44

5+
tasks.compileJava {
6+
options.compilerArgs.add("-Amicronaut.jsonschema.baseUri=https://www.pledger.io/schemas") // (1)
7+
}
8+
59
dependencies {
10+
annotationProcessor(mn.micronaut.json.schema.processor)
611
annotationProcessor(mn.lombok)
712

813
implementation(libs.lang)
@@ -19,6 +24,7 @@ dependencies {
1924
implementation(mn.micronaut.jackson.databind)
2025
implementation(mn.micronaut.serde.jackson)
2126
implementation(mn.validation)
27+
implementation(mn.micronaut.json.schema.annotations)
2228

2329
implementation(project(":core"))
2430
implementation(project(":domain"))

bpmn-process/src/main/java/com/jongsoft/finance/serialized/AccountJson.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,43 @@
22

33
import com.jongsoft.finance.domain.account.Account;
44
import com.jongsoft.finance.schedule.Periodicity;
5+
import io.micronaut.core.annotation.NonNull;
6+
import io.micronaut.core.annotation.Nullable;
7+
import io.micronaut.jsonschema.JsonSchema;
58
import io.micronaut.serde.annotation.Serdeable;
69
import lombok.Builder;
10+
import lombok.Data;
711
import lombok.Getter;
812
import lombok.Setter;
913
import org.bouncycastle.util.encoders.Hex;
1014

1115
import java.io.Serializable;
1216
import java.util.function.Supplier;
1317

14-
@Getter
15-
@Setter
18+
@Data
1619
@Builder
1720
@Serdeable
21+
@JsonSchema(uri = "/account", title = "Account", description = "A account is a financial account that can be used to record transactions.")
1822
public class AccountJson implements Serializable {
1923

24+
/**
25+
* The name of the account.
26+
*/
27+
@NonNull
2028
private String name;
29+
/**
30+
* The description of the account.
31+
*/
2132
private String description;
33+
/**
34+
* The currency of the account, in a 3-letter ISO currency code.
35+
*/
36+
@NonNull
2237
private String currency;
2338

39+
/**
40+
* The icon of the account, in a base64 encoded string.
41+
*/
2442
private String icon;
2543

2644
private double interest;
@@ -29,6 +47,10 @@ public class AccountJson implements Serializable {
2947
private String iban;
3048
private String bic;
3149
private String number;
50+
/**
51+
* The type of the account.
52+
*/
53+
@NonNull
3254
private String type;
3355

3456
public static AccountJson fromDomain(Account account, Supplier<byte[]> iconSupplier) {

bpmn-process/src/main/java/com/jongsoft/finance/serialized/BudgetJson.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,49 @@
11
package com.jongsoft.finance.serialized;
22

33
import com.jongsoft.finance.domain.user.Budget;
4+
import io.micronaut.core.annotation.NonNull;
5+
import io.micronaut.jsonschema.JsonSchema;
46
import io.micronaut.serde.annotation.Serdeable;
57
import lombok.Builder;
6-
import lombok.Getter;
7-
import lombok.Setter;
8+
import lombok.Data;
89

910
import java.io.Serializable;
1011
import java.time.LocalDate;
1112
import java.util.List;
1213
import java.util.stream.Collectors;
1314

14-
@Getter
15-
@Setter
15+
@Data
1616
@Builder
1717
@Serdeable
18+
@JsonSchema(title = "Budget", description = "Budget for a user", uri = "/budget")
1819
public class BudgetJson implements Serializable {
1920

20-
@Getter
21-
@Setter
21+
@Data
2222
@Builder
2323
@Serdeable
24+
@JsonSchema(title = "Expense", description = "Expense for a budget", uri = "/budget-expense")
2425
public static class ExpenseJson implements Serializable {
26+
@NonNull
2527
private String name;
2628
private double lowerBound;
2729
private double upperBound;
2830
}
2931

32+
/**
33+
* Start date of the budget, in ISO 8601 format.
34+
*/
35+
@NonNull
3036
private LocalDate start;
3137
private LocalDate end;
3238

39+
/**
40+
* Expected income for the budget.
41+
*/
3342
private double expectedIncome;
43+
/**
44+
* List of expenses for the budget.
45+
*/
46+
@NonNull
3447
private List<ExpenseJson> expenses;
3548

3649
public static BudgetJson fromDomain(Budget budget) {

bpmn-process/src/main/java/com/jongsoft/finance/serialized/CategoryJson.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
package com.jongsoft.finance.serialized;
22

33
import com.jongsoft.finance.domain.user.Category;
4+
import io.micronaut.core.annotation.NonNull;
5+
import io.micronaut.jsonschema.JsonSchema;
46
import io.micronaut.serde.annotation.Serdeable;
57
import lombok.Builder;
68
import lombok.Data;
7-
import lombok.Getter;
8-
import lombok.Setter;
99

1010
import java.io.Serializable;
1111

12-
@Getter
13-
@Setter
12+
@Data
1413
@Builder
1514
@Serdeable
15+
@JsonSchema(
16+
title = "Category",
17+
description = "Category of a transaction",
18+
uri = "/category"
19+
)
1620
public class CategoryJson implements Serializable {
1721

22+
@NonNull
1823
private String label;
1924
private String description;
2025

bpmn-process/src/main/java/com/jongsoft/finance/serialized/ContractJson.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.jongsoft.finance.serialized;
22

33
import com.jongsoft.finance.domain.account.Contract;
4+
import io.micronaut.core.annotation.NonNull;
5+
import io.micronaut.jsonschema.JsonSchema;
46
import io.micronaut.serde.annotation.Serdeable;
57
import lombok.Builder;
68
import lombok.Data;
@@ -12,18 +14,25 @@
1214
import java.time.LocalDate;
1315
import java.util.function.Supplier;
1416

15-
@Getter
16-
@Setter
17+
@Data
1718
@Builder
1819
@Serdeable
20+
@JsonSchema(title = "Contract", description = "Contract details", uri = "/contract")
1921
public class ContractJson implements Serializable {
2022

23+
@NonNull
2124
private String name;
2225
private String description;
26+
@NonNull
2327
private String company;
28+
/**
29+
* The contract attachment as a hex string.
30+
*/
2431
private String contract;
2532
private boolean terminated;
33+
@NonNull
2634
private LocalDate start;
35+
@NonNull
2736
private LocalDate end;
2837

2938
public static ContractJson fromDomain(Contract contract, Supplier<byte[]> attachmentSupplier) {

bpmn-process/src/main/java/com/jongsoft/finance/serialized/ExportJson.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
package com.jongsoft.finance.serialized;
22

3+
import io.micronaut.jsonschema.JsonSchema;
34
import io.micronaut.serde.annotation.Serdeable;
45
import lombok.Builder;
6+
import lombok.Data;
57
import lombok.Getter;
68
import lombok.Setter;
79

810
import java.io.Serializable;
911
import java.util.List;
1012

11-
@Getter
12-
@Setter
13+
@Data
1314
@Builder
1415
@Serdeable
16+
@JsonSchema(title = "Profile", description = "A user profile", uri = "/profile")
1517
public class ExportJson implements Serializable {
1618

1719
private List<AccountJson> accounts;

bpmn-process/src/main/java/com/jongsoft/finance/serialized/RuleConfigJson.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import com.jongsoft.finance.core.RuleColumn;
44
import com.jongsoft.finance.core.RuleOperation;
55
import com.jongsoft.finance.domain.transaction.TransactionRule;
6+
import io.micronaut.jsonschema.JsonSchema;
67
import io.micronaut.serde.annotation.Serdeable;
78
import lombok.Builder;
9+
import lombok.Data;
810
import lombok.Getter;
911
import lombok.Setter;
1012

@@ -13,16 +15,16 @@
1315
import java.util.function.BiFunction;
1416
import java.util.stream.Collectors;
1517

16-
@Getter
17-
@Setter
18+
@Data
1819
@Builder
1920
@Serdeable
21+
@JsonSchema(title = "Transaction Rules", description = "Configuration for transaction rules", uri = "/rules")
2022
public class RuleConfigJson implements Serializable {
2123

22-
@Getter
23-
@Setter
24+
@Data
2425
@Builder
2526
@Serdeable
27+
@JsonSchema(title = "Transaction Rule", description = "A single transaction rule", uri = "/rule")
2628
public static class RuleJson implements Serializable {
2729
private String name;
2830
private String description;
@@ -57,8 +59,7 @@ public static RuleJson fromDomain(TransactionRule rule, BiFunction<RuleColumn, S
5759

5860
}
5961

60-
@Getter
61-
@Setter
62+
@Data
6263
@Builder
6364
@Serdeable
6465
public static class ConditionJson implements Serializable {
@@ -67,8 +68,7 @@ public static class ConditionJson implements Serializable {
6768
private String value;
6869
}
6970

70-
@Getter
71-
@Setter
71+
@Data
7272
@Builder
7373
@Serdeable
7474
public static class ChangeJson implements Serializable {

bpmn-process/src/main/java/com/jongsoft/finance/serialized/TransactionJson.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,41 @@
11
package com.jongsoft.finance.serialized;
22

33
import com.jongsoft.finance.domain.transaction.Transaction;
4+
import io.micronaut.core.annotation.NonNull;
5+
import io.micronaut.jsonschema.JsonSchema;
46
import io.micronaut.serde.annotation.Serdeable;
57
import lombok.AllArgsConstructor;
68
import lombok.Builder;
9+
import lombok.Data;
710
import lombok.Getter;
811

912
import java.io.Serializable;
1013
import java.time.LocalDate;
1114

15+
@Data
1216
@Builder
13-
@Getter
1417
@Serdeable
15-
@AllArgsConstructor
18+
@JsonSchema(title = "Transaction", description = "Transaction details", uri = "/transaction")
1619
public class TransactionJson implements Serializable {
1720

21+
/**
22+
* The account from which the transaction was made.
23+
*/
24+
@NonNull
1825
private final String fromAccount;
26+
/**
27+
* The account to which the transaction was made.
28+
*/
29+
@NonNull
1930
private final String toAccount;
2031

32+
@NonNull
2133
private final String description;
34+
@NonNull
2235
private final String currency;
2336
private final double amount;
2437

38+
@NonNull
2539
private final LocalDate date;
2640
private final LocalDate interestDate;
2741
private final LocalDate bookDate;

bpmn-process/src/main/resources/schema/account.schema.json

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)