Skip to content

Removed hypersistence-utils#11781

Open
mackdk wants to merge 3 commits intouyuni-project:masterfrom
mackdk:use-hibernate7-json-mapping
Open

Removed hypersistence-utils#11781
mackdk wants to merge 3 commits intouyuni-project:masterfrom
mackdk:use-hibernate7-json-mapping

Conversation

@mackdk
Copy link
Copy Markdown
Contributor

@mackdk mackdk commented Apr 15, 2026

What does this PR change?

Hibernate 7 supports JSON out of the box and thus the additional dependency has been removed in favour of the Hibernate JSON implementation.

Codespace

Check if you already have a running container clicking on Running CodeSpace

Create CodeSpace About billing for Github Codespaces CodeSpace Billing Summary CodeSpace Limit

GUI diff

No difference.

  • DONE

Documentation

  • No documentation needed: only internal and user invisible changes

  • DONE

Test coverage

ℹ️ If a major new functionality is added, it is strongly recommended that tests for the new functionality are added to the Cucumber test suite

  • No tests: already covered

  • DONE

Changelogs

Make sure the changelogs entries you are adding are compliant with https://github.com/uyuni-project/uyuni/wiki/Contributing#changelogs and https://github.com/uyuni-project/uyuni/wiki/Contributing#uyuni-projectuyuni-repository

If you don't need a changelog check, please mark this checkbox:

  • No changelog needed

If you uncheck the checkbox after the PR is created, you will need to re-run changelog_test (see below)

Re-run a test

If you need to re-run a test, please mark the related checkbox, it will be unchecked automatically once it has re-run:

  • Re-run test "changelog_test"
  • Re-run test "backend_unittests_pgsql"
  • Re-run test "java_pgsql_tests"
  • Re-run test "schema_migration_test_pgsql"
  • Re-run test "susemanager_unittests"
  • Re-run test "frontend_checks"
  • Re-run test "spacecmd_unittests"

Before you merge

Check How to branch and merge properly!

@github-actions
Copy link
Copy Markdown
Contributor

👋 Hello! Thanks for contributing to our project.
Acceptance tests will take some time (approx. 1h), please be patient ☕

You can see the progress at the end of this page and at https://github.com/uyuni-project/uyuni/pull/11781/checks
Once tests finish, if they fail, you can check 👀 the cucumber report. See the link at the output of the action.
You can also check the artifacts section, which contains the logs at https://github.com/uyuni-project/uyuni/pull/11781/checks.

If you are unsure the failing tests are related to your code, you can check the "reference jobs". These are jobs that run on a scheduled time with code from master. If they fail for the same reason as your build, it means the tests or the infrastructure are broken. If they do not fail, but yours do, it means it is related to your code.

Reference tests:

KNOWN ISSUES

Sometimes the build can fail when pulling new jar files from download.opensuse.org . This is a known limitation. Given this happens rarely, when it does, all you need to do is rerun the test. Sorry for the inconvenience.

For more tips on troubleshooting, see the troubleshooting guide.

Happy hacking!
⚠️ You should not merge if acceptance tests fail to pass. ⚠️

@mackdk mackdk force-pushed the use-hibernate7-json-mapping branch from 0402d4e to ee3b7c6 Compare April 15, 2026 21:00
@mackdk mackdk changed the title Removed hypersistence-utils and jackson Removed hypersistence-utils Apr 15, 2026
@mackdk mackdk requested a review from CDellaGiusta April 16, 2026 09:21
@mackdk mackdk force-pushed the use-hibernate7-json-mapping branch 2 times, most recently from 8c15b41 to bddd29b Compare April 17, 2026 16:24
@mackdk mackdk force-pushed the use-hibernate7-json-mapping branch from bddd29b to 40b5f3e Compare April 17, 2026 16:33
CDellaGiusta
CDellaGiusta previously approved these changes Apr 20, 2026
Copy link
Copy Markdown
Contributor

@CDellaGiusta CDellaGiusta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

mackdk added 2 commits April 20, 2026 16:09
Hibernate 7 supports JSON out of the box and thus the additional
dependency has been removed in favour of the Hibernate
JSON implementation.
@mackdk mackdk marked this pull request as ready for review April 21, 2026 13:32
Copilot AI review requested due to automatic review settings April 21, 2026 13:32
@mackdk mackdk requested a review from a team as a code owner April 21, 2026 13:32
@mackdk mackdk requested review from parlt91 and removed request for a team April 21, 2026 13:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the hypersistence-utils dependency and switches JSON mapping to Hibernate 7’s built-in JSON support.

Changes:

  • Dropped hypersistence-utils-hibernate-71 from Maven/Ivy/OBS config and RPM spec dependencies.
  • Migrated JSON-mapped entity fields from Hypersistence JsonType to @JdbcTypeCode(SqlTypes.JSON).
  • Added/updated Hibernate tests and test DB SQL scripts to validate JSON (de)serialization behavior.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
java/spacewalk-java.spec Removes hypersistence RPM deps; adds explicit Jackson runtime/build deps.
java/pom.xml Removes hypersistence Maven dependency; ensures Jackson databind present; bumps Netty versions.
java/core/pom.xml Removes hypersistence dependency from core module.
java/buildconf/ivy/obs-maven-config.yaml Removes hypersistence artifact mapping from OBS Maven config.
java/buildconf/ivy/ivy-suse.xml Removes hypersistence dependency; bumps Netty revisions.
java/buildconf/build-props.xml Removes hypersistence from hibernatedeps property.
java/core/src/main/java/com/suse/manager/model/attestation/ServerCoCoAttestationReport.java Migrates JSON mappings to @JdbcTypeCode(SqlTypes.JSON) on getters.
java/core/src/main/java/com/redhat/rhn/domain/server/Pillar.java Migrates JSON mapping to Hibernate JSON via @JdbcTypeCode.
java/core/src/main/java/com/redhat/rhn/domain/server/CPU.java Migrates JSON mapping to Hibernate JSON via @JdbcTypeCode.
java/core/src/test/java/com/redhat/rhn/common/hibernate/HibernateBaseTest.java Refactors test DB setup/teardown to run SQL scripts from resources.
java/core/src/test/java/com/redhat/rhn/common/hibernate/HibernateTest.java Adds JSON-focused tests validating Map-based JSON read/write behavior.
java/core/src/test/java/com/redhat/rhn/domain/TestInterface.java Adds additionalData accessors to support JSON tests.
java/core/src/test/java/com/redhat/rhn/domain/TestEntity.java Adds JSONB column mapping (additional_data) using Hibernate JSON.
java/core/src/test/resources/com/redhat/rhn/common/hibernate/create_test_db.sql Creates test schema including JSONB column + seed JSON row.
java/core/src/test/resources/com/redhat/rhn/common/hibernate/drop_test_db.sql Drops test schema objects created for Hibernate tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 93 to 96
* This field stores CPU architecture-specific information. Although the
* corresponding database field is of type
* JSONB, it is mapped here as a String due to limitations in XML mapping for
* JSON types.
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Javadoc for archSpecs says the JSONB field is mapped as a String, but the field is actually a Map<String, Object>. Please update the comment to match the current mapping (or remove the outdated “mapped as a String” note) to avoid confusion for future maintainers.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants