Skip to content

SRU2025 Java 8 Maintenance#185

Open
zubri wants to merge 33 commits into
mainfrom
SRU2025-java8-maintenance
Open

SRU2025 Java 8 Maintenance#185
zubri wants to merge 33 commits into
mainfrom
SRU2025-java8-maintenance

Conversation

@zubri

@zubri zubri commented Nov 26, 2025

Copy link
Copy Markdown
Member

Re-opening PR #163 with base branch changed from java8-maintenance to main.

This PR contains the SRU2025 schema updates for the Java 8 maintenance branch.

zubri and others added 30 commits April 10, 2025 19:21
* feat: Enhanced the `MxParseUtils` to be lenient when the XML declaration has empty or invalid version attribute

* (PW-2637) Block-5-5PDE-is-getting-generated-even-though-PssblDplct-value-is-false in AppHdr (#167)

* getCpyDplct is not applicable to decide Duplicate [PDE]

* getCpyDplct is not applicable to decide Duplicate [PDE]

* Update CHANGELOG.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update iso20022-core/src/test/java/com/prowidesoftware/swift/model/mx/BusinessAppHdrV02Test.java

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: changelog indentation

* chore: code rabbit suggestion

* getCpyDplct is not applicable to decide Duplicate [PDE]. Fixed Testcase

---------

Co-authored-by: Sebastian Zubrinic <sebastian@prowidesoftware.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: prowide core update

* chore: release

* chore: IDEA conf

* chore: fix gradle for new maven central publication

* chore: prowide core update

* chore: release

---------

Co-authored-by: zubri <sebastian@prowidesoftware.com>
Co-authored-by: malai-subra <malai.subramanian@prowidesoftware.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: prowide core update

* chore: release

* Enhanced camt.057 amount extraction in the DefaultMxMetadataStrategy (#176)

* (GH-175) Removed extra double quote in minimum escape handler (#174)

* removed extra double quote in minimum escape handler

it was a bug in default escape handler resolved by zubrin
in SRU2022 -9.3.7

* Add test coverage and CHANGELOG entry for MinimumEscapeHandler bugfix

- Added comprehensive test suite for MinimumEscapeHandler
- Tests validate quote handling in attribute and non-attribute contexts
- Tests confirm the fix for duplicated quote characters (GH-174)
- Updated CHANGELOG.md with entry for version 10.2.10-SNAPSHOT

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: zubri <sebastian@prowidesoftware.com>
Co-authored-by: Claude <noreply@anthropic.com>

* fix: spotless

* (GH-168) Fix MX parsing error when AppHdr appears before Document in xsys messages (#177)

* Fix MX parsing error when AppHdr appears before Document in xsys messages

Fixed parsing error in MxXsys messages when AppHdr element appears before
Document element in the XML envelope (correct SWIFT standard order).

Root cause: NamespaceAndElementFilter was not preserving xsys namespace
prefix mappings (Sw, SwInt, SwGbl) that were declared before the Document
element was encountered, causing NullPointerException during parsing.

Solution: Added pending prefix mappings queue to store xsys namespace
mappings encountered before the target element, then flush them when
entering the element to propagate.

Changes:
- Modified NamespaceAndElementFilter to queue and propagate pending
  namespace prefix mappings
- Added comprehensive test case for AppHdr positioning scenarios
- Updated CHANGELOG.md with fix entry

Fixes #168

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Use imports instead of fully qualified names

Changed java.util.List and java.util.ArrayList to use import statements
instead of fully qualified names for better code readability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

* (GH-165) Added parseElement method to parse standalone JAXB elements from non-standard XML wrappers (#178)

Added MxParseUtils.parseElement() methods to support parsing SWIFTNet infrastructure acknowledgment elements like SwIntWaitResponse from non-standard XML wrapper structures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

* chore: release

* (PW-2895) Fix namespace prefix handling for custom envelope types in XML serialization (#179)

* (PW-2895) Fix namespace prefix handling for custom envelope types in XML serialization

* (PW-2895) Obfuscated test

* fix: test

---------

Co-authored-by: ecancrini <ecancrini@gmail.com>
Co-authored-by: zubri <sebastian@prowidesoftware.com>

---------

Co-authored-by: zubri <sebastian@prowidesoftware.com>
Co-authored-by: Fernando de Sarriera <71713679+fernando-prowide@users.noreply.github.com>
Co-authored-by: Mridul Gupta <66024896+MridulGupta75@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Ezequiel Cancrini <ECancrini@alchemy14.com>
Co-authored-by: ecancrini <ecancrini@gmail.com>
Merge and adapt changes from origin/main to the Java 8 maintenance branch:
- Resolve merge conflicts in generated files (setr, supl, sese, xsys modules)
- Replace jakarta.xml.bind imports with javax.xml.bind (364 files)
- Replace java.time types with XMLGregorianCalendar in new generated files (26 files)
- Backport UETR extraction in MxSwiftMessage
- Backport checksum/checksumBody with XML canonicalization in DefaultMxMetadataStrategy
- Add MxNode.getLocalName() and MxNode.toCanonicalString()
- New semt, supl, xsys message types and versions
- Fix InputChannelListXsys00700101 incorrect class reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Strategy: -s ours then selective overlay.
- Generated model-* modules: kept this branch's version (Java 8 compatible)
- iso20022-core: overlaid from origin/main (includes PW-3133 Zulu datetime feature)
- Root files .gitignore, CHANGELOG.md, overview.html, .idea/compiler.xml, .claude/settings.json: taken from main
- build.gradle: kept ours (Java 8 toolchain)

Follow-up required: jakarta.xml.bind imports in iso20022-core need to be
backported to javax.xml.bind for Java 8 compatibility.
…for Java 8 compat

Surgically apply PW-3133 (Zulu CreDt serialization toggle on BAH V01..V04) on top
of the merge of origin/main, while reverting other iso20022-core changes from main
that depend on pw-swift-core 10.x APIs absent from this branch's pinned 9.6.7.

iso20022-core:
- BusinessAppHdrV01..V04: add useZuluCreationDateTime flag, getters/setters, and
  effective-params switching in xml(). V01 default true (preserves prior behavior),
  V02..V04 default false.
- MxWriteParams: add copy constructor.
- MxWriteUtils: add withZuluDateTimeAdapter helper using ZuluDateTimeAdapter
  (XMLGregorianCalendar-based) instead of main's OffsetDateTime-based adapter.
- TypeAdaptersConfiguration: add copy constructor using existing 9.6.7 adapters.
- BusinessAppHdrZuluCreationDateTimeTest: kept from main, adapted to use
  XMLGregorianCalendar via DatatypeFactory instead of OffsetDateTime.
- All other iso20022-core/src files reverted to pre-merge state.
- Removed ZuluOffsetDateTimeAdapter and tests for adapters not present in 9.6.7.

Root files reverted to pre-merge to keep Java 8 branch identity:
.gitignore, .idea/compiler.xml, CHANGELOG.md (added 9.6.4 PW-3133 entry),
overview.html, .claude/settings.json (now untracked).

Verified: ./gradlew :iso20022-core:test passes (318 tests, 9 PW-3133-specific).
zubri and others added 3 commits July 2, 2026 12:29
Brings in functional changes from main (PW-3251 lenient FileAct parsing,
xsd:any wildcard content capture on parse/JSON, PW-3202 xsys prefix mapping
fix, PW-3185 Calendar JSON read-compat, semt.044 draft4->draft5 regen),
adapted for Java 8:

- Generated code (model-semt-types) regenerated from main then converted
  from jakarta.xml.bind back to javax.xml.bind to match this branch's JAXB.
- AbstractMX/MxSwiftMessage: adopted the wildcard-content and Calendar
  read-compat fixes without pulling in main's OffsetDateTime/V9/V10 Gson
  adapter split, which doesn't apply since this branch's model still uses
  XMLGregorianCalendar uniformly.
- Added CalendarTypeAdapter locally (mirrors pw-swift-core 10.3.14's class)
  since it isn't available in this branch's pinned pw-swift-core 9.6.7;
  only the fromJson()-side of the Calendar 1-based-month fix is active
  here, toJson() still relies on AbstractSwiftMessage from 9.6.7 which
  doesn't emit the schemaVersion marker.
- build.gradle: kept this branch's pinned Java 8-safe plugin/dependency
  versions (gradle-quality-plugin, spotless, prowideCoreVersion), restored
  the model-admi-mx/-types test dependency main added for a new test.
- Re-adopted main's .claude/settings.json and .claude/hooks/ (per request).
- Consolidated main's 10.3.7-10.3.10 changelog entries into a single 9.6.5
  entry.

Verified: ./gradlew build compiles all 72 modules on Java 8; iso20022-core
test suite passes 393/393.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants