-
Notifications
You must be signed in to change notification settings - Fork 113
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 #162
SRU2023 v10 #162
Changes from 49 commits
9e6b724
9339793
a56d25c
30574d4
53a5cd2
2353ab0
6c38831
6ef66b0
55fc7dc
c2043d9
7901a64
db6965f
d848bbd
e222be1
06e69d0
eadb987
ce7b218
f27bff1
3e495b7
ca77829
c2dd8b7
f989a6a
1bafbf4
ec42431
bff2ec5
5fb0003
d3c2aa6
e96050d
f38d191
0ca2502
b7cba31
7711f1d
4360f17
ff4d58c
6432a35
ce46ca4
88c1389
450ce7f
4aa5bda
a8a504b
e85e9c7
c083729
7a7f50e
8316563
0d26e06
db7d108
9bd19c9
d3f8865
44a1dcc
a1a6e88
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,76 @@ | ||
# Prowide Core - CHANGELOG | ||
|
||
#### 9.4.19 - SNAPSHOT | ||
#### 10.1.18 - SNAPSHOT | ||
* (PW-2040) Updated the BBAN validation data file to the IBAN REGISTRY Jul 2024 release | ||
* Added new `MtSequenceEnum` with all the available inner sequences of specific MT schemas | ||
|
||
#### 9.4.18 - October 2024 | ||
#### 10.1.17 - October 2024 | ||
* Added new `FieldEnum` with all the available field names | ||
* Code security improvements as per CodeQL recommendations | ||
|
||
#### 9.4.17 - June 2024 | ||
#### 10.1.16 - June 2024 | ||
* (PW-1913) Added IBAN validation for Egypt local account structure | ||
|
||
#### 9.4.16 - May 2024 | ||
#### 10.1.15 - May 2024 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1862) Added NarrativeFragment class for detailed line information in StructuredNarrative fragments | ||
* Fixed SwiftMessage getPDE(): return empty value instead of null when codeword exists and has no value | ||
* Added isPercentage() helper method to field 37K | ||
|
||
#### 9.4.15 - March 2024 | ||
#### 10.1.14 - March 2024 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1812) Updated the narrative resolver, format 2 (used in field 72 for example), to allow empty values as part of the narrative fragment | ||
* Updated validators for BIC, country, and currency constraints to utilize keywords for i18n-compatible messages | ||
* Deprecated unnecessary methods in the SafeXmlUtils class | ||
|
||
#### 9.4.14 - December 2023 | ||
#### 10.1.13 - December 2023 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1718) Changed the getComponentLabel(component) in Field59F to be dynamic based on the line identifiers (similar to existing API in Field50F) | ||
|
||
#### 9.4.13 - November 2023 | ||
#### 10.1.12 - November 2023 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1697) Fixed validation/parse pattern in field 29O | ||
* (PW-1697) MT306 changes in field 30I | ||
* Added DistinguishedName with Builder in order to encapsulate the BIC branch name logic | ||
* Added DistinguishedName with Builder to encapsulate the BIC branch name logic | ||
|
||
#### 9.4.12 - November 2023 | ||
#### 10.1.11 - November 2023 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1697) Fixed validation pattern in fields 14[H,K,L,M,N,O] and 29J | ||
|
||
#### 9.4.11 - November 2023 | ||
#### 10.1.10 - November 2023 | ||
zubri marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* (PW-1695) Fixed a stack overflow in the fields fromJson implementation when a malformed JSON input contains empty field names | ||
* (PW-1688) Added missing field labels for SRU2023 changes in the pw_swift_*.properties file | ||
|
||
#### 9.4.10 - October 2023 | ||
#### 10.1.9 - October 2023 | ||
* (PW-1675) update to Field 31R to support also two date components as requested by SCORE messages | ||
* Added 36B and 36D getters to MT543 | ||
|
||
#### 9.4.9 - October 2023 | ||
#### 10.1.8 - October 2023 | ||
* (PW-1659) Field 24G deprecated Name and Address for Narrative | ||
|
||
#### 9.4.8 - October 2023 | ||
#### 10.1.7 - October 2023 | ||
* Added default methods for sender, receiver, and identifier extraction to the MessageExtractionStrategy | ||
* Added JSON to the `FileFormat` enumeration | ||
|
||
#### 9.4.7 - September 2023 | ||
#### 10.1.6 - September 2023 | ||
* (PW-1478) Fixed Field 44J parse and getValue to enable proper data preservation when the field contains multiline content | ||
|
||
#### 9.4.6 - September 2023 | ||
#### 10.1.5 - September 2023 | ||
* Added support for an optional `pw-swift-core.properties` to customize the behavior of the SafeXmlUtils class | ||
|
||
#### 9.4.5 - August 2023 | ||
#### 10.1.4 - September 2023 | ||
* (PW-1478) Field 44J parse and getValue fix | ||
|
||
#### 9.4.4 - August 2023 | ||
#### 10.1.3 - August 2023 | ||
* (PW-1478) Field 44J format fixed to allow multiline | ||
|
||
#### 9.4.3 - July 2023 | ||
#### 10.1.2 - August 2023 | ||
* (PW-1461) Remove deprecation of field 31R model since is it used back in SRU2023 | ||
* (PW-1405) Trim original String payload when creating an AbstractSwiftMessage | ||
|
||
#### 9.4.2 - June 2023 | ||
#### 10.1.1 - July 2023 | ||
* (GH-163) Remove unnecessary padding in sender and receiver in AbstractMT#creeate(number, sender, receiver) method | ||
* (PW-1323) Fixing getValue method for pattern issue in Field44J | ||
|
||
#### 9.4.1 - June 2023 | ||
#### 10.1.0 - June 2023 | ||
* Migration to Java 11 | ||
* Migration to Jakarta EE 10 | ||
* (PW-1323) Fixing getValue method for pattern issue in Field44J | ||
* (PW-1323) Fixing missing pattern issue in Field44J | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Improve changelog structure and formatting The changelog would benefit from some structural improvements:
Example structure: # Prowide Core - CHANGELOG
+## Table of Contents
+- [Latest Changes](#latest-changes)
+- [Released Versions](#released-versions)
+
+## Latest Changes
+
#### 10.1.18 - SNAPSHOT
+### Features
* Added new `MtSequenceEnum`...
+### Updates
* (PW-2040) Updated BBAN validation...
🧰 Tools🪛 LanguageTool[typographical] ~7-~7: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~11-~11: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~14-~14: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~19-~19: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~24-~24: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~27-~27: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~32-~32: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) [typographical] ~35-~35: If you want to indicate numerical ranges or time ranges, consider using an en dash. (DASH_RULE) 🪛 Markdownlint3-3: Expected: h2; Actual: h4 (MD001, heading-increment) 4-4: Expected: 0; Actual: 2 (MD007, ul-indent) 5-5: Expected: 0; Actual: 2 (MD007, ul-indent) 8-8: Expected: 0; Actual: 2 (MD007, ul-indent) 9-9: Expected: 0; Actual: 2 (MD007, ul-indent) 12-12: Expected: 0; Actual: 2 (MD007, ul-indent) 15-15: Expected: 0; Actual: 2 (MD007, ul-indent) 16-16: Expected: 0; Actual: 2 (MD007, ul-indent) 17-17: Expected: 0; Actual: 2 (MD007, ul-indent) 20-20: Expected: 0; Actual: 2 (MD007, ul-indent) 21-21: Expected: 0; Actual: 2 (MD007, ul-indent) 22-22: Expected: 0; Actual: 2 (MD007, ul-indent) 25-25: Expected: 0; Actual: 2 (MD007, ul-indent) 28-28: Expected: 0; Actual: 2 (MD007, ul-indent) 29-29: Expected: 0; Actual: 2 (MD007, ul-indent) 30-30: Expected: 0; Actual: 2 (MD007, ul-indent) 33-33: Expected: 0; Actual: 2 (MD007, ul-indent) 36-36: Expected: 0; Actual: 2 (MD007, ul-indent) 37-37: Expected: 0; Actual: 2 (MD007, ul-indent) 40-40: Expected: 0; Actual: 2 (MD007, ul-indent) 41-41: Expected: 0; Actual: 2 (MD007, ul-indent) 44-44: Expected: 0; Actual: 2 (MD007, ul-indent) 47-47: Expected: 0; Actual: 2 (MD007, ul-indent) 48-48: Expected: 0; Actual: 2 (MD007, ul-indent) 51-51: Expected: 0; Actual: 2 (MD007, ul-indent) 54-54: Expected: 0; Actual: 2 (MD007, ul-indent) 57-57: Expected: 0; Actual: 2 (MD007, ul-indent) 60-60: Expected: 0; Actual: 2 (MD007, ul-indent) 63-63: Expected: 0; Actual: 2 (MD007, ul-indent) 64-64: Expected: 0; Actual: 2 (MD007, ul-indent) 67-67: Expected: 0; Actual: 2 (MD007, ul-indent) 68-68: Expected: 0; Actual: 2 (MD007, ul-indent) 71-71: Expected: 0; Actual: 2 (MD007, ul-indent) 72-72: Expected: 0; Actual: 2 (MD007, ul-indent) 73-73: Expected: 0; Actual: 2 (MD007, ul-indent) 74-74: Expected: 0; Actual: 2 (MD007, ul-indent) 4-4: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces) 30-30: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces) 3-3: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 7-7: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 11-11: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 14-14: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 19-19: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 24-24: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 27-27: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 32-32: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 39-39: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 43-43: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 46-46: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 50-50: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 53-53: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 56-56: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 59-59: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 62-62: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 66-66: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 70-70: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 4-4: null (MD032, blanks-around-lists) 8-8: null (MD032, blanks-around-lists) 12-12: null (MD032, blanks-around-lists) 15-15: null (MD032, blanks-around-lists) 20-20: null (MD032, blanks-around-lists) 25-25: null (MD032, blanks-around-lists) 28-28: null (MD032, blanks-around-lists) 33-33: null (MD032, blanks-around-lists) 36-36: null (MD032, blanks-around-lists) 40-40: null (MD032, blanks-around-lists) 44-44: null (MD032, blanks-around-lists) 47-47: null (MD032, blanks-around-lists) 51-51: null (MD032, blanks-around-lists) 54-54: null (MD032, blanks-around-lists) 57-57: null (MD032, blanks-around-lists) 60-60: null (MD032, blanks-around-lists) 63-63: null (MD032, blanks-around-lists) 67-67: null (MD032, blanks-around-lists) 71-71: null (MD032, blanks-around-lists)
Comment on lines
+70
to
74
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Migration to Jakarta EE 10 is incomplete - XML APIs still using javax namespace The Jakarta EE migration is partially done but XML-related APIs are still using the legacy
While JPA, validation, and XML binding APIs have been properly migrated to the Jakarta namespace, the XML processing APIs need to be updated from 🔗 Analysis chainVerify completion of Jakarta EE 10 migration The migration to Jakarta EE 10 is a major change that requires thorough verification:
Let's check for any remaining javax imports: 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Check for remaining javax imports that should be jakarta
# Search for javax imports
rg "import javax\." -g "!*.md"
# Search for jakarta imports to verify migration
rg "import jakarta\." -g "!*.md"
Length of output: 5390 🧰 Tools🪛 Markdownlint71-71: Expected: 0; Actual: 2 (MD007, ul-indent) 72-72: Expected: 0; Actual: 2 (MD007, ul-indent) 73-73: Expected: 0; Actual: 2 (MD007, ul-indent) 74-74: Expected: 0; Actual: 2 (MD007, ul-indent) 70-70: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings) 71-71: null (MD032, blanks-around-lists) |
||
|
||
#### 9.4.0 - May 2023 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,10 +4,10 @@ buildscript { | |
gradlePluginPortal() | ||
} | ||
dependencies { | ||
classpath 'ru.vyarus:gradle-quality-plugin:4.7.0' | ||
classpath 'pl.allegro.tech.build:axion-release-plugin:1.14.2' | ||
classpath 'ru.vyarus:gradle-quality-plugin:4.9.0' | ||
classpath 'pl.allegro.tech.build:axion-release-plugin:1.15.1' | ||
classpath 'io.github.gradle-nexus:publish-plugin:2.0.0' | ||
classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.13.0' // above this version requires Java 11 | ||
classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.23.3' | ||
} | ||
} | ||
apply plugin: 'pl.allegro.tech.build.axion-release' | ||
|
@@ -39,7 +39,7 @@ tasks.withType(JavaCompile) { | |
options.encoding = 'UTF-8' | ||
java { | ||
toolchain { | ||
languageVersion.set(JavaLanguageVersion.of(8)) | ||
languageVersion.set(JavaLanguageVersion.of(11)) | ||
} | ||
} | ||
doFirst { | ||
|
@@ -55,20 +55,26 @@ dependencies { | |
implementation 'org.apache.commons:commons-lang3:3.12.0' | ||
implementation 'com.google.code.gson:gson:2.9.0' | ||
|
||
compileOnly 'javax.persistence:javax.persistence-api:2.2' | ||
compileOnly 'javax.xml.bind:jaxb-api:2.3.1' | ||
compileOnly 'javax.validation:validation-api:2.0.1.Final' | ||
// jakarta is only used for annotations, we do not add it as implementation dependency on purpose to avoid forcing | ||
// users to use jakarta jars in their project when they might not event be using JPA or JAXB at all | ||
compileOnly 'jakarta.persistence:jakarta.persistence-api:3.1.0' | ||
compileOnly 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0' | ||
compileOnly 'jakarta.validation:jakarta.validation-api:3.0.2' | ||
Comment on lines
+58
to
+62
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Remaining The following files still contain imports from
Please update these imports to their corresponding 🔗 Analysis chainEnsure All Code Imports Are Updated to 'jakarta.*' Packages The dependencies have been updated from
Please verify that all code imports and usages have been updated accordingly to prevent Run the following script to find any remaining 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Find imports from 'javax' packages in the main source code.
# Expected: No imports from 'javax' packages.
rg --type java '^import javax\.' src/main/java/
Length of output: 1099 |
||
|
||
testImplementation 'javax.validation:validation-api:2.0.1.Final' | ||
testImplementation 'javax.persistence:javax.persistence-api:2.2' | ||
testImplementation 'jakarta.persistence:jakarta.persistence-api:3.1.0' | ||
testImplementation 'jakarta.validation:jakarta.validation-api:3.1.0' | ||
Comment on lines
+64
to
+65
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Remaining The following test files still contain imports from
Please update these imports to use 🔗 Analysis chainEnsure Test Code Imports Are Updated to 'jakarta.*' Packages The test dependencies have also been updated to use
Please verify that all test code imports and usages have been updated to match these dependencies. Run the following script to find any remaining 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Find imports from 'javax' packages in the test source code.
# Expected: No imports from 'javax' packages.
rg --type java '^import javax\.' src/test/java/
Length of output: 1371 |
||
testImplementation('org.junit.jupiter:junit-jupiter:5.8.2') | ||
testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.22.0' | ||
testImplementation group: 'org.xmlunit', name: 'xmlunit-core', version: '2.9.0' | ||
testImplementation group: 'org.xmlunit', name: 'xmlunit-matchers', version: '2.9.0' | ||
testImplementation group: 'org.xmlunit', name: 'xmlunit-assertj', version: '2.9.0' | ||
} | ||
|
||
sourceSets.main.java.srcDirs = ['src/main/java', 'src/generated/java'] | ||
sourceSets.named('main') { | ||
java { | ||
setSrcDirs(['src/main/java', 'src/generated/java']) | ||
} | ||
} | ||
|
||
test { | ||
useJUnitPlatform() | ||
|
@@ -83,8 +89,8 @@ tasks.withType(Jar) { | |
'Implementation-Version': project.version, | ||
'Implementation-Vendor': 'www.prowidesoftware.com', | ||
'Built-OS': System.getProperty('os.name'), | ||
'Source-Compatibility': project.sourceCompatibility, | ||
'Target-Compatibility': project.targetCompatibility, | ||
'Source-Compatibility': JavaVersion.VERSION_11, | ||
'Target-Compatibility': JavaVersion.VERSION_11, | ||
'Built-Date': new Date().format("yyyy-MM-dd"), | ||
'Automatic-Module-Name': 'com.prowidesoftware.core' | ||
) | ||
|
@@ -259,7 +265,7 @@ tasks.register('bundle', Jar) { | |
from ("$buildDir/libs") { | ||
include '*.asc' | ||
} | ||
archiveName 'bundle.jar' | ||
archiveFileName.set('bundle.jar') | ||
} | ||
|
||
tasks.withType(Test) { | ||
|
@@ -282,9 +288,15 @@ task('testOn17', type: Test) { | |
|
||
jacocoTestReport { | ||
reports { | ||
xml.enabled true | ||
csv.enabled false | ||
html.enabled false | ||
xml { | ||
required.set(true) | ||
} | ||
csv { | ||
required.set(false) | ||
} | ||
html { | ||
required.set(false) | ||
} | ||
} | ||
|
||
// exclude generated code | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip | ||
networkTimeout=10000 | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Enhance the SNAPSHOT entry documentation
The SNAPSHOT version entry could be improved with:
MtSequenceEnum
provides and its use casesConsider adding more context:
🧰 Tools
🪛 Markdownlint
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)
5-5: Expected: 0; Actual: 2
Unordered list indentation
(MD007, ul-indent)
4-4: Expected: 0 or 2; Actual: 1
Trailing spaces
(MD009, no-trailing-spaces)
3-3: 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)