HIVE-29713 : maintain properties package, update JEXL dependency to JEXL 3.7.0#6592
HIVE-29713 : maintain properties package, update JEXL dependency to JEXL 3.7.0#6592henrib wants to merge 4 commits into
Conversation
… update property management documentation; - Updates JEXL dependency to 3.7.0
There was a problem hiding this comment.
Pull request overview
This PR performs maintenance on the standalone metastore “properties” package and updates the Apache Commons JEXL dependency to 3.7.0, alongside small code modernizations and documentation additions to make the properties subsystem easier to understand and maintain.
Changes:
- Bump Apache Commons JEXL dependency to 3.7.0 and adjust JEXL engine initialization accordingly.
- Modernize/cleanup properties package code (e.g., Java 21 language features,
@Serialannotation). - Add new top-level documentation for the properties package and refresh/adjust existing Javadocs.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| standalone-metastore/pom.xml | Updates the JEXL version property to 3.7.0. |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/SerializationProxy.java | Adds @Serial annotation for serialVersionUID. |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/PropertyType.java | Refactors casts using pattern matching for instanceof. |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/PropertyStore.java | Javadoc refresh (notably around bulk save semantics). |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/PropertyMap.java | Minor Javadoc correction in the deserialization constructor comment. |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/PropertyManager.java | Updates JEXL feature initialization for compatibility with newer JEXL. |
| standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/HMSPropertyManager.java | Updates documentation and maintenance-operation enums; modernizes switch usage. |
| PROPERTIES_PACKAGE.md | Adds new package-level documentation and usage examples. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
| * A potential extension would be to add maintenance operation properties at the cluster and database levels to the schema | ||
| * so they could act as default values for table properties used by maintenance operations. |
There was a problem hiding this comment.
| * A potential extension would be to add maintenance operation properties at the cluster and database levels to the schema | |
| * so they could act as default values for table properties used by maintenance operations. | |
| * A potential extension would be to add maintenance operation properties at the cluster and database levels to the | |
| * schema so they could act as default values for table properties used by maintenance operations. |
Just for the 120-characters rule
| * <li>db.table.name : when it refers to a table property named 'name' for the table 'table' in the database 'db'</li> | ||
| * </ul> | ||
| * <p> | ||
| * This is meant as the base of a property manager that could be used to manage properties in the HiveMetaStore |
There was a problem hiding this comment.
I am just curious about the future vision stated here
| REWRITE_MANIFEST, | ||
| DELETE_ORPHAN_FILES, | ||
| REWRITE_POSITION_DELETE, | ||
| COMPUTE_TABLE_STATS |
There was a problem hiding this comment.
Could you explain the enum changes? I understand we can change them as the original values are not used yet. However, I am not confident about why the new values are better than the old ones. One option is to separate the PR and involve Dmitriy or someone more familiar with maintenance tasks there. I can quickly give you +1 for the JEXL upgrade, but I may need to learn something to approve this list.



What changes were proposed in this pull request?
The properties package needed a bit of refresh and some documentation.
JEXL version needed an update.
Why are the changes needed?
Proactive maintenance especially wrt JEXL / security.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Unit tests