Conversation
… mappers Remove IdentifiedObject field mappings and updateEntity() methods from all MapStruct mappers. The Atom protocol layer now exclusively handles IdentifiedObject metadata (id, uuid, description, published, updated, selfLink, upLink, relatedLinks). Mapper Changes: - Remove all IdentifiedObject field mappings (id, uuid, description, published, updated, links) - Remove updateEntity() methods from all mappers - Add @mapping(target = "id", ignore = true) to prevent UUID→Long type conflicts - Mappers now only handle XSD-defined fields DTO Changes: - UsageSummaryDto: Remove Atom metadata fields (published, updated, selfLink, upLink, relatedLinks, description) - ElectricPowerQualitySummaryDto: Remove description field - Update @XmlType propOrder to match reduced field sets - Fix convenience constructors to match canonical constructor parameters Test Enhancements: - Fix DtoExportServiceImplTest reflection setup (remove obsolete dateTimeMapper) - Add TimeConfiguration, UsageSummary, and ElectricPowerQualitySummary entries to export test - Populate all test DTOs with comprehensive meaningful data instead of nulls - Add assertions to validate XML serialization of all populated fields - All 6 DtoExportServiceImplTest tests pass Test Results: - 580 tests run, 571 pass - 9 pre-existing Jackson3XmlMarshallingTest failures (AtomContent deserialization - unrelated) - DtoExportServiceImplTest: 6/6 pass with comprehensive field validation This completes the separation of concerns between MapStruct mapping (XSD fields only) and Atom protocol handling (metadata fields). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ation - Removed deprecated AtomContentDto class - Updated AtomEntryDto to handle content directly (payload moved to AtomEntryDto) - Fixed MigrationVerificationTest to use correct AtomEntryDto constructor - Added local element names to @JsonSubTypes for Jackson deserialization compatibility - Updated DtoExportServiceImpl to use EspiIdGeneratorService for UUID5 generation - Fixed all Jackson3XmlMarshallingTest deserialization issues - All 580 tests passing with 0 failures and 0 errors Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 16d completes the separation of concerns between MapStruct mapping (XSD fields only) and Atom protocol handling (IdentifiedObject metadata). This refactor removes all IdentifiedObject field mappings from MapStruct mappers and fixes related DTOs and tests.
Mapper Changes (17 mappers)
updateEntity()methods from all mappers@Mapping(target = "id", ignore = true)to prevent UUID→Long type conflictsUpdated Mappers:
DTO Fixes
UsageSummaryDto
ElectricPowerQualitySummaryDto
Test Enhancements
DtoExportServiceImplTest
Test Results
Files Changed
Impact
This change completes the architectural separation:
The separation prevents type conflicts (UUID vs Long for id), reduces mapper complexity, and properly delegates metadata handling to the AtomFeedDto/AtomEntryDto layer.
🤖 Generated with Claude Code