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

SRU2024 v10.2 #115

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ddf4899
initial commit SRU version update
zubri Apr 22, 2024
81031c5
Initial SRU2024 update commit
zubri Apr 27, 2024
8f1a274
change WIP fixed version to SNAPSHOT
zubri Apr 27, 2024
630b511
Add support in the MxWriteConfiguration to use standard envelopes for…
zubri May 15, 2024
5787750
Enhanced MxId with optional businessService to act as a message type …
zubri May 17, 2024
65cb6ad
Make MxId businessService transient
zubri May 19, 2024
1c765e2
updated dependencies
zubri May 22, 2024
6969336
release
zubri May 22, 2024
9c6ab68
release
zubri May 22, 2024
9a21cb6
release
zubri May 22, 2024
bb9a8a2
Merge branch 'SRU2024' of github.com:prowide/prowide-iso20022 into SR…
zubri May 22, 2024
8bad7a1
Merge branch 'develop' into SRU2024
zubri May 22, 2024
33c3771
migration to jakarta
zubri May 24, 2024
c21c8e7
migration to Jakarta and Java update to 11
zubri May 24, 2024
8f0cf6a
model generation for SRU2024 and Jakarta
zubri May 24, 2024
d34440f
fix build for gradle 8
zubri May 24, 2024
c061796
fix tests
zubri May 24, 2024
99819f5
pre release
zubri May 27, 2024
4d991d8
enhanced parsing to detect business service from header
zubri Jun 28, 2024
b25d876
release
zubri Jun 29, 2024
8480d43
Merge branch 'develop' into SRU2024
zubri Jun 29, 2024
5ff39e8
core update and release
zubri Jun 29, 2024
fdef2c2
Merge remote-tracking branch 'origin/SRU2024' into SRU2024_v10
zubri Jun 29, 2024
81e93b7
core update
zubri Jun 29, 2024
39dde93
Issue 118: Fix backward compatibility issue on DateTime fields serial…
Jul 19, 2024
bebeb44
code rabbit minor fixes
zubri Jul 31, 2024
04b9e2a
update generated MX model (#120)
zubri Aug 1, 2024
4a031ca
PW-1947: Updated MX model with latest SWIFT SRU2024 schema update, in…
zubri Aug 1, 2024
0440cbe
Add fix in OffsetTimeJsonAdapter.
fernando-prowide Aug 1, 2024
e475c83
Add javadoc
fernando-prowide Aug 1, 2024
569bfbc
Fix ZoneId to avoid getting from TimeZone
fernando-prowide Aug 1, 2024
cab51fc
Merge pull request #122 from prowide/gh/issue-118
fernando-prowide Aug 1, 2024
9c8c00f
added BAH v4 (#123)
zubri Aug 1, 2024
0108398
release
zubri Aug 1, 2024
23b437b
fix ticket number in changelog
zubri Aug 1, 2024
5d04614
PW-1933: Fix on json adapter processing timezone value from JSON
zubri Aug 2, 2024
77dbd01
Add support for business application header version head.001.001.04 v…
zubri Aug 2, 2024
fdf3346
cherry pick PR CU-86b1kajgv_PW-1958--NullPointerException-in-MxSwiftM…
zubri Aug 14, 2024
139f1cc
Merge remote-tracking branch 'origin/SRU2024' into SRU2024_v10
zubri Aug 14, 2024
da3a256
merge fix
zubri Aug 14, 2024
87cbe5c
CU-86b15d33f_GH-118-⁃-Retro-compatibility-with-dates-between-v9-and-v…
ptorres-prowide Nov 8, 2024
93a6650
fix changelog
zubri Nov 8, 2024
5e05474
prowide core dependency update
zubri Nov 8, 2024
11d78ac
Merge remote-tracking branch 'origin/main' into SRU2024_v10
zubri Nov 19, 2024
54988ad
fixed codegen for jakarta and SRU2024
zubri Nov 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ release.sh
.idea/sonarlint
*.hprof
.idea/copilot
.java-version
2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 26 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
# Prowide ISO 20022 - CHANGELOG

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

#### 9.5.4 - August 2024
#### 10.2.4 - November 2024
* (GH-118) Added `toJsonV9` and `fromJsonV9` in the `AbstractMX` to handle retro-compatibility with Java 8 DateTime elements in JSON serialization

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

#### 9.5.3 - August 2024
#### 10.2.2 - August 2024
* (PW-1947) Updated MX model with latest SWIFT SRU2024 schema update, including new messages such as trck.001.001.03
* Add support for Business Application Header version head.001.001.04

#### 9.5.2 - June 2024
* (PW-1933) Fix backward compatibility issue on DateTime fields when doing JSON to model conversion (thanks @elominp)
* (PW-1875) Fixed the `ZuluDateTimeAdapter` to convert the datetime to UTC offset if needed
* Add support for Business Application Header version head.001.001.04

#### 9.5.1 - June 2024
#### 10.2.1 - June 2024
* Enhanced the AppHdrFactory to honor the business service set in the parameter MxId
* Enhanced the MxParseUtils#identifyMessage to set the business service in the MxId when present

#### 9.5.0 - May 2024
#### 10.2.0 - May 2024
* SWIFT Standard release update 2024 (live 16 November 2024)
* Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
* Added message categories for File Management (cafm), Fraud Reporting and Disposition (cafm), Network Management (canm), and Settlement Reporting (casr)
Expand All @@ -27,26 +26,37 @@
* Dependency update: commons-lang3 -> 3.14.0
* Dependency update: gson -> 2.11.0

#### 9.4.5 - May 2024
#### 10.1.6 - May 2024
* (PW-1875) Changed the BusinessApplicationHeaderV01 marshaller to always use Zulu timezone with "Z" indicator

#### 9.4.4 - January 2024

#### 10.1.5 - April 2024
* Update jaxb dependency from com.sun.xml.bind:jaxb-impl:4.0.2 to 4.0.5 containing several jaxb bugfixes

#### 10.1.4 - January 2024
* Enhanced the identifier extraction of the MxSwiftMessage to use the AppHdr when the Document namespace is missing
* Enhanced the generic AbstractMX#parse to detect the message type from the AppHdr when the Document namespace is missing
* Added default metadata extraction implementation for pacs and camt amounts and value dates
* Added default methods for sender, receiver, and identifier extraction to the MxSwiftMessage.
* Replaced the DistinguishedName parse logic with proprietary util class from the Prowide Core library

#### 9.4.3 - August 2023
#### 10.1.3 - August 2023
* (PW-1566) Fixed manipulation of nanoseconds in the OffsetTime and OffsetDateTime adapters
* Enhanced metadata extraction for xsys messages getting sender/receiver BICs from the RequestHeader element
* Make the message metadata extraction lenient, by fixing the XML instruction of the payload when it contains invalid case

#### 9.4.2 - July 2023
#### 10.1.2 - August 2023
* Added new utility class SupplementaryDataUtils to facilitate "SplmtryData" extraction from MX messages

#### 9.4.1 - June 2023
#### 10.1.1 - July 2023
* (PW-1392) Fixed the default escape handler when serializing model objects into XML, that was duplicated quote characters in the output

#### 10.1.0 - June 2023
* Migration to Java 11
* Migration to Jakarta EE 10
* XmlGregorianCalendar was replaced model-wide by the new java.time classes
* Fixed AppHdrFactory creation to use UTC in the header default creation date time
* Fixed the business application header V01 serialization to use Zulu time indicator instead of +00:00 offset

#### 9.4.0 - May 2023
* SWIFT Standard release update 2023 (live 19 November 2023)
* Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2022/getting-started/deprecation/)
Expand Down
65 changes: 44 additions & 21 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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.13.6'
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 '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:1.3.0'
classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.23.3'
}
}
apply plugin: 'pl.allegro.tech.build.axion-release'
Expand Down Expand Up @@ -40,7 +40,7 @@ allprojects {
options.encoding = 'UTF-8'
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(8))
languageVersion.set(JavaLanguageVersion.of(11))
}
}
doLast {
Expand Down Expand Up @@ -71,7 +71,11 @@ allprojects {
}
}

