Skip to content

Conversation

@lfbesada
Copy link
Member

No description provided.

…erting the cases of category and vocabulary with and without scope, and also a missing reference
…s asserting class reference and collection item types, with and without scope, as well as the missing reference
… by using the fragment entry link user to create the usage
…rting items, with and without scope, with and without template, as well as the missing reference
…values asserting all the navigation menu types, with and without scope, as well as the missing reference
…ass name in the item external reference because of redundancy
lfbesada and others added 14 commits November 12, 2025 11:54
…use of never-configured fragments when expecting a configuration JSONObject
… the setter methods, and by removing the invocation to the setType method too, as the type could be given by the class that is being instanciating
…g with the SitePage. The Batch Engine does not support the nested fields annotated with NestedFields yet, so we could use the factory here to call the same code in the end
…nt experiences) if the import is being executed using Batch
@gemini-code-assist
Copy link

Summary of Changes

Hello @lfbesada, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces substantial improvements to the headless site administration features, focusing on greater flexibility in page element and fragment configurations. It includes new utility classes and extensive modifications to DTO converters to accommodate a broader range of content types and layout options. Additionally, it incorporates several fixes and adjustments to internal processes such as asset list usage tracking, layout structure updates, and object entry validation, aiming to enhance the robustness and functionality of the platform's headless capabilities.

Highlights

  • Headless Site Administration Enhancements: Expanded headless site administration capabilities by introducing new DTO converters and utility classes to support a wider array of content types and layout configurations within headless pages.
  • Fragment Configuration Field Types: Significantly extended the types of fragment configuration fields supported, including categories, collections, color palettes, color pickers, general items, navigation menus, URLs, and videos.
  • Layout Structure Management: Improved the internal logic for managing layout structures, specifically addressing how items are moved and re-parented within a layout to ensure consistency.
  • Asset List Entry Usage Tracking: Enhanced asset list entry usage tracking by passing the user ID to the service, allowing for more granular auditing of asset interactions.
  • Service Context Handling: Refined the handling of ServiceContext in layout-related listeners to ensure consistent behavior, particularly during import/staging processes and when lazy referencing is enabled.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant expansion of Liferay's headless page and fragment capabilities, focusing on new configuration field types and improving import/export robustness. Key changes include adding support for numerous new fragment field types (like category, collection, color, item, navigation, URL, and video), which involved substantial updates to DTO converters and importer utilities. The code has been refactored to be cleaner and more modern, for instance by removing anonymous inner classes in DTO converters. The changes also improve API robustness by returning empty collections instead of null and gracefully handling missing references. Additionally, the PR contains important bug fixes and is well-supported by extensive new integration tests. Overall, this is a high-quality contribution that greatly enhances the platform's features. I have one suggestion for code simplification.

@lfbesada lfbesada closed this Nov 14, 2025
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