Skip to content

Conversation

@springframeworkguru
Copy link
Contributor

This pull request introduces several important updates to the Green Button ESPI codebase, primarily focused on improving XML/JSON serialization compatibility, updating entity mappings for UUIDs, and cleaning up CI configuration. The changes modernize how resources are represented in Atom feeds, enhance database compatibility for UUID fields, and streamline the CI pipeline by removing legacy service dependencies.

Serialization and DTO Improvements

  • Refactored AtomEntryDto and AtomContentDto to support direct serialization of Green Button resources (such as UsagePointDto, MeterReadingDto, and ReadingTypeDto) with Jackson XML annotations. Deprecated AtomContentDto and moved payload handling to AtomEntryDto, enabling better interoperability and future extensibility. [1] [2] [3] [4] [5]
  • Updated DTOs (IntervalBlockDto, IntervalReadingDto, ReadingTypeDto, UsagePointDto) to clean up or replace JAXB annotations, add Jackson annotations, and introduce namespace handling for ESPI resources. [1] [2] [3] [4] [5] [6] [7]

Database Entity Mapping

  • Enhanced entity classes (PhoneNumberEntity, StatementRefEntity, AggregatedNodeRefEntity, BatchListEntity, IntervalReadingEntity, LineItemEntity, ReadingQualityEntity) to use Hibernate’s @JdbcTypeCode(SqlTypes.CHAR) for UUID fields, ensuring consistent storage as char(36) and improving cross-database compatibility. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]

Dependency Management

  • Added Jackson XML binding dependencies to openespi-common/pom.xml to support new serialization features alongside Jakarta XML Bind.

CI/CD Pipeline Cleanup

  • Removed MySQL and PostgreSQL service containers from the GitHub Actions CI workflow, reflecting a move to TestContainers for integration testing and reducing unnecessary resource usage. Also removed explicit Spring profile environment variables from test steps. [1] [2] [3]

These updates collectively improve code maintainability, serialization robustness, and CI efficiency.

@springframeworkguru springframeworkguru changed the title Feat - issue 23, issue #58, issue #57 feat - issue 23, issue #58, issue #57 Jan 2, 2026
@dfcoffin dfcoffin changed the title feat - issue 23, issue #58, issue #57 feat: issue 23, issue #58, issue #57 Jan 2, 2026
@dfcoffin dfcoffin merged commit 20be3d7 into GreenButtonAlliance:main Jan 2, 2026
4 of 5 checks passed
dfcoffin added a commit that referenced this pull request Jan 4, 2026
…approach

  chosen in PR #59: using Jackson 3 as the XML serialization engine while
  retaining JAXB annotations on DTOs.

  Changes:
  - MULTI_PHASE_SCHEMA_COMPLIANCE_PLAN.md: Updated technology stack, DTO
    marshalling approach, and test requirements to document Jackson 3 with
    JAXB annotations (via jackson-module-jakarta-xmlbind-annotations)
  - DTO_APPROACH_COMPARISON.md: Added 'DECISION MADE' status, comprehensive
    rationale section, and implementation details from PR #59
  - PR50_MULTI_PHASE_IMPACT.md: Added resolution section documenting the
    final decision and updated documentation references

  The hybrid approach combines:
  - Jackson 3 XmlMapper (tools.jackson.dataformat:jackson-dataformat-xml:3.0.3)
  - JAXB annotations (jakarta.xml.bind.annotation.*)
  - Bridge module (jackson-module-jakarta-xmlbind-annotations:3.0.3)

  This provides Jackson 3's modern performance with JAXB's proven XML schema
  compliance, requiring zero annotation rewrites.

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

  Co-Authored-By: Claude Sonnet 4.5 <[email protected]>"
dfcoffin added a commit that referenced this pull request Jan 4, 2026
…approach (#60)

chosen in PR #59: using Jackson 3 as the XML serialization engine while
  retaining JAXB annotations on DTOs.

  Changes:
  - MULTI_PHASE_SCHEMA_COMPLIANCE_PLAN.md: Updated technology stack, DTO
    marshalling approach, and test requirements to document Jackson 3 with
    JAXB annotations (via jackson-module-jakarta-xmlbind-annotations)
  - DTO_APPROACH_COMPARISON.md: Added 'DECISION MADE' status, comprehensive
    rationale section, and implementation details from PR #59
  - PR50_MULTI_PHASE_IMPACT.md: Added resolution section documenting the
    final decision and updated documentation references

  The hybrid approach combines:
  - Jackson 3 XmlMapper (tools.jackson.dataformat:jackson-dataformat-xml:3.0.3)
  - JAXB annotations (jakarta.xml.bind.annotation.*)
  - Bridge module (jackson-module-jakarta-xmlbind-annotations:3.0.3)

  This provides Jackson 3's modern performance with JAXB's proven XML schema
  compliance, requiring zero annotation rewrites.

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

  Co-Authored-By: Claude Sonnet 4.5 <[email protected]>"
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.

2 participants