sourceSets.main.java.srcDirs = ['src/main/java', 'src/generated/java']
sourceSets.named('main') {
java {
setSrcDirs(['src/main/java', 'src/generated/java'])
}
}

tasks.withType(Jar) {
manifest.attributes(
Expand All @@ -82,8 +86,8 @@ allprojects {
'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.iso20022'
)
Expand All @@ -98,6 +102,9 @@ subprojects {
dependencies {
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'com.sun.xml.bind:jaxb-impl:4.0.5'
// bind-api is included transitively by jaxb-impl
// implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
}

tasks.withType(Jar) {
Expand All @@ -118,8 +125,14 @@ configure(subprojects.findAll {it.name.endsWith('-mx')}) {
dependencies {
api project(':iso20022-core')
implementation project(specificTypesProject)

implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'com.google.code.gson:gson:2.9.0'

implementation 'com.sun.xml.bind:jaxb-impl:4.0.5'
// bind-api is included transitively by jaxb-impl
// implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'

compileOnly 'javax.persistence:javax.persistence-api:2.2'
}
}
Expand All @@ -134,15 +147,15 @@ configure(subprojects.findAll {it.name.endsWith('-mx')}) {
project(':iso20022-core') {
dependencies {
// included build
api 'com.prowidesoftware:pw-swift-core:SRU2024-9.5.2'
api 'com.prowidesoftware:pw-swift-core:SRU2024-10.2.2'

implementation 'org.apache.commons:commons-lang3:3.14.0'
implementation 'com.google.code.gson:gson:2.11.0'

compileOnly 'javax.persistence:javax.persistence-api:2.2'
compileOnly 'javax.validation:validation-api:2.0.1.Final'
compileOnly 'jakarta.persistence:jakarta.persistence-api:3.1.0'
compileOnly 'jakarta.validation:jakarta.validation-api:3.0.2'

testImplementation 'javax.persistence:javax.persistence-api:2.2'
testImplementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
testImplementation 'com.google.guava:guava:33.2.0-jre'
testImplementation 'org.assertj:assertj-core:3.25.3'
Expand Down Expand Up @@ -194,7 +207,11 @@ jar {
archivesBaseName = 'pw-iso20022'
subprojects.each { subproject ->
from subproject.configurations.archives.allArtifacts.files.collect {
zipTree(it)
// filter out any artifacts that are not jars
if (it.name.endsWith('.jar')) {
println "Adding ${it.name} to fat jar"
zipTree(it)
}
}
}
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
Expand Down Expand Up @@ -313,9 +330,15 @@ artifacts {
// declared dependencies for pom generation
dependencies {
// included build (keep in sync with the latest Prowide Core version)
api 'com.prowidesoftware:pw-swift-core:SRU2024-9.5.2'
implementation 'org.apache.commons:commons-lang3:3.14.0'
implementation 'com.google.code.gson:gson:2.10'
api 'com.prowidesoftware:pw-swift-core:SRU2024-10.2.2'

// included transitive dependencies from Prowide Core
//implementation 'org.apache.commons:commons-lang3:3.14.0'
//implementation 'com.google.code.gson:gson:2.10'

// jaxb is required because it is no longer included in the JDK
// bind-api is included transitively by jaxb-impl
implementation 'com.sun.xml.bind:jaxb-impl:4.0.5'
}

// repo for publishing
Expand Down Expand Up @@ -452,7 +475,7 @@ tasks.register('bundle', Jar) {
from ("$buildDir/libs") {
include '*.asc'
}
archiveName 'bundle.jar'
archiveFileName.set('bundle.jar')
}

tasks.withType(Test) {
Expand All @@ -461,15 +484,15 @@ tasks.withType(Test) {
}
}

task('testOn11', type: Test) {
task('testOn17', type: Test) {
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(11)
languageVersion = JavaLanguageVersion.of(17)
}
}

task('testOn17', type: Test) {
task('testOn19', type: Test) {
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
languageVersion = JavaLanguageVersion.of(19)
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
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
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.prowidesoftware.swift.model.mx.*;
import jakarta.persistence.*;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Objects;
import java.util.Optional;
import javax.persistence.*;
import org.apache.commons.lang3.StringUtils;

/**
Expand Down
Loading