-
Notifications
You must be signed in to change notification settings - Fork 74
Java 8 maintenance #159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Java 8 maintenance #159
Conversation
📝 WalkthroughWalkthroughThis pull request implements a version downgrade in the changelog and updates several project configurations (e.g., dependency versions and Java toolchain settings). Numerous import statements have been updated from Jakarta to Javax namespaces. The JSON serialization logic in the core MX model has been consolidated by removing deprecated methods and unifying Gson configurations. Date handling throughout the API has been refactored by replacing OffsetDateTime with XMLGregorianCalendar, with corresponding changes in header classes and utility methods. New adapter and utility classes have been added to facilitate ISO 8601-compliant XML date and time conversions while several outdated test files have been removed or replaced. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant AbstractMX
participant GsonBuilder
participant XMLGregorianCalendarAdapter
Client->>AbstractMX: toJson() method call
AbstractMX->>GsonBuilder: Build Gson with registered adapters
GsonBuilder->>XMLGregorianCalendarAdapter: Invoke serialize() for XMLGregorianCalendar
XMLGregorianCalendarAdapter-->>GsonBuilder: Return JSON element
GsonBuilder-->>AbstractMX: Return complete JSON string
AbstractMX-->>Client: JSON serialization output
Possibly related PRs
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🧰 Additional context used🪛 LanguageToolCHANGELOG.md[uncategorized] ~5-~5: This verb may not be in the correct form. Consider using a different form for this context. (AI_EN_LECTOR_REPLACEMENT_VERB_FORM) 🪛 markdownlint-cli2 (0.17.2)CHANGELOG.md3-3: Heading levels should only increment by one level at a time (MD001, heading-increment) 3-3: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 4-4: Unordered list indentation (MD007, ul-indent) 4-4: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 5-5: Unordered list indentation (MD007, ul-indent) 7-7: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 8-8: Unordered list indentation (MD007, ul-indent) 8-8: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 10-10: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 11-11: Unordered list indentation (MD007, ul-indent) 11-11: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 12-12: Unordered list indentation (MD007, ul-indent) 13-13: Unordered list indentation (MD007, ul-indent) 14-14: Unordered list indentation (MD007, ul-indent) 14-14: Trailing spaces (MD009, no-trailing-spaces) 15-15: Unordered list indentation (MD007, ul-indent) 16-16: Unordered list indentation (MD007, ul-indent) 17-17: Trailing spaces (MD009, no-trailing-spaces) 18-18: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 19-19: Unordered list indentation (MD007, ul-indent) 19-19: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 21-21: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 22-22: Unordered list indentation (MD007, ul-indent) 22-22: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 23-23: Unordered list indentation (MD007, ul-indent) 25-25: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 26-26: Unordered list indentation (MD007, ul-indent) 26-26: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 28-28: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 29-29: Unordered list indentation (MD007, ul-indent) 29-29: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 30-30: Unordered list indentation (MD007, ul-indent) 32-32: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 42-42: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 43-43: Unordered list indentation (MD007, ul-indent) 43-43: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 44-44: Trailing spaces (MD009, no-trailing-spaces) 45-45: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 46-46: Unordered list indentation (MD007, ul-indent) 46-46: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 47-47: Unordered list indentation (MD007, ul-indent) 48-48: Unordered list indentation (MD007, ul-indent) 49-49: Unordered list indentation (MD007, ul-indent) 50-50: Unordered list indentation (MD007, ul-indent) 52-52: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 53-53: Unordered list indentation (MD007, ul-indent) 53-53: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 54-54: Unordered list indentation (MD007, ul-indent) 56-56: Headings should be surrounded by blank lines (MD022, blanks-around-headings) 57-57: Unordered list indentation (MD007, ul-indent) 57-57: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 59-59: Headings should be surrounded by blank lines (MD022, blanks-around-headings) ⏰ Context from checks skipped due to timeout of 90000ms (2)
🔇 Additional comments (10)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 13
🔭 Outside diff range comments (1)
CHANGELOG.md (1)
1-160
: 🧹 Nitpick (assertive)Address markdown linting issues.
The static analysis tool has flagged numerous formatting issues in the markdown file. While these don't affect functionality, improving the formatting would enhance readability.
Consider fixing the following markdown issues:
- Ensure consistent heading levels (h2 for sections, h4 for versions)
- Add blank lines around headings
- Use consistent indentation for list items (0 spaces instead of 2)
- Add blank lines around lists
- Remove trailing spaces
For example:
# Prowide ISO 20022 - CHANGELOG -#### 9.5.7 - SNAPSHOT +## 9.5.7 - SNAPSHOT + - * Enhanced the MX parser log verbosity when parsing malformed content - * Added new logic to MxNode to removing all leaves with empty attributes and empty content +* Enhanced the MX parser log verbosity when parsing malformed content +* Added new logic to MxNode to removing all leaves with empty attributes and empty content🧰 Tools
🪛 LanguageTool
[typographical] ~74-~74: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...Added new business process and messages for: caad, cafc, cain, casp * Removed obso...(RP_COLON)
[uncategorized] ~156-~156: This expression is usually spelled with a hyphen.
Context: ...1 - May 2021 * Added a new extensible interface based model for the application headers: AppH...(BASED_HYPHEN)
🪛 markdownlint-cli2 (0.17.2)
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4(MD001, heading-increment)
3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
4-4: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
4-4: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
5-5: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
8-8: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
8-8: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
10-10: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
11-11: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
11-11: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
12-12: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
13-13: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
14-14: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
14-14: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
15-15: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
16-16: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
18-18: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
19-19: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
19-19: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
21-21: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
22-22: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
22-22: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
23-23: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
25-25: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
26-26: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
26-26: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
28-28: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
29-29: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
29-29: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
30-30: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
32-32: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
33-33: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
33-33: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
34-34: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
34-34: Bare URL used
null(MD034, no-bare-urls)
35-35: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
36-36: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
37-37: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
38-38: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
39-39: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
40-40: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
42-42: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
43-43: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
43-43: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
44-44: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
45-45: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
46-46: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
46-46: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
47-47: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
48-48: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
49-49: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
50-50: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
52-52: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
53-53: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
53-53: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
54-54: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
56-56: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
57-57: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
57-57: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
59-59: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
60-60: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
60-60: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
62-62: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
63-63: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
63-63: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
64-64: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
64-64: Bare URL used
null(MD034, no-bare-urls)
66-66: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
67-67: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
67-67: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
69-69: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
70-70: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
70-70: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
72-72: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
73-73: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
73-73: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
74-74: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
75-75: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
76-76: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
78-78: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
79-79: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
79-79: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
81-81: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
82-82: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
82-82: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
84-84: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
85-85: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
85-85: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
87-87: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
88-88: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
88-88: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
89-89: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
89-89: Bare URL used
null(MD034, no-bare-urls)
90-90: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
91-91: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
93-93: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
94-94: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
94-94: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
95-95: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
96-96: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
97-97: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
98-98: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
100-100: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
101-101: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
101-101: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
103-103: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
104-104: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
104-104: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
106-106: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
107-107: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
107-107: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
108-108: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
109-109: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
111-111: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
112-112: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
112-112: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
114-114: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
115-115: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
115-115: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
116-116: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
117-117: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
118-118: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
120-120: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
121-121: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
121-121: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
122-122: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
122-122: Bare URL used
null(MD034, no-bare-urls)
124-124: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
125-125: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
125-125: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
126-126: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
127-127: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
129-129: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
130-130: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
130-130: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
132-132: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
133-133: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
133-133: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
135-135: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
136-136: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
136-136: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
138-138: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
139-139: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
139-139: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
140-140: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
141-141: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
142-142: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
143-143: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
144-144: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
145-145: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
147-147: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
148-148: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
148-148: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
149-149: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
151-151: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
152-152: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
152-152: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
153-153: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
153-153: Bare URL used
null(MD034, no-bare-urls)
155-155: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
156-156: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
156-156: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
157-157: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
159-159: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
160-160: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
160-160: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
160-160: Files should end with a single newline character
null(MD047, single-trailing-newline)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (241)
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100107.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100108.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200107.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200108.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300107.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300108.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600106.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600107.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02700101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02700102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02700103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02700104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02700105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02800101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02800102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02800103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02800104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02800105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02900101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02900102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02900103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02900104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02900105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03000101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03000102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03000103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03000104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03100101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03100102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03100103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03100104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03100105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03200101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03200102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03200103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03200104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03200105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03300101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03300102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03400101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03400102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03400103.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03400104.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03400105.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03500101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03500102.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03600101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03700101.java
is excluded by!**/generated/**
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt03700102.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AcceptedStatusReason1Choice.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AcceptedStatusReason1Code.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/Account23.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/Account32.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountAdditionalInformationRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountAdditionalInformationRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountAdditionalInformationRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountAdditionalInformationRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAdditionalInformationRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAdditionalInformationRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAdditionalInformationRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAdditionalInformationRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAmendmentRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAmendmentRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAmendmentRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingAmendmentRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountClosingRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountContract2.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountContract3.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountContract4.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDesignation1Choice.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmation.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV05.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV06.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV07.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountDetailsConfirmationV08.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceAmendmentRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceAmendmentRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceAmendmentRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceAmendmentRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountExcludedMandateMaintenanceRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountForAction1.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountForAction2.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementConfirmation1.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementConfirmation2.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementConfirmation3.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementConfirmation4.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementConfirmation5.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference1.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference2.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference3.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference4.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementMessageReference5.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatus1Code.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusAndReason1.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusAndReason2.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusAndReason3.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusAndReason4.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusAndReason5.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReport.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV05.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV06.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementStatusReportV07.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementType1Code.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementType2Code.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountManagementType3Code.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceAmendmentRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceAmendmentRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceAmendmentRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceAmendmentRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceRequestV01.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceRequestV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceRequestV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountMandateMaintenanceRequestV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountModificationInstruction.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountModificationInstructionV02.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountModificationInstructionV03.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountModificationInstructionV04.java
is excluded by!**/generated/**
model-acmt-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/AccountModificationInstructionV05.java
is excluded by!**/generated/**
📒 Files selected for processing (59)
CHANGELOG.md
(2 hunks)build.gradle
(9 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/MxSwiftMessage.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java
(4 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMXAdapter.java
(2 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdr.java
(2 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdrFactory.java
(6 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java
(4 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java
(3 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java
(3 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV04.java
(3 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCache.java
(2 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImpl.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextLoader.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java
(3 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxParseUtils.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadConfiguration.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadParams.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteConfiguration.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteImpl.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteParams.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteUtils.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarAdapter.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/SimpleDateAdapter.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/TypeAdaptersConfiguration.java
(3 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedDateTimeAdapter.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedTimeAdapter.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapter.java
(1 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapter.java
(0 hunks)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/sys/dic/package-info.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/issues/Issue11.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/issues/Jira1567.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTestAdapters.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonV9Test.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AppHdrParserTest.java
(2 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/GuavaJaxbContextCache.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImplTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxReadImplTest.java
(2 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/DateTimeJsonAdapterBackwardCompatibilityTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/DefaultXMLGregorianCalendarAdapterTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/IssueJira1566Test.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateJsonAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteAdaptersTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteWithAdaptersTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeJsonAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/TestCustomAdapter.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapterTest.java
(0 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZonedDateTimeAdapterTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZonedTimeAdapterTest.java
(1 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapterTest.java
(3 hunks)iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterUnmarshallingTest.java
(0 hunks)
💤 Files with no reviewable changes (17)
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateJsonAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeJsonAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteAdaptersTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/issues/Jira1567.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTestAdapters.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterUnmarshallingTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/DateTimeJsonAdapterBackwardCompatibilityTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonV9Test.java
- iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapter.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapterTest.java
- iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/IssueJira1566Test.java
- iso20022-core/src/test/java/com/prowidesoftware/issues/Issue11.java
🧰 Additional context used
🧬 Code Graph Analysis (10)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedDateTimeAdapter.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java (1)
AdapterUtils
(31-65)
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTest.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java (1)
AbstractMX
(66-580)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java (4)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java (1)
XmlAccessorType
(51-312)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java (1)
XmlAccessorType
(49-305)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java (1)
XmlAccessorType
(48-298)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
XMLGregorianCalendarUtils
(33-57)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapter.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java (1)
AdapterUtils
(31-65)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java (2)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java (1)
XmlAccessorType
(48-298)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
XMLGregorianCalendarUtils
(33-57)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdrFactory.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
XMLGregorianCalendarUtils
(33-57)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/SimpleDateAdapter.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java (1)
AdapterUtils
(31-65)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java (3)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapter.java (1)
ZuluDateTimeAdapter
(39-117)model-common-types/src/generated/java/com/prowidesoftware/swift/model/mx/dic/BusinessApplicationHeaderV01Impl.java (1)
XmlAccessorType
(31-392)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
XMLGregorianCalendarUtils
(33-57)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedTimeAdapter.java (1)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java (1)
AdapterUtils
(31-65)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java (4)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java (1)
XmlAccessorType
(51-312)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java (1)
XmlAccessorType
(49-307)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java (1)
XmlAccessorType
(49-305)iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
XMLGregorianCalendarUtils
(33-57)
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4
(MD001, heading-increment)
3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
4-4: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
4-4: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
5-5: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
8-8: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
8-8: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
10-10: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
11-11: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
11-11: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
12-12: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
13-13: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
14-14: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
14-14: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
15-15: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
16-16: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
18-18: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
19-19: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
19-19: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
21-21: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
22-22: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
22-22: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
23-23: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
25-25: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
26-26: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
26-26: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
28-28: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
29-29: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
29-29: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
30-30: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
32-32: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
42-42: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
43-43: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
43-43: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
44-44: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
45-45: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
46-46: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
46-46: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
47-47: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
48-48: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
49-49: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
50-50: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
52-52: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
53-53: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
53-53: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
54-54: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
56-56: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
57-57: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
57-57: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
59-59: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (138)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteUtils.java (1)
18-21
: Update JAXB Imports to JavaxThe changes correctly update the import statements from
jakarta.xml.bind.*
tojavax.xml.bind.*
, ensuring compatibility with Java 8. This adjustment aligns with the PR objective of back-porting to Java 8 by reverting to the legacy JAXB API.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteParams.java (1)
19-19
: Updated JAXB Import for Java 8 CompatibilityThe import statement has been changed from
jakarta.xml.bind.JAXBContext
tojavax.xml.bind.JAXBContext
, which aligns with the back-port goal for Java 8 compatibility. This update ensures that the code leverages legacy JAXB APIs available in Java 8 and maintains consistency with other changes in the project.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/TestCustomAdapter.java (3)
1-15
: License header looks good.The Apache License 2.0 header is properly included with the correct copyright information.
16-21
: Import statements align with Java 8 backport objective.The imports correctly use the legacy
javax.xml.bind
package rather than the Jakarta namespace, which aligns with the PR objective of ensuring Java 8 compatibility. The use ofXMLGregorianCalendar
instead of the Java 8+ time API is also consistent with the backport goal.
22-33
: Test adapter implementation ignores input parameters.While this is likely intentional for testing purposes as indicated by the class name, both methods ignore their input parameters:
unmarshal
creates a defaultXMLGregorianCalendar
without using the input stringmarshal
always returns "foobar" regardless of the input calendarThis suggests this class is meant for specific test cases that don't need actual conversion logic.
Is this adapter used in test fixtures where you only need a predictable output rather than actual conversion functionality?
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadParams.java (1)
19-19
: JAXBContext Import Update:
The change fromjakarta.xml.bind.JAXBContext
tojavax.xml.bind.JAXBContext
is correctly applied for Java 8 compatibility. This update aligns well with the back-port objectives and ensures that subsequent JAXB operations work as expected in a Java 8 environment.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteConfiguration.java (1)
21-21
: JAXBContext Import Update:
The modification to importjavax.xml.bind.JAXBContext
instead of the Jakarta version is correctly implemented and consistent with the overall Java 8 back-port. This change maintains compatibility with pre-Jakarta environments.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextLoader.java (1)
19-21
: JAXB Imports Update:
Updating the import statements to usejavax.xml.bind.JAXBContext
andjavax.xml.bind.JAXBException
is an appropriate change that supports Java 8. The revised imports ensure that the context caching mechanism remains functional under the legacy JAXB framework.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImplTest.java (1)
20-21
: JAXB Test Imports Update:
The test file now correctly usesjavax.xml.bind.JAXBContext
andjavax.xml.bind.JAXBException
instead of their Jakarta counterparts. This update is consistent with the changes across the codebase and ensures that tests execute properly in the Java 8 context.iso20022-core/src/main/java/com/prowidesoftware/swift/model/MxSwiftMessage.java (1)
26-26
: JPA Import Update:
Replacing the previous Jakarta Persistence import withjavax.persistence.*
is correctly executed, ensuring that the persistence layer remains compatible with Java 8. This change is in line with the broader effort to revert to legacy APIs.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/GuavaJaxbContextCache.java (1)
21-21
: JAXBContext Import Updated for Java 8 Compatibility
The import on line 21 has been changed from the Jakarta package tojavax.xml.bind.JAXBContext
, which aligns with the project's back-port strategy to Java 8 and supports legacy JAXB.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteImpl.java (1)
26-29
: JAXB Imports Transitioned to Legacy Java EE Namespaces
The import statements forJAXBContext
,JAXBElement
,JAXBException
, andMarshaller
(lines 26–29) have been updated from the Jakarta packages to theirjavax.xml.bind
counterparts. This change is consistent with the objective of ensuring compatibility with Java 8.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/sys/dic/package-info.java (1)
27-28
: JAXB Annotation Imports Updated
The imports forXmlNsForm
andXmlSchema
have been modified to usejavax.xml.bind.annotation
instead of the Jakarta namespace. This update is essential for maintaining Java 8 compatibility and is applied consistently with related changes in the codebase.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxParseUtils.java (1)
36-37
: JAXB Imports Transitioned to Javax for Legacy Support
The import statements on lines 36–37 now pull injavax.xml.bind.*
andjavax.xml.bind.annotation.adapters.XmlAdapter
instead of their Jakarta counterparts. This adjustment ensures that the XML binding functionality remains compatible with Java 8 and follows the project's back-port requirements.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCache.java (1)
19-21
: JAXBContext and JAXBException Imports Updated
The import lines (19–21) now referencejavax.xml.bind.JAXBContext
andjavax.xml.bind.JAXBException
. This update supports the Java 8 maintenance requirement by reverting to legacy JAXB classes, ensuring consistency across the codebase.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImpl.java (1)
20-21
: Import statements updated for Java 8 compatibilityThe imports have been correctly changed from Jakarta EE (
jakarta.xml.bind
) to Java EE (javax.xml.bind
) to maintain backward compatibility with Java 8. This aligns with the PR objective of back-porting to Java 8.iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/AdapterUtils.java (1)
16-65
: New utility class for XMLGregorianCalendar handling looks solidThis new utility class provides necessary methods for handling date-time formatting and parsing with
XMLGregorianCalendar
instead of the newer Java time API. The implementation includes proper error handling with appropriate logging levels and fallback parsing strategies.The class follows good practices:
- Has a private transient logger for debugging
- Handles null values appropriately
- Uses multiple parsing approaches with proper exception handling
- Returns null when parsing fails rather than throwing exceptions
This implementation aligns well with the Java 8 compatibility objective.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedTimeAdapter.java (1)
16-102
: Well-implemented XMLGregorianCalendar adapter with ISO 8601 complianceThis adapter provides a clean implementation for handling XML time elements with
XMLGregorianCalendar
. The code is well-documented and includes multiple constructor options for flexibility.Notable strengths:
- Thread-safety through synchronization on the
SimpleDateFormat
instance- Consistent ISO 8601 formatting with explicit UTC offsets
- Proper handling of fractional seconds
- Support for custom adapter implementations
- Clear JavaDoc explaining the implementation details
The implementation correctly leverages the
AdapterUtils
class for parsing and formatting operations.build.gradle (10)
8-8
: Plugin version downgraded for Java 8 compatibilityThe axion-release-plugin has been downgraded from 1.15.1 to 1.13.6 to maintain Java 8 compatibility.
10-10
: Spotless plugin version downgraded with helpful commentGood explanation in the comment about why the version needs to be 6.13.0 or lower (Java 11 requirement for newer versions).
27-27
: Core version updated to align with Java 8 compatibilityThe prowideCoreVersion has been updated from SRU2024-10.2.5 to SRU2024-9.5.5, which appears to be the Java 8 compatible version.
44-44
: Java language version set to 8The Java toolchain language version has been correctly set to 8, which is essential for the Java 8 backward compatibility goal.
75-75
: Simplified source sets configurationThe sourceSets configuration has been simplified while maintaining the same functionality.
86-87
: Dynamic Java compatibility attributesSource and Target compatibility attributes now use project properties instead of hardcoded values, making the configuration more flexible and consistent with the project settings.
143-144
: Persistence and validation APIs set as compile-only dependenciesCorrectly configured Java EE dependencies as compileOnly to avoid runtime conflicts.
146-150
: Added explicit JAXB dependencies for testingGood practice to explicitly include JAXB implementation dependencies for testing to ensure consistent behavior across different environments. The comment explains the reasoning well.
471-476
: New task for testing on Java 11Added a new test task that allows testing the Java 8 compatible code on Java 11, which helps ensure forward compatibility while maintaining backward compatibility.
323-325
: Aligned dependencies in the POM generation sectionDependencies for POM generation have been updated to match the Java 8 compatible versions used throughout the project.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMXAdapter.java (2)
39-39
: Improved documentation clarityThe added comment provides useful context about the JSON serialization behavior in the Integrator environment, enhancing maintainability.
56-56
: Explicit null initialization improves code clarityWhile Java implicitly initializes class variables to null, the explicit initialization makes the code more readable and the intent clearer. This is especially helpful in this method where the variable is used in a try-catch block.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarUtils.java (1)
1-57
: Well-implemented utility for Java 8-compatible date handlingThis utility class is a well-crafted implementation to create XMLGregorianCalendar instances for UTC time handling. It properly:
- Creates a calendar in UTC timezone
- Uses a specific date format required for XSD validation
- Includes appropriate error handling with logging
The implementation correctly supports the Java 8 compatibility goal by providing date handling compatible with legacy JAXB.
Good practice of making the constructor private (implied since it's not explicitly defined) as this is a utility class with only static methods.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdr.java (1)
22-22
: Appropriate type change for Java 8 compatibilityThe change from
OffsetDateTime
toXMLGregorianCalendar
aligns with the goal of Java 8 compatibility. This change:
- Moves away from newer java.time APIs to classes available in Java 8
- Maintains consistency with JAXB XML binding
- Follows XML standards for date/time representation
This is a well-considered change that supports the overall backport strategy.
Also applies to: 99-99
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxReadImplTest.java (2)
133-134
: Updated test for XMLGregorianCalendar compatibilityThe test has been properly updated to use direct accessor methods on XMLGregorianCalendar instead of the previous java.time approach with ChronoField. This change correctly aligns the test with the implementation changes for Java 8 compatibility.
636-636
: Updated date format in test XMLThe date format in the test XML has been changed from
2013-01-03
to20130103
format, aligning with compact XML date representation. This ensures the tests properly validate the date parsing capabilities with XMLGregorianCalendar.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AppHdrParserTest.java (2)
81-82
: Method access change for Java 8 compatibilityThe test now uses the direct
getYear()
andgetMonth()
methods instead of the Java time API'sChronoField
constants, which is in line with the migration to useXMLGregorianCalendar
instead of newer Java time classes. This change maintains the same validation while ensuring Java 8 compatibility.
187-188
: Method access change for Java 8 compatibilitySimilar to the previous change, these assertions now use the direct accessor methods instead of ChronoField constants to maintain compatibility with XMLGregorianCalendar in Java 8. This approach is consistent with the PR objective of backporting to Java 8.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdrFactory.java (6)
67-67
: Date creation updated for Java 8 compatibilityThe creation date is now set using
XMLGregorianCalendarUtils.now()
instead ofOffsetDateTime.now()
, aligning with the Java 8 backport by using legacy date-time APIs rather than the newer Java time API.
113-113
: Date creation updated for Java 8 compatibilityChanged to use
XMLGregorianCalendarUtils.now()
for consistent date-time handling with Java 8 compatibility.
160-160
: Date creation updated for Java 8 compatibilityThe creation date is now set using
XMLGregorianCalendarUtils.now()
for consistent date-time handling across the application.
176-176
: Version annotation update for Java 8 backportThe
@since
annotation has been changed from10.2.2
to9.5.3
to reflect the version downgrade for Java 8 compatibility, which aligns with the PR objective of backporting the codebase.
207-207
: Date creation updated for Java 8 compatibilityThe creation date is now set using
XMLGregorianCalendarUtils.now()
for consistent date-time handling with Java 8 compatibility.
248-248
: Date creation updated for Java 8 compatibilityChanged to use
XMLGregorianCalendarUtils.now()
for setting the creation date in LegacyAppHdr. This maintains consistency with the Java 8 backport approach across all header types.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/DefaultXMLGregorianCalendarAdapterTest.java (1)
25-117
: Well-structured test class for XMLGregorianCalendar adapterThis comprehensive test suite validates the
DefaultXMLGregorianCalendarAdapter
with various date and time formats. The tests effectively verify bidirectional marshalling/unmarshalling integrity for:
- Date-time with/without fractions
- UTC and specific timezone offsets
- Time-only formats
- Date-only formats
This is a good addition that helps ensure reliable date handling for the Java 8 compatible implementation.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZonedDateTimeAdapter.java (4)
22-35
: Well-documented adapter class for ISO 8601 date formattingThe class documentation clearly explains the purpose and behavior of this adapter, including its specific formatting approach for ISO 8601 date-time values. It properly documents how UTC times are handled with explicit offset notation (
+00:00
) instead of 'Z'.
36-67
: Flexible adapter implementation with multiple constructor optionsThe adapter provides three constructor options that offer good flexibility:
- Default constructor with predefined formats
- Constructor for custom date format
- Constructor for injecting a completely custom adapter implementation
This design allows for both simple usage and advanced customization when needed.
75-82
: Proper implementation of unmarshal methodThe unmarshal implementation correctly delegates to either the custom adapter (if provided) or uses the AdapterUtils.parse method with the configured format. This maintains the flexibility of the adapter while providing a consistent API.
91-102
: Thread-safe implementation of marshal methodThe marshal method properly synchronizes on the SimpleDateFormat instance since it's not thread-safe. The post-processing to remove trailing zeros and replace 'Z' with '+00:00' ensures consistent output format in line with the adapter's design goals.
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteWithAdaptersTest.java (6)
1-15
: Appropriate license header for a new file.The Apache License header is correctly included, ensuring proper licensing for the new code.
18-34
: Good import organization following Java 8 compatibility.The imports correctly use
javax.xml
packages instead of Jakarta, which aligns with the Java 8 compatibility goal of this PR. Also includes all necessary imports for date handling with XMLGregorianCalendar.
186-234
: Effective custom date pattern test.The test demonstrates that custom date formatting works correctly with adapters, which is valuable for verifying flexibility in date handling. The assertions correctly focus on the components that should match rather than comparing full objects, accounting for truncated seconds.
236-254
: Custom adapter test validates extensibility.This test ensures that completely custom adapters can be used, which is important for extensibility. The test correctly validates that custom formatting is applied and that the results can be parsed back.
256-271
: Good validation of header date-time handling.The test correctly validates that date-time handling in business application headers works properly with XMLGregorianCalendar, which is essential for the Java 8 compatibility goal.
273-289
: Well-structured utility methods for test data.The sample and sampleGregorianCalendar methods provide a good way to create consistent test data, making the tests more maintainable.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV04.java (5)
29-37
: Successfully migrated to javax.xml. packages for Java 8 compatibility.*The import statements have been correctly updated from Jakarta to Javax namespaces, which is aligned with the PR objective of supporting Java 8. The XMLGregorianCalendar import has also been added to support the new date handling approach.
53-55
: Added transient modifiers to static fields.Marking these static fields as transient ensures they won't be included in serialization, which is a good practice. This change is consistent with similar changes in other header classes.
189-189
: Updated date handling to use XMLGregorianCalendar.The return type has been changed from OffsetDateTime to XMLGregorianCalendar, which aligns with the Java 8 compatibility objective of the PR.
197-198
: Updated JavaDoc to reflect XMLGregorianCalendar usage.The JavaDoc reference has been updated to refer to the new method signature with XMLGregorianCalendar, maintaining documentation consistency.
202-202
: Implemented Java 8 compatible date creation.The implementation now uses XMLGregorianCalendarUtils.now() instead of OffsetDateTime.now(), which provides Java 8 compatible date-time handling without requiring the java.time package.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XMLGregorianCalendarAdapter.java (2)
1-27
: Good implementation of a new adapter class for Java 8 compatibility.The class includes a proper license header and JavaDoc, clearly indicating its purpose and version information. The import statements correctly use Java 8 compatible classes.
28-55
: Well-structured JSON serialization for XMLGregorianCalendar.The implementation correctly serializes all components of XMLGregorianCalendar to a JSON object. The commented alternative implementation provides good context about implementation choices.
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZonedTimeAdapterTest.java (4)
1-25
: Well-structured test class with proper imports.The test class includes the appropriate license header and imports the necessary classes for testing the ZonedTimeAdapter. The code correctly uses javax.xml packages for Java 8 compatibility.
26-38
: Comprehensive test for unmarshalling time with fractional seconds.This test effectively validates that a time string with fractional seconds and timezone offset is correctly converted to an XMLGregorianCalendar, checking all relevant components.
40-58
: Good coverage of time unmarshalling edge cases.These tests validate unmarshalling behavior without fractional seconds and without timezone offset, ensuring the adapter handles these variations correctly.
59-78
: Complete testing of time marshalling functionality.The marshalling tests verify that XMLGregorianCalendar instances are correctly converted to ISO 8601 compliant time strings, with good coverage of different scenarios (with/without fractional seconds, with/without offset).
Note that in testMarshallNoOffset, even though the input has no offset, the output correctly includes "+00:00" which ensures ISO 8601 compliance.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java (9)
29-37
: Correctly updated XML binding imports for Java 8 compatibilityThe import statements have been updated from Jakarta to Javax namespaces, which aligns with the PR objective of backporting to Java 8. The inclusion of XMLGregorianCalendar is also consistent with using legacy date handling instead of java.time.
53-55
: Addedtransient
modifier to static fieldsAdding the
transient
modifier to these static fields prevents them from being serialized, which is good practice especially for logger instances and class arrays.
189-192
: Updated return type for creationDate methodChanged the return type from what was likely OffsetDateTime to XMLGregorianCalendar, which is consistent with the Java 8 backport objective. This aligns with other application header implementations in the codebase.
197-204
: Updated setCreationDate implementation for XMLGregorianCalendarThe implementation now uses XMLGregorianCalendarUtils.now() instead of OffsetDateTime.now(), properly maintaining the same functionality with Java 8 compatible classes.
29-37
: Package imports updated for Java 8 compatibilityThe imports have been changed from
jakarta.xml.bind
tojavax.xml.bind
, which is consistent with the pull request's objective to backport the codebase to Java 8. Jakarta EE packages are part of newer Java versions, while javax packages are compatible with Java 8.
53-55
: Fields marked as transient
NAMESPACE
,_classes
, andlog
fields are now marked astransient
to prevent them from being serialized. This is good practice for static fields and loggers, especially when working with JSON or XML serialization.
190-190
: Return type changed to XMLGregorianCalendarThe
creationDate()
method now returnsXMLGregorianCalendar
instead ofOffsetDateTime
, which is consistent with Java 8 compatibility requirements. Thejava.time
package was introduced in Java 8, but the PR aims for a more legacy-compatible approach using JAXB's XMLGregorianCalendar.
198-198
: JavaDoc reference updated for XMLGregorianCalendarJavaDoc update correctly reflects the change in the referenced method parameter type.
203-203
: Date creation implementation updatedThe implementation now uses
XMLGregorianCalendarUtils.now()
instead ofOffsetDateTime.now(ZoneOffset.UTC)
. This is consistent with the backport to Java 8 requirement, utilizing the XMLGregorianCalendar-based date/time handling instead of the newer java.time API.iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZonedDateTimeAdapterTest.java (4)
1-89
: Well-structured test class for XMLGregorianCalendar date-time handlingThis test class comprehensively verifies the ZonedDateTimeAdapter functionality for both marshalling and unmarshalling date-time values with:
- Fractional seconds handling
- Different timezone offset scenarios
- Proper ISO 8601 format compliance
The tests ensure the adapter correctly handles all date components (year, month, day, hour, minute, second, fraction, timezone) which is crucial for the Java 8 backport.
1-89
: Well-structured new test class for ZonedDateTimeAdapterThis new test class comprehensively validates the adapter responsible for XML date/time serialization and deserialization. The tests cover:
- Unmarshalling with and without fractional seconds
- Timezone offset handling
- Proper marshalling of XMLGregorianCalendar objects
The test cases are thorough and verify both successful parsing and proper formatting of date-time values, which is critical for the Java 8 compatibility changes.
31-41
: Tests for fractional seconds handlingGood test coverage for fractional seconds in timestamps, ensuring that the adapter correctly parses the millisecond component and preserves the timezone offset.
82-87
: Timezone normalization testThis test verifies that a calendar with no offset gets normalized to UTC (+00:00), which is important for consistency in XML serialization. This ensures consistent behavior when working with timestamps that don't explicitly specify a timezone.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java (7)
29-37
: Correctly updated XML binding imports for Java 8 compatibilityThe import statements have been updated from Jakarta to Javax namespaces, which aligns with the PR objective of backporting to Java 8. The inclusion of XMLGregorianCalendar is consistent with using legacy date handling instead of java.time.
53-55
: Addedtransient
modifier to static fieldsAdding the
transient
modifier to these static fields prevents them from being serialized, which is good practice especially for logger instances and class arrays.
189-191
: Updated return type for creationDate methodChanged the return type from what was likely OffsetDateTime to XMLGregorianCalendar, which is consistent with the Java 8 backport objective. This aligns with other application header implementations in the codebase.
197-204
: Updated setCreationDate implementation for XMLGregorianCalendarThe implementation now uses XMLGregorianCalendarUtils.now() instead of OffsetDateTime.now(), properly maintaining the same functionality with Java 8 compatible classes.
29-37
: Package imports updated for Java 8 compatibilitySimilar to BusinessAppHdrV02, imports have been updated from
jakarta.xml.bind
tojavax.xml.bind
for Java 8 compatibility. The XMLGregorianCalendar import has been added to support the legacy date/time API.
53-55
: Fields marked as transientThe
NAMESPACE
,_classes
, andlog
fields are now marked astransient
to prevent serialization. This follows the same pattern applied in BusinessAppHdrV02 for consistency.
189-190
: Date handling migrated to XMLGregorianCalendarThe implementation of
creationDate()
andsetCreationDate()
has been updated to use XMLGregorianCalendar instead of OffsetDateTime. This maintains consistency with the changes in BusinessAppHdrV02 and aligns with the Java 8 compatibility goal.Also applies to: 197-198, 202-203
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTest.java (9)
1-42
: Well-structured test setup for JSON serializationThe test class is properly structured with a comprehensive test for MxPain00100108 serialization and deserialization. It tests the full object tree construction and properly validates all fields after roundtrip conversion.
107-154
: Comprehensive test for multi-element collectionsThis test properly verifies that collections (multiple bank statements) in MX objects are correctly serialized and deserialized, which is important to ensure compatibility across different MX message types.
156-200
: Good coverage for date serialization edge casesThese tests ensure date serialization and deserialization work correctly both when directly parsing JSON and when converting from XML to JSON and back. This is crucial for the Java 8 backport since date handling has changed from OffsetDateTime to XMLGregorianCalendar.
202-245
: Appropriate testing of AppHdr serializationThis test verifies that Application Headers are correctly serialized and deserialized in JSON format, which is important for maintaining backward compatibility with existing systems after the Java 8 backport.
246-500
: Comprehensive testing of different AppHdr versionsThese tests provide thorough coverage for various Application Header scenarios including:
- Different namespace versions (V1, V2)
- Missing namespace handling
- Invalid namespace handling
This ensures robustness in the JSON serialization/deserialization process, especially important given the changes to date handling in this PR.
1-89
: Comprehensive JSON serialization testsThis new test class provides thorough testing for JSON serialization and deserialization of MX objects. The tests cover complex object hierarchies, date handling, and validate that objects maintain their state through JSON conversion cycles.
156-179
: Date format validation in JSONGood test case for verifying that date objects can be correctly serialized to and from JSON, especially important when migrating from java.time to XMLGregorianCalendar.
181-200
: Round-trip XML to JSON conversion testThis test ensures that an MX object parsed from XML can be correctly serialized to JSON and then parsed back with all data preserved. This is crucial for validating the end-to-end processing pipeline with the new date handling approach.
202-501
: Comprehensive Application Header testsMultiple test cases covering different application header scenarios:
- Basic AppHdr parsing
- BusinessAppHdrV01 and BusinessAppHdrV02 namespace handling
- No namespace and invalid namespace scenarios
These tests ensure robust handling of application headers in JSON format, which is important for maintaining backward compatibility.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapter.java (7)
26-39
: Well-structured class with comprehensive documentation.The class documentation clearly explains the purpose of this adapter and how it formats date-time values according to ISO 8601 standards. The JavaDoc properly includes references to related classes and includes version information.
41-44
: Good choice of field modifiers.The fields are appropriately marked as final since they're initialized in the constructors and never modified afterward, ensuring thread safety and immutability.
48-52
: Default constructor with sensible defaults.The default constructor initializes the date formats with ISO 8601 patterns, which is appropriate for the adapter's purpose.
57-61
: Custom format constructor enhances flexibility.This constructor allows clients to customize the date format according to their needs, which is a good design practice.
66-70
: Dependency injection constructor improves testability.Allowing a custom adapter implementation to be injected makes the class more testable and flexible.
79-85
: Unmarshal method correctly handles delegation.The implementation properly delegates to custom adapter when available and falls back to the AdapterUtils helper class for parsing.
94-106
: Thread-safe implementation with appropriate synchronization.The marshal method correctly synchronizes access to the shared SimpleDateFormat instance, which is necessary since SimpleDateFormat is not thread-safe. The method also handles delegation to custom adapter and removes unnecessary ".000" from the formatted output.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/SimpleDateAdapter.java (7)
22-33
: Clear class documentation with appropriate references.The JavaDoc clearly explains the purpose and behavior of this adapter, with references to related classes and version information.
35-36
: Appropriate field declarations.The fields are correctly declared as final to ensure immutability, which is a good practice for thread safety.
41-44
: Default constructor with standard ISO date format.The default constructor initializes the date format with the ISO 8601 date pattern (yyyy-MM-dd), which is appropriate for the adapter's purpose.
49-52
: Custom format constructor enhances flexibility.This constructor allows clients to customize the date format according to their needs, which is a good design practice.
57-60
: Dependency injection constructor improves testability.Allowing a custom adapter implementation to be injected makes the class more testable and flexible.
69-74
: Unmarshal method correctly handles delegation.The implementation properly delegates to custom adapter when available and falls back to the AdapterUtils helper class for parsing.
84-91
: Thread-safe implementation with appropriate synchronization.The marshal method correctly synchronizes access to the shared SimpleDateFormat instance, which is necessary since SimpleDateFormat is not thread-safe.
iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluDateTimeAdapterTest.java (9)
28-30
: Appropriate adapter class name and instance creation.The test class has been updated to use the new
ZuluDateTimeAdapter
instead of the previousZuluOffsetDateTimeAdapter
, which is consistent with the Java 8 back-port changes mentioned in the PR objectives.
32-43
: Comprehensive test for unmarshalling with fractional seconds.This test verifies that the adapter correctly parses a date-time string with fractional seconds, checking year, month, day, hours, minutes, seconds, fractional seconds, and timezone offset.
45-56
: Thorough test for unmarshalling without fractional seconds.This test ensures that the adapter correctly handles date-time strings without fractional seconds, properly setting the fractionalSecond property to null.
58-68
: Important test case for unmarshalling without offset.This test verifies that the adapter can handle date-time strings without a timezone offset, which is a common case in some systems.
72-74
: Test for marshalling with timezone conversion.This test verifies that the adapter correctly converts timezones to UTC/Zulu time when marshalling, by creating a calendar with a -180 minutes offset and checking that the output is correctly adjusted.
79-81
: Test for marshalling without fractional seconds.This test ensures that the adapter correctly formats a date-time without fractional seconds, omitting the ".000" suffix from the output.
86-88
: Test for marshalling with no timezone offset.This test verifies that the adapter correctly handles XMLGregorianCalendar instances with a zero timezone offset, ensuring the "Z" indicator is still included in the output.
91-124
: Integration test with message parsing.This test verifies that the adapter works correctly when integrated with MxPacs00800110 message parsing, ensuring that date-time values in the CreDt field are correctly preserved in Zulu format.
126-159
: Important timezone conversion test.This test verifies that the adapter correctly converts non-UTC timezones to Zulu time when parsing and marshalling messages, checking that an input with "-03:00" offset is converted to "Z" notation with the appropriate time adjustment.
CHANGELOG.md (5)
3-3
: Version number downgraded to align with Java 8 back-port.The version number has been downgraded from 10.x.x to 9.x.x, which aligns with the PR objective of back-porting to Java 8. This is consistent with the approach described in the PR description.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4(MD001, heading-increment)
3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
7-8
: Version numbers consistently downgraded.All version numbers in the changelog have been consistently downgraded to reflect the Java 8 back-port.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
8-8: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
8-8: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
18-19
: New entry for bug fix.The new entry for version 9.5.4 documents a bug fix for an NPE in the DefaultMxMetadataStrategy, which is useful information for users upgrading from older versions.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
18-18: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
19-19: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
19-19: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
25-27
: New entry for ZuluDateTimeAdapter fix.This entry documents the fix in ZuluDateTimeAdapter, which is related to the adapter we're reviewing in this PR. This ensures users are aware of the improvement.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
25-25: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
26-26: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
26-26: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
42-44
: Zulu timezone standardization.The entry for version 9.4.5 documents a change to always use Zulu timezone with "Z" indicator in BusinessApplicationHeaderV01, which is consistent with the ZuluDateTimeAdapter implementation we're reviewing.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
42-42: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below(MD022, blanks-around-headings)
43-43: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
43-43: Lists should be surrounded by blank lines
null(MD032, blanks-around-lists)
44-44: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java (4)
36-37
: Imports changed to use javax.xml.bind instead of jakarta.xml.bindThis change correctly implements the Java 8 backport by replacing Jakarta EE XML binding (which requires Java 11+) with the legacy Java EE javax.xml.bind packages that are available in Java 8.
203-207
: JSON deserialization configuration updated for XMLGregorianCalendar supportThe Gson builder configuration has been updated to register type adapters for XMLGregorianCalendar and AppHdr, which aligns with the project's move from java.time to XMLGregorianCalendar for Java 8 compatibility.
219-223
: Consistent JSON deserialization configuration for static methodThis change mirrors the type adapter configuration used in the instance method, ensuring consistent handling of XMLGregorianCalendar and AppHdr when deserializing JSON across both entry points.
563-571
: JSON serialization updated with XMLGregorianCalendar adapterThe toJson method has been modified to use XMLGregorianCalendarAdapter with type hierarchy registration, ensuring proper serialization of date-time values in the Java 8 compatible format. The additional explanatory comment clarifies why AbstractMX.class is used explicitly.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java (5)
23-23
: Adapter import updated for Java 8 compatibilityThe import has been changed from OffsetDateTime-based adapter to ZuluDateTimeAdapter which works with XMLGregorianCalendar, aligning with the Java 8 compatibility requirements.
55-57
: Added transient modifiers to static fieldsThe
transient
modifier has been added to static class constants to prevent them from being included in serialization. This is good practice since these fields don't need to be serialized and helps with Java 8 compatibility.
173-175
: Changed creationDate return type to XMLGregorianCalendarThe method return type has been updated from OffsetDateTime to XMLGregorianCalendar to maintain Java 8 compatibility, aligning with the project's goal of replacing java.time with XMLGregorianCalendar.
181-187
: Updated creation date generation to use XMLGregorianCalendarUtilsThe implementation now uses XMLGregorianCalendarUtils.now() instead of OffsetDateTime.now(), providing the required Java 8 compatible date-time representation. This matches the pattern used in other header implementations as seen in the provided code snippets.
225-225
: Updated date-time adapter for XML serializationThe adapter configuration has been updated to use ZuluDateTimeAdapter wrapped by IsoDateTimeAdapter, ensuring proper ISO 8601 formatting of XMLGregorianCalendar instances when marshalling to XML.
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java (4)
28-37
: Imports updated to use javax.xml.bind for Java 8 compatibilityThe Jakarta XML binding imports have been replaced with Java EE (javax) equivalents to ensure Java 8 compatibility, consistent with the backporting objective of this PR.
52-54
: Added transient modifiers to static fieldsThe
transient
modifier has been added to static class variables to prevent them from being included in serialization, which is appropriate for these non-serializable static fields.
181-183
: Changed creationDate return type to XMLGregorianCalendarThe method return type has been updated from OffsetDateTime to XMLGregorianCalendar, which is consistent with the Java 8 backporting efforts and aligns with similar changes in the BusinessAppHdrV01 class.
189-195
: Updated creation date generation to use XMLGregorianCalendarUtilsSimilar to other header implementations, the code now uses XMLGregorianCalendarUtils.now() to generate dates in the Java 8 compatible XMLGregorianCalendar format instead of OffsetDateTime.now().
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/TypeAdaptersConfiguration.java (4)
20-20
: Import updated to use javax.xml.bind for Java 8 compatibilityThe Jakarta XML binding import has been replaced with the Java EE equivalent, ensuring Java 8 compatibility consistent with changes in other files.
32-32
: Updated documentation to reflect new adapter typesThe class documentation has been updated to reference the new adapter implementations (ZonedDateTimeAdapter, SimpleDateAdapter, ZonedTimeAdapter) that work with XMLGregorianCalendar instead of the previous java.time-based adapters.
Also applies to: 57-59
62-65
: Replaced adapter implementations with Java 8 compatible versionsThe constructor now initializes adapters with Java 8 compatible implementations (ZonedDateTimeAdapter, SimpleDateAdapter, ZonedTimeAdapter) that work with XMLGregorianCalendar instead of java.time types like OffsetDateTime, ensuring compatibility with the backporting requirements.
68-82
: Simplified adapter list creationThe asList method has been simplified by removing checks for IsoYearMonthAdapter, IsoYearAdapter, and IsoMonthAdapter, which aligns with the removal of these fields from the class. This streamlines the configuration to focus on the core date-time adapters needed for Java 8 compatibility.
@@ -16,7 +16,7 @@ | |||
package com.prowidesoftware.swift.model.mx; | |||
|
|||
import com.prowidesoftware.swift.model.mx.adapters.TypeAdaptersConfiguration; | |||
import jakarta.xml.bind.JAXBContext; | |||
import javax.xml.bind.JAXBContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Update JAXBContext Import for Java 8 Compatibility
The import statement has been updated from the Jakarta package to the Javax package for JAXBContext
. This change is aligned with the project’s objective to back-port to Java 8, ensuring that the code relies on legacy JAXB implementations rather than the newer Jakarta versions. Please verify that:
- All JAXB-related imports across the project are consistently updated.
- Dependencies (e.g., in your build configuration) correctly support the Java 8
javax.xml.bind
package.
@Override | ||
public String marshal(XMLGregorianCalendar cal) throws Exception { | ||
return "foobar"; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Consider more specific exception handling in marshal method.
The method declares it throws Exception
, but the implementation doesn't appear to throw any exceptions. Consider removing the throws clause or specifying more precise exception types.
- public String marshal(XMLGregorianCalendar cal) throws Exception {
+ public String marshal(XMLGregorianCalendar cal) {
return "foobar";
}
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
@Override | |
public String marshal(XMLGregorianCalendar cal) throws Exception { | |
return "foobar"; | |
} | |
@Override | |
public String marshal(XMLGregorianCalendar cal) { | |
return "foobar"; | |
} |
@Override | ||
public XMLGregorianCalendar unmarshal(String v) throws Exception { | ||
return DatatypeFactory.newInstance().newXMLGregorianCalendar(); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Consider more specific exception handling.
The method declares it throws a generic Exception
. For improved error handling, consider catching specific exceptions from DatatypeFactory.newInstance()
and throwing more specific exceptions.
- public XMLGregorianCalendar unmarshal(String v) throws Exception {
+ public XMLGregorianCalendar unmarshal(String v) throws javax.xml.datatype.DatatypeConfigurationException {
return DatatypeFactory.newInstance().newXMLGregorianCalendar();
}
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
@Override | |
public XMLGregorianCalendar unmarshal(String v) throws Exception { | |
return DatatypeFactory.newInstance().newXMLGregorianCalendar(); | |
} | |
@Override | |
public XMLGregorianCalendar unmarshal(String v) throws javax.xml.datatype.DatatypeConfigurationException { | |
return DatatypeFactory.newInstance().newXMLGregorianCalendar(); | |
} |
* Cache for {@link javax.xml.bind.JAXBContext} instances per message type. | ||
* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Enhanced Javadoc for Clarity
The Javadoc comment has been updated on lines 23–24 to reflect the new package reference (javax.xml.bind.JAXBContext
) and improve the readability of the documentation. This minor grammatical refinement aids in maintaining clear developer communication.
static XMLGregorianCalendar now() { | ||
GregorianCalendar c = new GregorianCalendar(); | ||
c.setTime(Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime()); | ||
XMLGregorianCalendar creationDate = null; | ||
try { | ||
/* | ||
* important: cannot create XMLGregorianCalendar directly from Calendar object, | ||
* specific format must be used for the unmarshalled XML to pass XSD validation. | ||
*/ | ||
creationDate = DatatypeFactory.newInstance() | ||
.newXMLGregorianCalendar(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(c.getTime())); | ||
} catch (DatatypeConfigurationException e) { | ||
log.log(Level.WARNING, "error initializing header creation date", e); | ||
} | ||
return creationDate; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Consider adding more utility methods for date conversion
While the current implementation for now()
is solid, consider adding more utility methods for common operations like:
- Converting between java.util.Date and XMLGregorianCalendar
- Parsing ISO8601 strings to XMLGregorianCalendar
- Formatting XMLGregorianCalendar to strings
These would enhance the utility class and provide consistent date handling throughout the application.
@Override | ||
public XMLGregorianCalendar deserialize( | ||
JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) { | ||
try { | ||
JsonObject obj = jsonElement.getAsJsonObject(); | ||
XMLGregorianCalendar xmlGregCalendar = DatatypeFactory.newInstance() | ||
.newXMLGregorianCalendar( | ||
obj.get(YEAR).getAsInt(), | ||
obj.get(MONTH).getAsInt(), | ||
obj.get(DAY).getAsInt(), | ||
obj.get(HOUR).getAsInt(), | ||
obj.get(MINUTE).getAsInt(), | ||
obj.get(SECOND).getAsInt(), | ||
0, | ||
obj.get(TIMEZONE).getAsInt()); | ||
JsonElement fractional = obj.get(FRACTIONAL); | ||
if (fractional != null) { | ||
xmlGregCalendar.setFractionalSecond(fractional.getAsBigDecimal()); | ||
} else { | ||
xmlGregCalendar.setFractionalSecond(null); | ||
} | ||
return xmlGregCalendar; | ||
// use the line below as implementation in Java 8 | ||
// return DatatypeFactory.newInstance().newXMLGregorianCalendar(jsonElement.getAsString()); | ||
} catch (Exception e) { | ||
e.printStackTrace(); | ||
return null; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Robust JSON deserialization with error handling improvement needed.
The deserialization logic correctly reconstructs an XMLGregorianCalendar from JSON, handling fractional seconds appropriately. However, the exception handling could be improved.
try {
// Existing code...
} catch (Exception e) {
- e.printStackTrace();
+ // Use a logger instead of printing stack trace
+ Logger.getLogger(XMLGregorianCalendarAdapter.class.getName())
+ .log(Level.SEVERE, "Error deserializing XMLGregorianCalendar", e);
return null;
}
Using e.printStackTrace() directly is not recommended in production code as it writes to System.err without any control. A proper logging approach would be more appropriate for this library.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
@Override | |
public XMLGregorianCalendar deserialize( | |
JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) { | |
try { | |
JsonObject obj = jsonElement.getAsJsonObject(); | |
XMLGregorianCalendar xmlGregCalendar = DatatypeFactory.newInstance() | |
.newXMLGregorianCalendar( | |
obj.get(YEAR).getAsInt(), | |
obj.get(MONTH).getAsInt(), | |
obj.get(DAY).getAsInt(), | |
obj.get(HOUR).getAsInt(), | |
obj.get(MINUTE).getAsInt(), | |
obj.get(SECOND).getAsInt(), | |
0, | |
obj.get(TIMEZONE).getAsInt()); | |
JsonElement fractional = obj.get(FRACTIONAL); | |
if (fractional != null) { | |
xmlGregCalendar.setFractionalSecond(fractional.getAsBigDecimal()); | |
} else { | |
xmlGregCalendar.setFractionalSecond(null); | |
} | |
return xmlGregCalendar; | |
// use the line below as implementation in Java 8 | |
// return DatatypeFactory.newInstance().newXMLGregorianCalendar(jsonElement.getAsString()); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
return null; | |
} | |
@Override | |
public XMLGregorianCalendar deserialize( | |
JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) { | |
try { | |
JsonObject obj = jsonElement.getAsJsonObject(); | |
XMLGregorianCalendar xmlGregCalendar = DatatypeFactory.newInstance() | |
.newXMLGregorianCalendar( | |
obj.get(YEAR).getAsInt(), | |
obj.get(MONTH).getAsInt(), | |
obj.get(DAY).getAsInt(), | |
obj.get(HOUR).getAsInt(), | |
obj.get(MINUTE).getAsInt(), | |
obj.get(SECOND).getAsInt(), | |
0, | |
obj.get(TIMEZONE).getAsInt()); | |
JsonElement fractional = obj.get(FRACTIONAL); | |
if (fractional != null) { | |
xmlGregCalendar.setFractionalSecond(fractional.getAsBigDecimal()); | |
} else { | |
xmlGregCalendar.setFractionalSecond(null); | |
} | |
return xmlGregCalendar; | |
// use the line below as implementation in Java 8 | |
// return DatatypeFactory.newInstance().newXMLGregorianCalendar(jsonElement.getAsString()); | |
} catch (Exception e) { | |
// Use a logger instead of printing stack trace | |
Logger.getLogger(XMLGregorianCalendarAdapter.class.getName()) | |
.log(Level.SEVERE, "Error deserializing XMLGregorianCalendar", e); | |
return null; | |
} | |
} |
private static XMLGregorianCalendar getXmlGregorianCalendarInZulu(XMLGregorianCalendar cal) | ||
throws DatatypeConfigurationException { | ||
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); | ||
XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(); | ||
GregorianCalendar gregorianCalendar = xmlGregorianCalendar.toGregorianCalendar(); | ||
gregorianCalendar.setTime(cal.toGregorianCalendar().getTime()); | ||
gregorianCalendar.setTimeZone(TimeZone.getTimeZone("Z")); | ||
return datatypeFactory.newXMLGregorianCalendar(gregorianCalendar); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Potential inefficiency in getXmlGregorianCalendarInZulu method.
The method creates a new XMLGregorianCalendar but immediately calls toGregorianCalendar() before setting any values. This seems unnecessary and could be simplified.
Consider simplifying the method to avoid creating an unused XMLGregorianCalendar:
private static XMLGregorianCalendar getXmlGregorianCalendarInZulu(XMLGregorianCalendar cal)
throws DatatypeConfigurationException {
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
- XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar();
- GregorianCalendar gregorianCalendar = xmlGregorianCalendar.toGregorianCalendar();
+ GregorianCalendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTime(cal.toGregorianCalendar().getTime());
gregorianCalendar.setTimeZone(TimeZone.getTimeZone("Z"));
return datatypeFactory.newXMLGregorianCalendar(gregorianCalendar);
}
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
private static XMLGregorianCalendar getXmlGregorianCalendarInZulu(XMLGregorianCalendar cal) | |
throws DatatypeConfigurationException { | |
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); | |
XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(); | |
GregorianCalendar gregorianCalendar = xmlGregorianCalendar.toGregorianCalendar(); | |
gregorianCalendar.setTime(cal.toGregorianCalendar().getTime()); | |
gregorianCalendar.setTimeZone(TimeZone.getTimeZone("Z")); | |
return datatypeFactory.newXMLGregorianCalendar(gregorianCalendar); | |
} | |
private static XMLGregorianCalendar getXmlGregorianCalendarInZulu(XMLGregorianCalendar cal) | |
throws DatatypeConfigurationException { | |
DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); | |
- XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(); | |
- GregorianCalendar gregorianCalendar = xmlGregorianCalendar.toGregorianCalendar(); | |
+ GregorianCalendar gregorianCalendar = new GregorianCalendar(); | |
gregorianCalendar.setTime(cal.toGregorianCalendar().getTime()); | |
gregorianCalendar.setTimeZone(TimeZone.getTimeZone("Z")); | |
return datatypeFactory.newXMLGregorianCalendar(gregorianCalendar); | |
} |
* (PW-2113) `MxParseUtils` added a method to extract the enclosed MT from a multi-format MX message | ||
* (PW-2113) `MxParseUtils` added methods to extract comments from XML string | ||
* Added new SettlementInfo class, and added MxParseUtils#getSettlementInfo to extract it from a raw MX message. | ||
* Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path | ||
* Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Fix trailing whitespace in changelog.
There's a trailing space at the end of line 14 which should be removed.
- * Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path
+ * Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
* Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path | |
* Moved and enhanced the MxSwiftMessage#findElement to support multiple element's path |
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
14-14: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
14-14: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
* Update apache-commons-lang3 from 3.14.0 to 3.17.0 fixing derived apache-text dependency vulnerabilities | ||
* Gradle wrapper update to 8.12 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Fix trailing whitespace in changelog.
There's a trailing space at the end of line 17 which should be removed.
- * Gradle wrapper update to 8.12
-
+ * Gradle wrapper update to 8.12
+
Committable suggestion skipped: line range outside the PR's diff.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
* Update jaxb dependency from com.sun.xml.bind:jaxb-impl:4.0.2 to 4.0.5 containing several jaxb bugfixes | ||
|
||
#### 10.1.4 - January 2024 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Fix trailing whitespace in changelog.
There's a trailing space at the end of line 44 which should be removed.
- * (PW-1875) Changed the BusinessApplicationHeaderV01 marshaller to always use Zulu timezone with "Z" indicator
-
+ * (PW-1875) Changed the BusinessApplicationHeaderV01 marshaller to always use Zulu timezone with "Z" indicator
+
Committable suggestion skipped: line range outside the PR's diff.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
44-44: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
Back-port to:
Summary by CodeRabbit
These improvements streamline message processing and boost overall reliability and maintainability.