Skip to content
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

SRU2023 v10.1 #85

Open
wants to merge 48 commits into
base: develop
Choose a base branch
from
Open

SRU2023 v10.1 #85

wants to merge 48 commits into from

Conversation

zubri
Copy link
Member

@zubri zubri commented Jun 6, 2023

Summary by CodeRabbit

  • New Features

    • Updated project to utilize Java 11 and Jakarta EE 10, enhancing compatibility and performance.
    • Introduced modern date and time handling with OffsetDateTime for creationDate methods.
  • Bug Fixes

    • Resolved Null Pointer Exception (NPE) in the DefaultMxMetadataStrategy.
  • Documentation

    • Updated CHANGELOG to reflect version upgrades and significant changes.
  • Chores

    • Enhanced .gitignore to exclude .java-version files.
    • Updated Gradle wrapper and build configuration to use Gradle 8.5 and Java 11, respectively.

zubri and others added 19 commits June 5, 2023 19:25
…an-OffsetDateTime-OffsetTime-LocalDate

Cu-2np2uh3_GH-56: JAXB upgrade plan using java.time classes
…or time information when unmarshalling into LocalDate objects
* Gson serialization/deserialization in Adapters  - Fix reflection issue with data.time.* classes.
* WIP custom adapters/dto to use date.time.* classes with Gson
* WIP custom adapters/dto to use date.time.* classes with Gson
* fix revert change build.gradle
* Junit for Json Adapters at serialization/deserialization
* Remove comment
* Remove unused Junit + Rename refactor
* inner classes for Json adapters
---------
Co-authored-by: Sebastian Zubrinic <[email protected]>
@gverran
Copy link

gverran commented Jun 15, 2023

Hi Zubri, when do you anticipate this being released?

@zubri
Copy link
Member Author

zubri commented Jun 27, 2023

Hi Zubri, when do you anticipate this being released?

We normally made new releases for SRU updates available via Maven Central by October each year.

Base automatically changed from SRU2023 to develop November 21, 2023 18:59
@zubri zubri changed the title SRU2023 v10 SRU2023 v10.1 Jun 29, 2024
Copy link

coderabbitai bot commented Aug 14, 2024

Walkthrough

Walkthrough

The recent changes enhance the project by updating the Java version to 11, transitioning from Java EE to Jakarta EE for improved compatibility, and restructuring various classes for better maintainability and readability. Key improvements include modifications to import statements, access modifiers of static variables, and the addition of essential methods for object representation and comparison. Additionally, the .gitignore file was updated to exclude Java version management files, further refining the project's configuration.

Changes

Files/Directories Change Summary
.gitignore Added .java-version to ignore Java version management files.
.idea/compiler.xml Updated Java bytecode target version from 1.8 to 11.
CHANGELOG.md Incremented version from 9.x to 10.x, noting significant updates, including migration to Java 11.
README.md Removed the dependencies section, indicating a change in dependency management strategy.
build.gradle Upgraded dependencies and set Java language version to 11.
gradle/wrapper/gradle-wrapper.properties Updated Gradle version from 7.6.4 to 8.5.
iso20022-core/src/main/java/**/*.java Transitioned from javax.persistence to jakarta.persistence for various classes; modified date handling types.
model-acmt-mx/src/generated/java/**/*.java Updated XML binding annotations from javax to jakarta, modified access modifiers for static fields, and reorganized methods.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Application
    participant Database

    User->>Application: Request data
    Application->>Database: Query for data
    Database-->>Application: Return data
    Application-->>User: Send data response
Loading

Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

Commits

Files that changed from the base of the PR and between 7cc0e59 and cf5c986.

Files selected for processing (105)
  • .gitignore (1 hunks)
  • .idea/compiler.xml (1 hunks)
  • CHANGELOG.md (1 hunks)
  • README.md (1 hunks)
  • build.gradle (12 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 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 (5 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/BusinessHeader.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/DefaultMxMetadataStrategy.java (4 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCache.java (1 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 (2 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/adapters/LocalDateJsonAdapter.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeJsonAdapter.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapter.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/TypeAdaptersConfiguration.java (4 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/YearJsonAdapter.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapter.java (1 hunks)
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapter.java (1 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 (2 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/issues/Issue1958.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/issues/IssueJira1392Test.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/issues/IssueJira1567Test.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/MetadataExtractorLenientTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTestAdapters.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AppHdrParserTest.java (3 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01Test.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/LegacyAppHdrTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxReadImplTest.java (3 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxWriteTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/IssueJira1566Test.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateJsonAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteAdaptersTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeJsonAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearJsonAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapterTest.java (1 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterMarshallingTest.java (3 hunks)
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterUnmarshallingTest.java (1 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100107.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100108.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200107.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200108.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300107.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300108.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600101.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600102.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600103.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600104.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600105.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600106.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600107.java (4 hunks)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700101.java (4 hunks)
Files not processed due to max files limit (58)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700104.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00800104.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00900103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01000103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01100103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01200103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01300103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01400104.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01500103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01600103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01700103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01800103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt01900103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02000103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02100103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02200103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02300103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02400103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02500101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt02600101.java
Files not reviewed due to server errors (9)
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600101.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600102.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600103.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400104.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400105.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500106.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100107.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100108.java
  • model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300106.java
Additional context used
Path-based instructions (44)
model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600107.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300101.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300102.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300103.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300104.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300105.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100107.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100108.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300106.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300107.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200107.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300108.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200108.java (1)

Pattern **/generated/**: directories within the source code with name "generated" must not be analyzed since it is generated code.

Markdownlint
CHANGELOG.md

3-3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


4-4: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


7-7: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


10-10: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


14-14: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


15-15: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


16-16: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


17-17: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


20-20: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


21-21: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


22-22: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


25-25: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


28-28: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


31-31: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


32-32: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


33-33: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


34-34: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


35-35: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


3-3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


6-6: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


9-9: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


12-12: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


19-19: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


24-24: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


27-27: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


30-30: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


4-4: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


7-7: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


10-10: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


20-20: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


25-25: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


28-28: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


31-31: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (217)
iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessHeader.java (1)

1-1: Empty File Detected.

The file BusinessHeader.java is currently empty. Verify if this is intentional or if content is missing. If it's a placeholder, consider adding a comment to indicate its purpose.

gradle/wrapper/gradle-wrapper.properties (1)

3-3: Verify Compatibility with Gradle 8.5.

The Gradle version has been updated to 8.5. Ensure that all build scripts and plugins are compatible with this version to avoid potential build issues.

.idea/compiler.xml (1)

4-4: Verify Compatibility with Java 11.

The bytecode target level has been updated to Java 11. Ensure that all dependencies and project configurations are compatible with Java 11 to prevent runtime issues.

.gitignore (1)

32-32: Good addition to .gitignore.

Adding .java-version helps prevent local Java version management files from being tracked, maintaining a clean repository.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/sys/dic/package-info.java (1)

27-28: Migration to Jakarta EE is appropriate.

The change from javax.xml.bind.annotation to jakarta.xml.bind.annotation aligns with the transition to Jakarta EE, ensuring compatibility with the latest standards.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteUtils.java (1)

18-21: Migration to Jakarta EE is appropriate.

The change from javax.xml.bind to jakarta.xml.bind aligns with the transition to Jakarta EE, ensuring compatibility with the latest standards.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/GuavaJaxbContextCache.java (1)

20-20: Transition to Jakarta EE approved.

The import change from javax.xml.bind.JAXBContext to jakarta.xml.bind.JAXBContext aligns with the transition to Jakarta EE. Ensure that the rest of the codebase is compatible with Jakarta EE.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImplTest.java (1)

20-21: Transition to Jakarta EE approved.

The import changes from javax.xml.bind to jakarta.xml.bind for JAXBContext and JAXBException are consistent with the transition to Jakarta EE. Ensure that all tests are compatible with Jakarta EE.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadConfiguration.java (1)

19-19: Transition to Jakarta EE approved.

The import change from javax.xml.bind.JAXBContext to jakarta.xml.bind.JAXBContext is part of the transition to Jakarta EE. Ensure that the application is compatible with Jakarta EE.

iso20022-core/src/test/java/com/prowidesoftware/issues/IssueJira1392Test.java (1)

11-11: Class renaming approved.

Renaming the class to IssueJira1392Test aligns with test naming conventions, enhancing clarity.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/YearJsonAdapter.java (1)

1-45: New JSON adapter implementation approved.

The YearJsonAdapter correctly implements both serialization and deserialization for Year using Gson. The use of a DTO is appropriate and aligns with best practices.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadParams.java (1)

19-19: Migration to Jakarta EE approved.

The transition from javax.xml.bind to jakarta.xml.bind aligns with the broader shift to Jakarta EE, ensuring compatibility with modern libraries.

iso20022-core/src/test/java/com/prowidesoftware/issues/IssueJira1567Test.java (1)

17-39: Test implementation is well-structured and effective.

The test correctly verifies both default and custom date-time serialization behaviors. The use of a custom adapter is appropriate for the requirement.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapter.java (1)

1-49: LGTM!

The YearMonthJsonAdapter class is well-implemented for serializing and deserializing YearMonth objects using Gson. The use of a DTO class for JSON conversion is appropriate and maintains clarity.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateJsonAdapter.java (1)

1-53: LGTM!

The LocalDateJsonAdapter class is well-implemented for serializing and deserializing LocalDate objects using Gson. The use of a DTO class for JSON conversion is appropriate and maintains clarity.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteParams.java (1)

19-19: Verify compatibility with Jakarta EE.

The change from javax.xml.bind.JAXBContext to jakarta.xml.bind.JAXBContext reflects the transition to Jakarta EE. Ensure that all dependencies and configurations are compatible with Jakarta EE.

Verification successful

Jakarta EE Compatibility Verified

The transition from javax.xml.bind to jakarta.xml.bind appears complete. No remaining javax references were found in the Java files, build files, or configuration files. This suggests compatibility with Jakarta EE. However, ensure to test in a Jakarta EE runtime environment to confirm full compatibility.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with Jakarta EE by checking for javax to jakarta transitions.

# Test: Search for javax imports that might need updating. Expect: No remaining javax.xml.bind imports.
rg --type java 'import javax\.xml\.bind\.' --files-with-matches

Length of output: 65


Script:

#!/bin/bash
# Description: Check for references to javax in build and configuration files to ensure full compatibility with Jakarta EE.

# Search for javax references in build files (e.g., pom.xml for Maven projects).
rg 'javax\.' -g '*pom.xml' -A 3

# Search for javax references in other configuration files.
rg 'javax\.' -g '*.xml' -g '*.properties' -A 3

Length of output: 231


Script:

#!/bin/bash
# Description: Perform a comprehensive search for javax references across the repository.

# Search for javax references in all XML files, including pom.xml.
rg 'javax\.' -g '*.xml' -A 3

# Search for javax references in all properties files.
rg 'javax\.' -g '*.properties' -A 3

Length of output: 68

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCache.java (1)

18-19: Transition to Jakarta EE is appropriate.

The change from javax.xml.bind to jakarta.xml.bind aligns with the transition to Jakarta EE, ensuring compatibility with newer standards.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMXAdapter.java (1)

55-55: Improved code safety with explicit variable assignment.

Declaring klass without initialization ensures it is explicitly assigned before use, reducing the risk of null pointer exceptions.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextCacheImpl.java (1)

18-19: Transition to Jakarta EE is appropriate.

The change from javax.xml.bind to jakarta.xml.bind aligns with the transition to Jakarta EE, ensuring compatibility with newer standards.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthJsonAdapterTest.java (5)

1-15: Ensure License Compliance.

The file includes a standard Apache License header. Ensure that the license terms are adhered to in the project.


18-24: Review Imports for Necessity and Organization.

The imports are well-organized and necessary for the test cases. Ensure that all imported classes are used in the file.


30-36: Test Method Naming and Coverage.

The method testSerializationAndDeserialization is well-named and covers multiple test cases. Ensure that all edge cases for serialization and deserialization are tested.


38-43: Verify JSON Parsing Logic.

The method testSerializationAndDeserializationImpl correctly parses JSON and performs serialization and deserialization checks. Verify that the YearMonthJsonAdapter handles all expected JSON formats.


45-70: Custom Pattern Test Validation.

The testYear_CustomPattern method validates a custom JSON pattern. Ensure that the MxAcmt03400104 class correctly processes the JSON structure and that edge cases are considered.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/IssueJira1566Test.java (2)

1-9: Review Imports for Necessity and Organization.

The imports are necessary for the test cases and are well-organized. Ensure that all imported classes are used in the file.


10-68: Thoroughly Test Date and Time Handling.

The test methods in IssueJira1566Test cover various scenarios for date and time handling, including different formats and offsets. Ensure that all edge cases are considered, especially for time zone offsets and nanosecond precision.

iso20022-core/src/test/java/com/prowidesoftware/issues/Issue11.java (3)

24-24: Ensure Proper Use of Annotations.

The @Disabled annotation is appropriately used to skip a problematic test. Ensure that the reason provided is clear and that there is a plan to address the underlying issue.


Line range hint 36-44:
Review Disabled Test Logic.

The disabled test method involves XML parsing and asserts nullity. Ensure that the issue causing the test to be disabled is documented and addressed in future updates.


Line range hint 46-80:
Verify XML Parsing Logic in Enabled Tests.

The enabled test methods validate XML parsing with different scenarios. Ensure that all edge cases are considered, and the XML structure is correctly handled by the MxPacs00200108 class.

README.md (1)

Line range hint 1-1:
Verify the rationale for removing the dependencies section.

The removal of the dependencies section suggests a shift in dependency management or documentation. Ensure that these dependencies are documented elsewhere if still relevant.

Verification successful

Dependencies section removal appears justified. The javax.xml.bind dependency is not found in the codebase, suggesting it is no longer relevant. The Prowide Core is still mentioned in the README, indicating it is documented. No further action is required.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify if the dependencies are documented elsewhere in the project.

# Test: Search for mentions of `prowide-core` and `javax.xml.bind` in the project files.
rg --type markdown --type yaml --type json 'prowide-core|javax.xml.bind'

Length of output: 187


Script:

#!/bin/bash
# Search for `javax.xml.bind` in the entire codebase to check if it is still being used or mentioned.
rg 'javax.xml.bind'

Length of output: 19

Tools
LanguageTool

[grammar] ~36-~36: Make sure that the noun ‘setup’ is correct. Did you mean the past participle “set up”?
Context: ...erformance, local configurations can be setup in a gradle.properties file such as: ``...

(BE_VB_OR_NN)


[uncategorized] ~36-~36: Possible missing comma found.
Context: ...ons can be setup in a gradle.properties file such as: ``` org.gradle.jvmargs=-Xms512...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint

32-32: null
Bare URL used

(MD034, no-bare-urls)

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapter.java (1)

1-95: LGTM! Verify the usage of OffsetTimeJsonAdapter.

The implementation of the OffsetTimeJsonAdapter is well-structured and aligns with best practices for JSON serialization/deserialization using Gson.

Ensure that the adapter is correctly integrated and used within the project.

Verification successful

OffsetTimeJsonAdapter is correctly integrated and used within the project.

The OffsetTimeJsonAdapter is utilized in the AbstractMX.java file, where it is registered as a type adapter for OffsetTime. Additionally, there are tests for this adapter in OffsetTimeJsonAdapterTest.java, indicating that its functionality is verified.

  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java: Adapter registered for OffsetTime.
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapterTest.java: Tests for the adapter.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage of `OffsetTimeJsonAdapter` in the codebase.

# Test: Search for the usage of `OffsetTimeJsonAdapter` in the Java files.
rg --type java 'OffsetTimeJsonAdapter'

Length of output: 918

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeJsonAdapterTest.java (4)

1-15: License and package declaration.

The license header and package declaration are correctly included and formatted.


18-23: Import statements.

The necessary imports for testing and JSON handling are correctly included.


25-27: Class and adapter initialization.

The test class OffsetTimeJsonAdapterTest is correctly defined, and the adapter is initialized as a final field.


73-78: Helper method for test implementation.

The testSerializationAndDeserializationImpl method effectively abstracts the test logic, promoting code reuse and clarity.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterUnmarshallingTest.java (8)

1-15: License and package declaration.

The license header and package declaration are correctly included and formatted.


18-23: Import statements.

The necessary imports for testing and date-time handling are correctly included.


24-26: Class and adapter initialization.

The test class ZuluOffsetDateTimeAdapterUnmarshallingTest is correctly defined, and the adapter is initialized as a final field.


28-39: Test unmarshalling with fraction of seconds.

The testUnmarshallFractionOfSeconds method effectively tests the unmarshalling of a date-time string with fractional seconds.


41-52: Test unmarshalling without fraction of seconds.

The testUnmarshallNoFractionOfSeconds method covers unmarshalling without fractional seconds, ensuring correct handling of such cases.


54-65: Test unmarshalling with UTC offset.

The testUnmarshallUTCOffset method verifies the handling of a UTC offset, ensuring accurate unmarshalling.


67-78: Test unmarshalling with non-UTC offset.

The testUnmarshallOffset method tests the handling of a non-UTC offset, which is crucial for comprehensive coverage.


80-90: Test unmarshalling without any offset.

The testUnmarshallNoOffset method ensures that date-time strings without an offset are handled correctly.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/JaxbContextLoader.java (2)

Line range hint 22-84:
Class functionality remains intact.

The JaxbContextLoader class continues to manage the JaxbContextCache without any changes to its core logic or functionality.


18-19: Transition to Jakarta EE imports.

The import statements have been updated to use jakarta.xml.bind, aligning with the Jakarta EE standards. Ensure that all dependencies are compatible with this change.

Verification successful

Jakarta EE Import Compatibility Verified

The transition to jakarta.xml.bind imports is consistent across the codebase. All instances of JAXBContext and JAXBException are now using the Jakarta EE package. There are no remaining javax.xml.bind imports, and the usage of these classes appears to be compatible with Jakarta EE standards.

  • Files using JAXBContext and JAXBException:
    • MxWriteParams.java
    • MxWriteUtils.java
    • MxWriteImpl.java
    • MxReadParams.java
    • LegacyAppHdr.java
    • BusinessAppHdrV03.java
    • BusinessAppHdrV02.java
    • BusinessAppHdrV01.java
    • JaxbContextLoader.java
    • JaxbContextCacheImpl.java
    • JaxbContextCache.java
    • GuavaJaxbContextCache.java

No further action is required regarding the transition to Jakarta EE imports.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with Jakarta EE imports.

# Test: Search for any remaining `javax.xml.bind` imports. Expect: No results.
rg --type java 'import javax.xml.bind'

Length of output: 40


Script:

#!/bin/bash
# Description: Verify usage of JAXBContext and JAXBException for compatibility with Jakarta EE.

# Search for usage of JAXBContext in the codebase.
rg --type java 'JAXBContext' -A 3

# Search for usage of JAXBException in the codebase.
rg --type java 'JAXBException' -A 3

Length of output: 45056

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/TypeAdaptersConfiguration.java (5)

61-61: LGTM!

The addition of yearMonthAdapter is well-documented and aligns with the class's purpose.


69-69: LGTM!

The addition of yearAdapter is well-documented and aligns with the class's purpose.


77-77: LGTM!

The addition of monthAdapter is well-documented and aligns with the class's purpose.


90-95: LGTM!

The constructor correctly initializes all adapter fields with default implementations, enhancing robustness.


112-119: LGTM!

The asList method correctly includes checks for the new adapters, ensuring comprehensive adapter management.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxWriteTest.java (1)

96-96: Good practice: Commented out debug output.

Commenting out the System.out.println statement reduces console noise, aligning with best practices for cleaner test outputs.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/ZuluOffsetDateTimeAdapterMarshallingTest.java (5)

26-34: Ensure time zone correctness in tests.

The testMarshallFractionOfSeconds method correctly tests marshaling with fractional seconds and a time zone offset. Ensure that the expected output string accounts for the conversion to Zulu time (UTC).

Verification successful

Time Zone Conversion in Test is Correct

The test method testMarshallFractionOfSeconds correctly verifies the conversion of an OffsetDateTime with a 3-hour offset to Zulu time (UTC). The expected output "2022-03-04T09:50:08.123Z" accurately reflects this conversion. No issues found with the time zone conversion logic in the test.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correctness of time zone conversion in test cases.

# Test: Check for expected Zulu time conversion in test cases.
rg --type java -A 2 'assertEquals\("2022-03-04T09:50:08.123Z", adapter.marshal'

Length of output: 519


39-41: Ensure time zone correctness in tests.

The testMarshallNoFractionOfSeconds method correctly tests marshaling without fractional seconds. Ensure that the expected output string accounts for the conversion to Zulu time (UTC).

Verification successful

Time Zone Conversion in Test is Correct

The test case correctly verifies the conversion of an OffsetDateTime with a 3-hour offset to Zulu time (UTC). The expected output "2022-03-04T09:50:08Z" is accurate. No issues found with the time zone conversion in this test.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correctness of time zone conversion in test cases.

# Test: Check for expected Zulu time conversion in test cases.
rg --type java -A 2 'assertEquals\("2022-03-04T09:50:08Z", adapter.marshal'

Length of output: 511


114-117: Verify XML parsing and marshalling logic.

The test checks conversion of CreDtTm with an offset to Zulu time. Ensure that the conversion logic correctly adjusts the time to UTC.


46-47: Ensure time zone correctness in tests.

The testMarshallNoOffset method checks marshaling with no offset. The expected output should reflect the conversion to Zulu time (UTC).

Verification successful

Time zone conversion is correctly handled in the test.

The marshal method in the ZuluOffsetDateTimeAdapter class correctly converts the OffsetDateTime to Zulu time (UTC), ensuring the expected behavior in the test case. No changes are needed.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correctness of time zone conversion in test cases.

# Test: Check for expected Zulu time conversion in test cases.
rg --type java -A 2 'assertEquals\("2022-03-04T12:50:08Z", adapter.marshal'

Length of output: 511


Script:

#!/bin/bash
# Search for the implementation of the `marshal` method in the `ZuluOffsetDateTimeAdapter` class.
ast-grep --lang java --pattern $'class ZuluOffsetDateTimeAdapter {
  $$$
  String marshal(OffsetDateTime $_) {
    $$$
  }
  $$$  
}'

Length of output: 134


Script:

#!/bin/bash
# Use ripgrep to search for the implementation of the `marshal` method in the codebase.
rg 'String marshal\(' -A 5

Length of output: 12343


78-82: Verify XML parsing and marshalling logic.

The test verifies that the CreDtTm is preserved as Zulu date time after parsing and marshalling. Ensure that the parsing logic correctly handles Zulu time.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeJsonAdapter.java (1)

32-55: Ensure DTO structure aligns with serialization requirements.

The serialize method converts an OffsetDateTime into a DateTimeOffsetDTO. Ensure that the DTO structure is correctly aligned with the JSON format expected by consumers of this serialized data. Consider documenting the expected JSON structure for clarity.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetDateTimeAdapterTest.java (1)

11-49: Comprehensive test coverage for date-time formats.

The testOffsetDateTime method provides comprehensive coverage for various date-time formats, including those with and without fractional seconds and different offsets. Ensure that any edge cases, such as invalid formats, are also tested to improve robustness.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdr.java (1)

99-99: Verify compatibility with existing implementations.

The change from XMLGregorianCalendar to OffsetDateTime in the creationDate method may impact existing implementations of the AppHdr interface. Ensure that all implementations are updated to handle this new return type.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/MetadataExtractorLenientTest.java (2)

1-1: Package declaration change.

The package declaration has been updated to better align with the project's structure. This enhances the clarity and maintainability of the codebase.


1-1: Removal of unused import.

The import statement for MxSwiftMessage has been removed, indicating it was not used in the class. This contributes to a cleaner codebase.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteImpl.java (1)

22-25: Transition from Java EE to Jakarta EE.

The import statements have been updated to use the jakarta.xml.bind package. This change is part of the transition from Java EE to Jakarta EE, ensuring compatibility with the latest standards.

CHANGELOG.md (1)

24-24: New utility class added.

The addition of SupplementaryDataUtils facilitates "SplmtryData" extraction from MX messages, enhancing functionality.

Tools
Markdownlint

24-24: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/OffsetTimeAdapterTest.java (7)

28-36: Test method approved.

The testUnmarshallFractionOfSeconds method is well-structured and correctly verifies the unmarshalling of an OffsetTime string with fractional seconds.


38-45: Test method approved.

The testUnmarshallNoFractionOfSeconds method is well-structured and correctly verifies the unmarshalling of an OffsetTime string without fractional seconds.


47-56: Test method approved.

The testUnmarshallNoOffset method is well-structured and correctly verifies the unmarshalling of an OffsetTime string without an explicit offset.


58-68: Test method approved.

The testMarshallNoFractionOfSecondsAndWithFractionOfSeconds method is well-structured and correctly verifies the marshalling of OffsetTime objects with and without fractional seconds.


70-76: Test method approved.

The testMarshallNoOffset method is well-structured and correctly verifies the marshalling of an OffsetTime object without an explicit offset.


78-106: Test method approved.

The testOffsetTime method is well-structured and uses a helper function to comprehensively verify various scenarios for OffsetTime objects.


115-146: Test method approved.

The testOffsetTimeWithNanosOnlyZero method is well-structured and uses a helper function to comprehensively verify OffsetTime objects with nanos that are only zeros.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100102.java (2)

10-14: Transition to Jakarta XML Bindings.

The import statements have been updated from javax.xml.bind to jakarta.xml.bind, aligning with Jakarta EE standards. Ensure that the rest of the codebase is compatible with this change.


36-41: Reconsider the removal of final from static fields.

The final keyword was removed from several static fields, which may affect their perceived immutability. If these constants are intended to remain unchanged, consider keeping them final.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300101.java (2)

10-14: Transition to Jakarta XML Bindings.

The import statements have been updated from javax.xml.bind to jakarta.xml.bind, aligning with Jakarta EE standards. Ensure that the rest of the codebase is compatible with this change.


36-41: Reconsider the removal of final from static fields.

The final keyword was removed from several static fields, which may affect their perceived immutability. If these constants are intended to remain unchanged, consider keeping them final.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/LocalDateAdapterTest.java (6)

15-20: Good Test Coverage for Basic LocalDate Conversion.

The test method testLocalDate effectively checks the basic functionality of converting a standard date string to LocalDate and back. The assertions are straightforward and ensure the adapter works as expected.


22-27: Test for Offset Handling is Clear.

The testLocalDateDropOffset method correctly verifies that the adapter can handle and ignore offsets in date strings. This is a necessary test to ensure robustness in date parsing.


29-34: Zone Handling Test is Well-Defined.

The testLocalDateDropZone method ensures that the adapter can parse date strings with a 'Z' suffix, which is important for handling UTC dates. The test is well-written and covers this specific case.


36-41: Time Dropping Test is Accurate.

The testLocalDateDropTime method checks the adapter's ability to ignore time components in date strings. This test is crucial for verifying that only the date part is considered, and it is well-implemented.


43-154: Comprehensive Test for Custom Date Patterns.

The testLocalDate_CustomPattern method is thorough in testing custom date patterns. It uses a realistic XML payload and verifies multiple date formats, ensuring the adapter's flexibility and correctness in handling various patterns.


157-174: Offset Ignoring Test is Effective.

The testLocalDateIgnoreOffset method confirms that the adapter can correctly parse and ignore offsets in XML date strings. The test is well-structured and ensures the adapter's functionality in this context.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/YearMonthAdapterTest.java (4)

1-15: Ensure License Information is Updated.

The license header is present, which is good practice. Ensure it reflects the latest project requirements.


29-89: Test YearMonth Parsing and Serialization.

The testYearMonth method effectively verifies the parsing and serialization of XML data containing year-month information. It checks that the XML content remains consistent after parsing and serialization, which is essential for data integrity.


91-153: Test Custom YearMonth Pattern.

The testYearMonth_CustomPattern method tests the ability to customize the year-month format using a specific pattern. This is a valuable test to ensure flexibility in date formatting.


155-179: Test Custom Year Pattern.

The testYear_CustomPattern method verifies the customization of year formatting, ensuring that the adapter correctly applies the specified pattern. This test is crucial for scenarios where non-standard year formats are required.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200104.java (3)

10-14: Transition to Jakarta EE.

The import statements have been updated from javax to jakarta, aligning with Jakarta EE standards. This change is crucial for compatibility with newer Java EE versions.


36-42: Standardize Modifier Order.

The order of modifiers for static fields has been standardized to public static final. This is a stylistic improvement that enhances readability and consistency across the codebase.


161-161: Ensure Correctness of fromJson Method.

The fromJson method's modifier order has been standardized. Verify that this method is correctly utilized in the codebase to ensure JSON deserialization works as expected.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java (3)

53-53: Remove unnecessary transient modifier.

The transient modifier was removed from the NAMESPACE field. This is appropriate as transient is used for serialization, and NAMESPACE is a constant that should be serialized.


190-195: Update method to use OffsetDateTime.

The setCreationDate method now uses OffsetDateTime.now(ZoneOffset.UTC). This change improves the handling of date and time by using the modern Java Time API.


182-182: Ensure compatibility with OffsetDateTime.

The method creationDate() now returns OffsetDateTime. Verify that all usages of this method are compatible with the new return type.

Verification successful

Usages of creationDate() are compatible with OffsetDateTime.

The method creationDate() consistently returns OffsetDateTime across various classes. Test assertions confirm compatibility with OffsetDateTime, indicating that the change is correctly integrated.

  • MxWriteAdaptersTest.java: Confirms compatibility through assertions comparing creationDate() with another OffsetDateTime.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of `creationDate()` are compatible with `OffsetDateTime`.

# Test: Search for the method usage. Expect: Compatibility with `OffsetDateTime`.
rg --type java -A 5 $'creationDate()'

Length of output: 4829


Script:

#!/bin/bash
# Searching for usages of `creationDate()` to ensure compatibility with `OffsetDateTime`.
rg --type java 'creationDate()' -A 10 -B 2

Length of output: 10567

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdrFactory.java (4)

72-72: Modernize date-time handling with OffsetDateTime.

The use of OffsetDateTime.now(ZoneOffset.UTC) is a good improvement over XMLGregorianCalendarUtils.now(), providing a more robust and modern approach to date-time handling.


115-115: Consistent use of OffsetDateTime.now().

The switch to OffsetDateTime.now() enhances the precision and usability of date-time values, aligning with Java's modern date-time API.


159-159: Adopt OffsetDateTime.now() for date-time consistency.

Using OffsetDateTime.now() ensures consistent date-time representation across different header versions.


200-200: Enhance legacy header creation with OffsetDateTime.now().

The adoption of OffsetDateTime.now() in the legacy header method aligns it with modern date-time handling practices.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java (3)

54-54: Visibility change for NAMESPACE.

The removal of transient from the NAMESPACE constant clarifies its intended use and ensures it is included in serialization, which might be necessary for certain operations.


190-190: Transition to OffsetDateTime for creationDate().

Returning OffsetDateTime instead of XMLGregorianCalendar enhances compatibility with modern Java date-time practices, improving usability and precision.


198-203: Update setCreationDate with OffsetDateTime.now().

The use of OffsetDateTime.now(ZoneOffset.UTC) in setCreationDate ensures consistent and precise date-time setting, aligning with best practices.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java (5)

24-34: Imports updated to Jakarta EE and modern Date-Time API.

The transition to jakarta.xml.bind and java.time.OffsetDateTime is appropriate for modern Java development.


191-191: Return type of creationDate updated to OffsetDateTime.

This change aligns with modern Java practices and improves date-time handling.


199-204: Simplified date setting in setCreationDate.

Using OffsetDateTime.now(ZoneOffset.UTC) enhances clarity and aligns with modern practices.


54-54: Verify the removal of the transient modifier for NAMESPACE.

Ensure that the change in serialization behavior is intentional and does not affect the system's functionality.


55-55: Verify the removal of the transient modifier for _classes.

Ensure that the change in serialization behavior is intentional and does not affect the system's functionality.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxParseUtils.java (1)

24-25: Imports updated to Jakarta EE.

The transition to jakarta.xml.bind is appropriate for modern Java development.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300105.java (4)

10-14: Imports updated to Jakarta EE.

The transition to jakarta.xml.bind is appropriate for modern Java development.


36-42: Reordered static field modifiers for consistency.

The changes improve readability and align with Java conventions.


161-161: Modifier change for fromJson method.

Changing from public final to public allows for potential overriding, which may be intentional for flexibility.


165-178: Reintroduced toString, equals, and hashCode methods.

These methods are essential for debugging and collection operations, ensuring consistent behavior.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java (4)

23-23: Import statement change approved.

The addition of ZuluOffsetDateTimeAdapter is appropriate for handling date-time offsets.


56-56: Field declaration change approved.

The removal of transient from NAMESPACE indicates it should be serializable, which is consistent with typical usage for constants.


174-174: Method change approved.

The transition to OffsetDateTime for creationDate is a modern approach and aligns with best practices.


182-187: Method change approved.

Using OffsetDateTime.now(ZoneOffset.UTC) ensures the creation date is set with UTC offset, enhancing precision.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AppHdrParserTest.java (2)

79-80: Date field access change approved.

Using ChronoField for year and month access standardizes the approach and aligns with Java time API best practices.


180-181: Date field access change approved.

The use of ChronoField for year and month access enhances consistency and clarity.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100106.java (4)

10-14: Import statement changes approved.

The transition to jakarta.xml.bind.annotation aligns with Jakarta EE standards and ensures compatibility with newer Java versions.


36-42: Constant declaration changes approved.

Reordering modifiers to static final is a stylistic improvement that enhances readability without affecting functionality.


161-161: Method change approved.

Removing final from fromJson allows for potential extension, which can be beneficial for subclassing.


165-177: Reintroduction of toString, equals, and hashCode methods approved.

These methods are essential for accurate object representation and comparison, aiding in debugging and collection management.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300108.java (4)

10-14: Transition to Jakarta EE.

The import changes from javax.xml to jakarta.xml reflect the transition to Jakarta EE, which is a necessary update for compatibility with newer Java EE standards. This is a good practice to keep the codebase up-to-date with current technologies.


36-42: Reordering of static field modifiers.

The change from public final static to public static final is a stylistic improvement that aligns with Java conventions. This change does not affect functionality but improves code readability.


161-161: Method modifier change.

The change from public final static to public static for the fromJson method is consistent with the other static methods in the class. This change enhances consistency across the codebase.


165-178: Reorganization of methods.

The reintroduction and reordering of the toString, equals, and hashCode methods at the end of the class improve the logical flow of method definitions. This organization enhances maintainability and readability.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/DefaultMxMetadataStrategy.java (8)

94-94: Null check for amount value.

The added null check for the amount value ensures that a Money object is only created when both the currency and value are present. This prevents potential NullPointerExceptions and enhances reliability.


102-102: Null check for amount value.

The added null check for the amount value in getCamt52Amount ensures robustness by preventing the creation of Money objects from incomplete data.


110-110: Null check for amount value.

The added null check for the amount value in getCamt53Amount is a good defensive programming practice, ensuring data integrity.


124-124: Null check for amount value.

The added null check for the amount value in getCamt54Amount improves error handling by ensuring that only complete data is processed.


132-132: Null check for amount value.

The added null check for the amount value in getCamt56Amount enhances the reliability of the method by preventing potential errors.


140-140: Null check for amount value.

The added null check for the amount value in getCamt57Amount ensures that the method handles incomplete data gracefully.


151-151: Null check for amount value.

The added null check for the amount value in getPacs004Amount is a good practice to prevent NullPointerExceptions.


184-184: Null check for amount value.

The added null check for the amount value in getPacsAmount ensures that only valid data is used to create Money objects, enhancing the robustness of the method.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200108.java (4)

10-14: Transition to Jakarta EE.

The import changes from javax.xml to jakarta.xml reflect the transition to Jakarta EE, which is a necessary update for compatibility with newer Java EE standards. This is a good practice to keep the codebase up-to-date with current technologies.


36-42: Reordering of static field modifiers.

The change from public final static to public static final is a stylistic improvement that aligns with Java conventions. This change does not affect functionality but improves code readability.


161-161: Method modifier change.

The change from public final static to public static for the fromJson method is consistent with the other static methods in the class. This change enhances consistency across the codebase.


165-178: Reorganization of methods.

The reintroduction and reordering of the toString, equals, and hashCode methods at the end of the class improve the logical flow of method definitions. This organization enhances maintainability and readability.

build.gradle (8)

81-85: Source Sets Configuration: Improved Clarity and Maintainability.

The source set configuration has been refactored for better clarity. This change improves the maintainability of the build script.


218-221: Jar Task: Efficient Artifact Inclusion.

The jar task now includes only .jar files, improving the efficiency of the build process. This is a positive change.


43-43: Java Version Update: Ensure Compatibility.

The Java version has been updated to 11. Ensure that all parts of the codebase are compatible with Java 11, and consider potential improvements in performance or security.

Verification successful

Java Version Update: Compatibility Verified

The search did not reveal any Java 8 specific features that would cause compatibility issues with Java 11. While there are deprecated annotations, these do not necessarily impact compatibility. Consider reviewing these deprecated elements for potential refactoring.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of the codebase with Java 11.

# Test: Search for any Java 8 specific features or deprecated methods that might cause issues.
rg --type java --pcre2 'JavaVersion\.VERSION_8|@Deprecated'

Length of output: 3237


7-10: Dependency Version Updates: Verify Compatibility and Benefits.

The updates to the plugin versions (gradle-quality-plugin, axion-release-plugin, publish-plugin, spotless-plugin-gradle) should be verified for compatibility with the rest of the codebase. Ensure that these updates provide necessary improvements or bug fixes.


112-112: New Dependency Added: JAXB Implementation.

The jaxb-impl dependency has been added. Ensure that this addition is necessary and does not conflict with existing dependencies.

Also applies to: 139-139, 348-348

Verification successful

No Conflicts Detected with JAXB Implementation Dependency

The addition of the jaxb-impl dependency appears necessary and does not conflict with other dependencies. Comments in the build.gradle file indicate an understanding of transitive dependencies and the requirement for JAXB due to its removal from the JDK.

  • The bind-api is included transitively by jaxb-impl.
  • The jakarta.xml.bind-api dependency is commented out, indicating it was considered but not needed directly.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the necessity and compatibility of the `jaxb-impl` dependency.

# Test: Check for any existing JAXB dependencies and ensure no conflicts.
rg --type gradle 'jaxb-impl|jakarta.xml.bind'

Length of output: 671


Script:

#!/bin/bash
# Description: Search for other JAXB-related dependencies or configurations in the build.gradle file to check for potential conflicts.
rg --type gradle 'jaxb|bind|xml.bind'

Length of output: 741


96-97: Source and Target Compatibility: Confirm Java Version Alignment.

The source and target compatibility have been set to Java 11. Ensure that all dependencies and modules are aligned with this version.

Verification successful

Java Version Alignment Verified

No other Java version settings were found in the build.gradle files, indicating alignment with Java 11. However, ensure that all dependencies are compatible with Java 11 through further manual verification if needed.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all dependencies and modules are compatible with Java 11.

# Test: Check for any dependencies that might have issues with Java 11.
rg --type gradle 'JavaVersion\.VERSION_8'

Length of output: 43


Script:

#!/bin/bash
# Description: Verify Java version settings and check for compatibility with Java 11.

# Search for any Java version settings other than Java 11 in build.gradle files.
rg --type gradle 'JavaVersion\.VERSION_(?!11)'

# Check for any dependencies that might have compatibility issues with Java 11.
rg --type gradle 'sourceCompatibility|targetCompatibility'

Length of output: 361


Script:

#!/bin/bash
# Description: Verify Java version settings other than Java 11 in build.gradle files.

# Search for specific Java version settings other than Java 11.
rg --type gradle 'JavaVersion\.VERSION_8|JavaVersion\.VERSION_9|JavaVersion\.VERSION_10|JavaVersion\.VERSION_12|JavaVersion\.VERSION_13|JavaVersion\.VERSION_14|JavaVersion\.VERSION_15|JavaVersion\.VERSION_16|JavaVersion\.VERSION_17'

Length of output: 234


157-157: Updated Dependency: Prowide Software Core.

The pw-swift-core dependency has been updated to a new version. Verify that this update is compatible with the rest of the codebase and provides necessary improvements.

Also applies to: 341-341


501-503: Test Task Configuration: Ensure Environment Compatibility.

The test tasks have been updated to use Java versions 17 and 19. Verify that the test environments are set up correctly and compatible with these versions.

Also applies to: 507-509

Verification successful

Test Task Configuration Verified: Java 17 and 19 Compatibility

The testOn17 and testOn19 tasks in build.gradle are configured to use Java versions 17 and 19, respectively. No compatibility issues were found in the current configuration. If there are specific plugins or dependencies that might be incompatible, further manual verification is recommended.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of test environments with Java 17 and 19.

# Test: Check for any test-specific configurations that might need updating.
rg --type gradle 'testOn17|testOn19'

Length of output: 126


Script:

#!/bin/bash
# Extract detailed configurations for testOn17 and testOn19 tasks from build.gradle

# Print lines around the task definitions to capture configurations
rg --type gradle -A 10 'task\(\'testOn17\'|task\(\'testOn19\''

Length of output: 93


Script:

#!/bin/bash
# Extract detailed configurations for testOn17 and testOn19 tasks from build.gradle

# Corrected command to print lines around the task definitions to capture configurations
rg --type gradle -A 10 "task\\('testOn17'|task\\('testOn19'"

Length of output: 660

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/adapters/MxWriteAdaptersTest.java (6)

35-80: Comprehensive Test: Date-Time Propagation Without Fractional Seconds.

This test method effectively verifies the propagation of date-time values without fractional seconds. It covers XML content checks and ensures data consistency.


82-133: Comprehensive Test: Date-Time Propagation in UTC.

This test method effectively verifies the propagation of date-time values in UTC, ensuring correct XML content and data consistency.


135-187: Comprehensive Test: Date-Time Propagation with Fractional Seconds.

This test method effectively verifies the propagation of date-time values with fractional seconds, ensuring correct XML content and data consistency.


189-235: Comprehensive Test: Custom Date-Time Patterns.

This test method effectively verifies the application and propagation of custom date-time patterns, ensuring correct XML content.


237-253: Comprehensive Test: Custom Date and Date-Time Adapters.

This test method effectively verifies the application and propagation of custom date and date-time adapters, ensuring correct XML content.


255-267: Comprehensive Test: Date-Time Propagation in Application Headers.

This test method effectively verifies the propagation of date-time values in application headers, ensuring correct XML content and data consistency.

iso20022-core/src/main/java/com/prowidesoftware/swift/model/MxSwiftMessage.java (1)

21-21: Transition to Jakarta Persistence API: Ensure Compatibility.

The import statement has been updated to use jakarta.persistence. Ensure that all persistence-related code is compatible with Jakarta EE and that no javax.persistence references remain.

Verification successful

Transition to Jakarta Persistence API Verified

The codebase does not contain any references to javax.persistence, indicating that the transition to jakarta.persistence is complete. No further action is required.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of the transition to `jakarta.persistence`.

# Test: Search for any `javax.persistence` usage that might need updating.
rg --type java 'javax\.persistence'

Length of output: 37

iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java (4)

263-264: Refactor: Centralize Gson configuration.

The fromJson(String json, Class<T> classOfT) method now uses a centralized Gson builder configuration. This change improves maintainability by ensuring that all Gson configurations are managed in one place.


275-276: Refactor: Centralize Gson configuration.

The fromJson(String json) method now uses the centralized Gson builder configuration. This change ensures consistency in JSON deserialization across the application.


630-632: Refactor: Centralize Gson configuration.

The toJson() method now uses the centralized Gson builder configuration. This change enhances maintainability by reducing redundancy in Gson setup.


635-646: Enhancement: Add type adapters for Java 8 date and time classes.

The getGsonBuilderWithCustomAdapters() method includes type adapters for OffsetDateTime, OffsetTime, LocalDate, Year, and YearMonth. This enhancement improves JSON handling for date and time data, which is crucial for financial applications.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxReadImplTest.java (2)

134-135: Enhancement: Use ChronoField for date handling.

The use of ChronoField.YEAR and ChronoField.MONTH_OF_YEAR enhances clarity and consistency in date manipulation, aligning with modern Java time API standards.


637-637: Improvement: Use ISO date format in test data.

The change to use 2013-01-03 as the date format in the testrReadFxtr method aligns with ISO standards, improving readability and consistency in test data.

iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AbstractMxJsonTestAdapters.java (16)

34-75: Comprehensive JSON conversion test for MxPain00100108.

The test method testMxPain00100108_toJson_fromJson_With_OffsetDateTime thoroughly checks the JSON conversion process for the MxPain00100108 class. It covers various fields and ensures that the serialization and deserialization processes are consistent.


102-129: Comprehensive JSON conversion test for MxCamt05300106.

The test method testMxCamt05300106_toJson_fromJson_With_OffsetDateTime effectively verifies the JSON conversion process for the MxCamt05300106 class. It tests multiple account statements, ensuring that the serialization and deserialization processes are consistent and robust.


141-178: Effective JSON conversion test with OffsetDateTime.

The test method testMxDateTimeJson_OffsetDateTime successfully verifies the JSON conversion process for an AbstractMX object with OffsetDateTime fields. The assertions ensure that the serialized and deserialized JSON match the original input, confirming correct handling of date-time fields.


180-262: Robust JSON conversion test with LocalDate and OffsetDateTime.

The test method testMxLocalDateJson_LocalDate_OffsetDateTime effectively verifies the JSON conversion process for an AbstractMX object with LocalDate and OffsetDateTime fields. The assertions ensure that the serialized and deserialized JSON match the original input, confirming correct handling of date and time fields.


264-285: Accurate serialization and parsing test with LocalDate.

The test method testMxDateJsonSerializeAndParse_LocalDate accurately verifies the serialization and parsing process from XML to JSON for an AbstractMX object with LocalDate fields. The assertions confirm that the serialized and deserialized JSON match the original input, ensuring correct handling of date fields.


287-343: Successful parsing test with LocalDate and application headers.

The test method parseMxWithAppHdr_LocalDate successfully verifies the parsing process for an AbstractMX object from JSON, focusing on LocalDate and application headers. The use of assertDoesNotThrow ensures that the parsing process is robust and error-free.


345-409: Consistent parsing and serialization test with OffsetDateTime.

The test method parseSerializedMxWithAppHdr_OffsetDateTime consistently verifies the parsing and serialization process for an AbstractMX object with OffsetDateTime and application headers. The assertions confirm that the serialized and deserialized objects are equal, ensuring correct handling of date-time fields and headers.


411-479: Comprehensive parsing and serialization test with BusinessAppHdrV01.

The test method parseSerializedMxWithAppHdrBAH_V1_OffsetDateTime comprehensively verifies the parsing and serialization process for an AbstractMX object with OffsetDateTime and BusinessAppHdrV01. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


481-549: Comprehensive parsing and serialization test with BusinessAppHdrV02.

The test method parseSerializedMxWithAppHdrBAH_V2_OffsetDateTime comprehensively verifies the parsing and serialization process for an AbstractMX object with OffsetDateTime and BusinessAppHdrV02. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


551-619: Robust parsing and serialization test with legacy application header.

The test method parseSerializedMxWithAppHdrNoNameSpace_OffsetDateTime robustly verifies the parsing and serialization process for an AbstractMX object with OffsetDateTime and a legacy application header without a namespace. The assertions confirm that the serialized and deserialized objects are equal and that the legacy header is correctly handled.


621-772: Thorough parsing and serialization test with invalid namespace.

The test method parseSerializedMxWithAppHdrInvalidNamespace_OffsetDateTime thoroughly verifies the parsing and serialization process for an AbstractMX object with OffsetDateTime and an application header with an invalid namespace. The assertions confirm that the serialized and deserialized objects are equal, ensuring robust handling of headers with invalid namespaces.


774-838: Effective JSON conversion test with LocalDate and BusinessAppHdrV02.

The test method testJSON_With_LocalDate effectively verifies the JSON conversion process for an AbstractMX object with LocalDate and BusinessAppHdrV02. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


840-954: Comprehensive JSON conversion test with multiple date-time formats.

The test method testJSON_With_LocalDate_OffsetDateTime_OffsetTime comprehensively verifies the JSON conversion process for an AbstractMX object with LocalDate, OffsetDateTime, and OffsetTime. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


956-1058: Robust JSON conversion test with LocalDate and OffsetTime without offset.

The test method testJSON_With_LocalDate_OffsetTimeWithNoOffset robustly verifies the JSON conversion process for an AbstractMX object with LocalDate and OffsetTime without an offset. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


1060-1158: Thorough JSON conversion test with minimal date-time details.

The test method testJSONOffsetDateTimeWithNoNano_TimeWithNoNanoNoOffset thoroughly verifies the JSON conversion process for an AbstractMX object with OffsetDateTime and OffsetTime without nanoseconds or offsets. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.


1160-1274: Comprehensive JSON conversion test with YearMonth.

The test method testJSONYearMonth comprehensively verifies the JSON conversion process for an AbstractMX object with YearMonth and other date-time fields. The assertions confirm that the serialized and deserialized objects are equal and that the application header is correctly handled.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600104.java (3)

10-14: Migration to Jakarta EE imports approved.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate for aligning with Jakarta EE standards.


36-42: Static field declaration order approved.

Reordering to public static final is a stylistic improvement that aligns with Java conventions.


165-178: Reintroduction of toString, equals, and hashCode methods approved.

The use of Apache Commons Lang for these methods is appropriate for reflection-based implementation.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600105.java (3)

10-14: Migration to Jakarta EE imports approved.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate for aligning with Jakarta EE standards.


36-42: Static field declaration order approved.

Reordering to public static final is a stylistic improvement that aligns with Java conventions.


165-178: Reintroduction of toString, equals, and hashCode methods approved.

The use of Apache Commons Lang for these methods is appropriate for reflection-based implementation.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00400101.java (3)

10-14: Migration to Jakarta EE imports approved.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate for aligning with Jakarta EE standards.


36-42: Static field declaration order approved.

Reordering to public static final is a stylistic improvement that aligns with Java conventions.


165-178: Reintroduction of toString, equals, and hashCode methods approved.

The use of Apache Commons Lang for these methods is appropriate for reflection-based implementation.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500102.java (3)

10-14: Transition to Jakarta EE imports.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate and aligns with the move to Jakarta EE. Ensure that all dependencies are updated to support Jakarta EE.


36-42: Reorder of access modifiers.

The change from public final static to public static final is a minor stylistic improvement that aligns with Java conventions. This change does not affect functionality.


161-178: Reintroduction of standard methods.

The toString, equals, and hashCode methods are correctly implemented using Apache Commons Lang utilities, which is a good practice for consistent and reliable implementations.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500103.java (3)

10-14: Transition to Jakarta EE imports.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate and aligns with the move to Jakarta EE. Ensure that all dependencies are updated to support Jakarta EE.


36-42: Reorder of access modifiers.

The change from public final static to public static final is a minor stylistic improvement that aligns with Java conventions. This change does not affect functionality.


161-178: Reintroduction of standard methods.

The toString, equals, and hashCode methods are correctly implemented using Apache Commons Lang utilities, which is a good practice for consistent and reliable implementations.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00500104.java (3)

10-14: Transition to Jakarta EE imports.

The transition from javax.xml.bind to jakarta.xml.bind is appropriate and aligns with the move to Jakarta EE. Ensure that all dependencies are updated to support Jakarta EE.


36-42: Reorder of access modifiers.

The change from public final static to public static final is a minor stylistic improvement that aligns with Java conventions. This change does not affect functionality.


161-178: Reintroduction of standard methods.

The toString, equals, and hashCode methods are correctly implemented using Apache Commons Lang utilities, which is a good practice for consistent and reliable implementations.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00700101.java (3)

10-14: Approved: Transition to Jakarta EE imports.

The change from javax.xml.bind.annotation to jakarta.xml.bind.annotation aligns with the Jakarta EE specifications. Ensure that the rest of the codebase is compatible with this transition.


36-42: Verify the removal of final from static variables.

The final keyword has been removed from static variables, which affects their immutability. Ensure that this change is intentional and does not lead to unintended side effects.


161-178: Approved: Method reordering and fromJson modification.

The reordering of methods enhances readability. The removal of final from fromJson may affect subclassing. Verify if this change is aligned with the intended design.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600107.java (4)

36-42: Standardize static field declarations.

The static fields have been reordered from public final static to public static final. This is a stylistic change that aligns with Java conventions. It does not affect functionality but improves code readability.


165-178: Reorganize overridden methods.

The toString, equals, and hashCode methods have been reorganized. This grouping improves readability and maintainability by keeping related methods together.


10-14: Transition to Jakarta EE.

The import statements have been updated from javax.xml.bind.annotation.* to jakarta.xml.bind.annotation.*. This is necessary for compatibility with Jakarta EE. Ensure that all dependencies and environments support Jakarta EE.

Verification successful

Jakarta EE Transition Verified

All imports from javax.xml.bind.annotation have been successfully updated to jakarta.xml.bind.annotation, ensuring compatibility with Jakarta EE. No instances of the old imports were found in the codebase.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify that all imports from `javax.xml.bind.annotation` have been updated to `jakarta.xml.bind.annotation`.
rg --type java 'javax.xml.bind.annotation' -A 0

Length of output: 47


161-161: Adjust method declaration for extensibility.

The fromJson method has been changed from public final static to public static. This allows for potential overriding in subclasses, enhancing extensibility. Verify if this change aligns with the intended design.

Verification successful

Method declaration change aligns with current design.

The fromJson method's change to public static does not currently affect any subclass overrides, as there are no subclasses of MxAcmt00600107 implementing this method. This adjustment aligns with the current design.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if the `fromJson` method is overridden in any subclasses.
ast-grep --lang java --pattern $'class $_ extends MxAcmt00600107 { $$$ public static MxAcmt00600107 fromJson($_) { $$$ } $$$ }'

Length of output: 128


Script:

#!/bin/bash
# Find all subclasses of MxAcmt00600107
ast-grep --lang java --pattern 'class $_ extends MxAcmt00600107 { $$$ }'

# Check if any of these subclasses override the fromJson method
ast-grep --lang java --pattern 'class $_ extends MxAcmt00600107 { $$$ public static MxAcmt00600107 fromJson($_) { $$$ } $$$ }'

Length of output: 203

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200101.java (3)

36-42: Standardize static field declarations.

The static fields have been reordered from public final static to public static final, aligning with Java conventions. This improves code readability without affecting functionality.


165-178: Reorganize overridden methods.

The toString, equals, and hashCode methods have been reorganized. This grouping improves readability and maintainability by keeping related methods together.


161-161: Adjust method declaration for extensibility.

The fromJson method has been changed from public final static to public static. This allows for potential overriding in subclasses, enhancing extensibility. Verify if this change aligns with the intended design.

Verification successful

No subclasses found for MxAcmt00200101.

The change from public final static to public static in the fromJson method does not currently affect the codebase, as there are no subclasses of MxAcmt00200101 present. This adjustment allows for potential future extensibility if subclassing becomes necessary.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if the `fromJson` method is overridden in any subclasses.
ast-grep --lang java --pattern $'class $_ extends MxAcmt00200101 { $$$ public static MxAcmt00200101 fromJson($_) { $$$ } $$$ }'

Length of output: 128


Script:

#!/bin/bash
# Search for any subclasses of MxAcmt00200101
ast-grep --lang java --pattern 'class $_ extends MxAcmt00200101 { $$$ }'

Length of output: 74


Script:

#!/bin/bash
# Search for references to MxAcmt00200101 in the codebase to identify potential subclass locations.
rg 'MxAcmt00200101'

Length of output: 4904

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200102.java (4)

36-42: Standardize static field declarations.

The static fields have been reordered from public final static to public static final, which aligns with Java conventions. This change enhances code readability without affecting functionality.


165-178: Reorganize overridden methods.

The toString, equals, and hashCode methods have been reorganized. This grouping improves readability and maintainability by keeping related methods together.


10-14: Transition to Jakarta EE.

The import statements have been updated from javax.xml.bind.annotation.* to jakarta.xml.bind.annotation.*. This update is necessary for compatibility with Jakarta EE. Ensure that all dependencies and environments are compatible with Jakarta EE.


161-161: Adjust method declaration for extensibility.

The fromJson method has been changed from public final static to public static. This allows for potential overriding in subclasses, enhancing extensibility. Verify if this change aligns with the intended design.

Verification successful

No subclasses currently override the fromJson method.

The change from public final static to public static allows for potential overriding, but as of now, no subclasses have taken advantage of this extensibility. This suggests the change is aligned with the intended design for future extensibility or consistency.

  • No evidence of fromJson being overridden in subclasses.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if the `fromJson` method is overridden in any subclasses.
ast-grep --lang java --pattern $'class $_ extends MxAcmt00200102 { $$$ public static MxAcmt00200102 fromJson($_) { $$$ } $$$ }'

Length of output: 128

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100101.java (1)

10-14: Transition to Jakarta EE.

The import statements have been updated to use the jakarta.xml.bind package, indicating a transition to Jakarta EE. Ensure compatibility with systems relying on the older javax.xml.bind namespace.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00600106.java (1)

10-14: Transition to Jakarta EE.

The import statements have been updated to use the jakarta.xml.bind package, indicating a transition to Jakarta EE. Ensure compatibility with systems relying on the older javax.xml.bind namespace.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300102.java (1)

10-14: Transition to Jakarta EE.

The import statements have been updated to use the jakarta.xml.bind package, indicating a transition to Jakarta EE. Ensure compatibility with systems relying on the older javax.xml.bind namespace.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00100103.java (4)

10-14: Transition to Jakarta XML Bind Annotations.

The import statements have been updated from javax.xml.bind to jakarta.xml.bind, which aligns with the transition from Java EE to Jakarta EE. This is a necessary change for compatibility with newer Java versions.


36-42: Standardize Static Field Modifiers.

The order of modifiers for static fields has been standardized from final static to static final. This is a stylistic change that improves readability and consistency with Java conventions.


161-161: Removal of final Modifier from fromJson Method.

The final modifier has been removed from the fromJson method, allowing for potential overriding in subclasses. This change enhances extensibility.


165-178: Reintroduction of toString, equals, and hashCode Methods.

These methods have been reintroduced, providing standard object behavior for debugging and collections. Their implementation using reflection is common, but be aware of potential performance implications.

Consider verifying if these methods are performance-critical in your application, as reflection can be slower than direct field access.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00300103.java (4)

10-14: Transition to Jakarta XML Bind Annotations.

The import statements have been updated to jakarta.xml.bind, reflecting the transition to Jakarta EE. This change is necessary for compatibility with newer Java versions.


36-42: Standardize Static Field Modifiers.

The static field modifiers have been standardized from final static to static final. This change improves code readability and follows Java conventions.


161-161: Removal of final Modifier from fromJson Method.

The final modifier has been removed from the fromJson method, allowing for potential subclass overrides. This enhances the method's extensibility.


165-178: Reintroduction of toString, equals, and hashCode Methods.

These methods have been reintroduced, providing essential object behavior. Consider potential performance implications due to reflection.

Consider verifying if these methods are performance-critical, as reflection can impact performance.

model-acmt-mx/src/generated/java/com/prowidesoftware/swift/model/mx/MxAcmt00200106.java (4)

10-14: Transition to Jakarta XML Bind Annotations.

The import statements have been updated to jakarta.xml.bind, aligning with the transition to Jakarta EE. This is necessary for compatibility with newer Java versions.


36-42: Standardize Static Field Modifiers.

The static field modifiers have been standardized from final static to static final. This change improves code readability and adheres to Java conventions.


161-161: Removal of final Modifier from fromJson Method.

The final modifier has been removed from the fromJson method, allowing for potential subclass overrides. This enhances the method's extensibility.


165-178: Reintroduction of toString, equals, and hashCode Methods.

These methods have been reintroduced, providing essential object behavior. Consider potential performance implications due to reflection.

Consider verifying if these methods are performance-critical, as reflection can impact performance.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 22

Comment on lines +10 to +13
@Test
void test() {
try {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enhance test coverage with assertions.

The test currently checks for exceptions but does not verify the correctness of the parsed MxSwiftMessage. Consider adding assertions to validate the properties of the resulting object.

// Example assertion to verify a property
// assertEquals(expectedValue, mxSwiftMessage.someProperty());

* (PW-1875) Fixed the `ZuluDateTimeAdapter` to convert the datetime to UTC offset if needed

#### 9.4.5 - May 2024
#### 10.1.7 - August 2024
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect heading level.

The heading level should increment by one level at a time. Change the heading level from #### to ###.

-#### 10.1.7 - August 2024
+### 10.1.7 - August 2024
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.

Suggested change
#### 10.1.7 - August 2024
### 10.1.7 - August 2024
Tools
Markdownlint

3-3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


3-3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)

#### 10.1.7 - August 2024
* (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null

#### 10.1.6 - May 2024
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing blank line after heading.

Headings should be surrounded by blank lines for better readability.

-#### 10.1.6 - May 2024
+#### 10.1.6 - May 2024
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.

Suggested change
#### 10.1.6 - May 2024
#### 10.1.6 - May 2024
Tools
Markdownlint

6-6: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


#### 9.4.5 - May 2024
#### 10.1.7 - August 2024
* (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unordered list indentation.

The list item is not properly indented. Ensure consistent indentation for unordered list items.

-  * (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null
+* (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null
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.

Suggested change
* (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null
* (PW-1958) Fixed the `DefaultMxMetadataStrategy` NPE issue when the amount values are null
Tools
Markdownlint

4-4: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


4-4: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines +30 to +34
void testSerializationAndDeserialization() {
testSerializationAndDeserializationImpl("{\"year\":2019}");
testSerializationAndDeserializationImpl("{\"year\":2019}");
testSerializationAndDeserializationImpl("{\"year\":2019}");
testSerializationAndDeserializationImpl("{\"year\":1983}");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reduce redundancy in test cases.

The testSerializationAndDeserialization method repeats the same test case multiple times. Consider using a parameterized test to avoid redundancy.

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

@ParameterizedTest
@ValueSource(strings = {"{\"year\":2019}", "{\"year\":1983}"})
void testSerializationAndDeserialization(String json) {
    testSerializationAndDeserializationImpl(json);
}

Comment on lines +73 to +75
public OffsetDateTime unmarshal(String value) {
return parseOffsetDateTime(value);
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handle null values gracefully in unmarshal method.

The unmarshal method currently returns null for null input. Consider adding a log entry or exception handling to inform about null input.

Comment on lines +98 to +115
private static OffsetDateTime parseOffsetDateTime(String value) {
if (value == null) {
return null;
}
try {
return OffsetDateTime.parse(value);
} catch (DateTimeParseException e) {
log.log(Level.FINEST, "Error parsing OffsetDateTime: " + e.getMessage());
try {
// Attempt to parse as LocalDateTime and assume system default time zone
LocalDateTime localDateTime = LocalDateTime.parse(value);
return localDateTime.atZone(ZoneId.systemDefault()).toOffsetDateTime();
} catch (DateTimeParseException e2) {
log.log(Level.FINEST, "Error parsing LocalDateTime: " + e2.getMessage());
return null;
}
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Improve error handling in parseOffsetDateTime method.

The method logs parsing errors at the FINEST level. Consider using a higher log level or throwing an exception for critical parsing failures.

Comment on lines +121 to +124
@Override
public String toString() {
return "ZuluOffsetDateTimeAdapter{ yyyy-MM-dd'T'HH:mm:ss[.SSS]Z }";
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enhance toString method for better clarity.

The toString method provides a brief description of the adapter. Consider including more details about the formatting pattern used.

Comment on lines +84 to +96
public String marshal(OffsetDateTime offsetDateTime) throws Exception {
// Convert to Zulu time (UTC) before formatting
OffsetDateTime utcDateTime = offsetDateTime.withOffsetSameInstant(ZoneOffset.UTC);
String formatted = formatOffsetDateTime(this.marshalFormat, utcDateTime);

// Remove trailing fractional seconds if they are all zeros
Matcher matcher = FRACTIONAL_SECONDS_PATTERN.matcher(formatted);
if (matcher.find()) {
formatted = formatted.replace(matcher.group(), "Z");
}

return formatted;
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optimize fractional seconds removal logic.

The marshal method uses a regex to remove trailing zeros in fractional seconds. Consider optimizing this by checking if the fractional part is zero before formatting.

-  Matcher matcher = FRACTIONAL_SECONDS_PATTERN.matcher(formatted);
-  if (matcher.find()) {
-      formatted = formatted.replace(matcher.group(), "Z");
-  }
+  if (offsetDateTime.getNano() == 0) {
+      formatted = formatted.replaceAll("\\.0+Z", "Z");
+  }

Committable suggestion was skipped due to low confidence.

Comment on lines +10 to +14
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

Incomplete Transition to Jakarta EE

The codebase still contains several javax imports that need to be updated to their jakarta equivalents to ensure full compatibility with Jakarta EE. Please review and update the following files:

  • model-xsys-types/src/generated/java/com/prowidesoftware/swift/model/mx/sys/dic/SwIntMixedAnyPayload.java
  • model-common-types/src/main/java/com/prowidesoftware/swift/model/mx/adapters/IsoDateAdapter.java
  • model-common-types/src/main/java/com/prowidesoftware/swift/model/mx/adapters/IsoDateTimeAdapter.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxReadImpl.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxWriteImpl.java
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/MxXsysModelTest.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/LegacyAppHdr.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV01.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV03.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AbstractMX.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/XmlEventWriter.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/NamespaceReader.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/SupplementaryDataUtils.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/MxParseUtils.java
  • iso20022-core/src/main/java/com/prowidesoftware/swift/model/mx/AppHdrParser.java
  • iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/AppHdrTest.java
Analysis chain

Transition to Jakarta EE.

The import statements have been updated from javax.xml.bind.annotation.* to jakarta.xml.bind.annotation.*. This transition is crucial for compatibility with Jakarta EE. Ensure that all dependencies and environments are compatible with Jakarta EE.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify that all imports from `javax.xml.bind.annotation` have been updated to `jakarta.xml.bind.annotation`.
rg --type java 'javax.xml.bind.annotation' -A 0

Length of output: 47


Script:

#!/bin/bash
# Search for any remaining `javax` imports in the Java files to ensure a complete transition to Jakarta EE.
rg --type java '^import javax\.' -A 0

Length of output: 4833

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants