This is an automated email from the ASF dual-hosted git repository.
jerryshao pushed a commit to branch branch-1.3
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.3 by this push:
new a70bf90d02 [Cherry-pick to branch-1.3] [#12892] fix(audit): Suppress
internal operation audit events (#12893) (#12909)
a70bf90d02 is described below
commit a70bf90d02b383bd51567a90541d2751e2c77fb3
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Sep 4 18:48:10 2026 +0800
[Cherry-pick to branch-1.3] [#12892] fix(audit): Suppress internal
operation audit events (#12893) (#12909)
**Cherry-pick Information:**
- Original commit: b2067cd034035a3302f645c2147f448f53d72418
- Target branch: `branch-1.3`
- Status: ✅ **Conflicts resolved**
The cherry-pick conflicts have been manually resolved and validated.
---------
Co-authored-by: roryqi <[email protected]>
Co-authored-by: roryqi <[email protected]>
---
.../java/org/apache/gravitino/GravitinoEnv.java | 88 ++++++++++++++-
.../authorization/AuthorizationUtils.java | 6 +-
.../catalog/TableOperationDispatcher.java | 6 +-
.../gravitino/catalog/ViewOperationDispatcher.java | 6 +-
.../hook/AccessControlHookDispatcher.java | 2 +-
.../gravitino/hook/CatalogHookDispatcher.java | 2 +-
.../gravitino/hook/FilesetHookDispatcher.java | 2 +-
.../gravitino/hook/FunctionHookDispatcher.java | 2 +-
.../apache/gravitino/hook/JobHookDispatcher.java | 4 +-
.../gravitino/hook/MetalakeHookDispatcher.java | 4 +-
.../apache/gravitino/hook/ModelHookDispatcher.java | 4 +-
.../gravitino/hook/PolicyHookDispatcher.java | 2 +-
.../gravitino/hook/SchemaHookDispatcher.java | 2 +-
.../apache/gravitino/hook/TagHookDispatcher.java | 2 +-
.../apache/gravitino/hook/TopicHookDispatcher.java | 2 +-
.../apache/gravitino/utils/MetadataObjectUtil.java | 32 +++---
.../authorization/TestAuthorizationUtils.java | 16 ++-
.../catalog/TestPartitionOperationDispatcher.java | 2 +-
.../hook/TestAccessControlHookDispatcher.java | 7 +-
.../gravitino/hook/TestCatalogHookDispatcher.java | 14 ++-
.../gravitino/hook/TestFilesetHookDispatcher.java | 14 ++-
.../gravitino/hook/TestFunctionHookDispatcher.java | 28 +++--
.../gravitino/hook/TestJobHookDispatcher.java | 7 +-
.../gravitino/hook/TestMetalakeHookDispatcher.java | 19 +++-
.../gravitino/hook/TestModelHookDispatcher.java | 7 +-
.../gravitino/hook/TestPolicyHookDispatcher.java | 7 +-
.../gravitino/hook/TestSchemaHookDispatcher.java | 7 +-
.../gravitino/hook/TestTagHookDispatcher.java | 7 +-
.../gravitino/hook/TestTopicHookDispatcher.java | 14 ++-
.../apache/gravitino/policy/TestPolicyManager.java | 16 ++-
.../org/apache/gravitino/tag/TestTagManager.java | 16 ++-
.../gravitino/utils/TestMetadataObjectUtil.java | 125 +++++++++++++++++++++
.../server/authorization/MetadataAuthzHelper.java | 4 +-
.../authorization/jcasbin/JcasbinAuthorizer.java | 2 +-
.../authorization/TestMetadataAuthzHelper.java | 33 +++++-
.../jcasbin/TestJcasbinAuthorizer.java | 12 ++
.../gravitino/server/web/rest/GroupOperations.java | 2 +-
.../gravitino/server/web/rest/UserOperations.java | 2 +-
.../server/web/rest/TestGroupOperations.java | 3 +-
.../server/web/rest/TestOwnerOperations.java | 7 +-
.../server/web/rest/TestPermissionOperations.java | 5 +-
.../server/web/rest/TestRoleOperations.java | 19 +++-
.../server/web/rest/TestStatisticOperations.java | 3 +-
.../server/web/rest/TestUserOperations.java | 3 +-
44 files changed, 441 insertions(+), 126 deletions(-)
diff --git a/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
b/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
index 1f1d569b47..4969be4a37 100644
--- a/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
+++ b/core/src/main/java/org/apache/gravitino/GravitinoEnv.java
@@ -145,19 +145,24 @@ public class GravitinoEnv {
private TopicDispatcher internalTopicDispatcher;
private ModelDispatcher modelDispatcher;
+ private ModelDispatcher internalModelDispatcher;
private FunctionDispatcher functionDispatcher;
+ private FunctionDispatcher internalFunctionDispatcher;
private ViewDispatcher viewDispatcher;
private ViewDispatcher internalViewDispatcher;
private MetalakeDispatcher metalakeDispatcher;
+ private MetalakeDispatcher internalMetalakeDispatcher;
private CredentialOperationDispatcher credentialOperationDispatcher;
private TagDispatcher tagDispatcher;
+ private TagDispatcher internalTagDispatcher;
private PolicyDispatcher policyDispatcher;
+ private PolicyDispatcher internalPolicyDispatcher;
private AccessControlDispatcher accessControlDispatcher;
private AccessControlDispatcher internalAccessControlDispatcher;
@@ -175,6 +180,7 @@ public class GravitinoEnv {
private AuditLogManager auditLogManager;
private JobOperationDispatcher jobOperationDispatcher;
+ private JobOperationDispatcher internalJobOperationDispatcher;
private EventBus eventBus;
private OwnerDispatcher ownerDispatcher;
@@ -330,6 +336,17 @@ public class GravitinoEnv {
return modelDispatcher;
}
+ /**
+ * Get the internal ModelDispatcher associated with the Gravitino
environment.
+ *
+ * <p>The internal dispatcher preserves normalization but skips hooks and
event emission.
+ *
+ * @return The internal ModelDispatcher instance.
+ */
+ public ModelDispatcher internalModelDispatcher() {
+ return internalModelDispatcher;
+ }
+
/**
* Get the FunctionDispatcher associated with the Gravitino environment.
*
@@ -339,6 +356,17 @@ public class GravitinoEnv {
return functionDispatcher;
}
+ /**
+ * Get the internal FunctionDispatcher associated with the Gravitino
environment.
+ *
+ * <p>The internal dispatcher preserves normalization but skips hooks and
event emission.
+ *
+ * <p>The internal FunctionDispatcher instance.
+ */
+ public FunctionDispatcher internalFunctionDispatcher() {
+ return internalFunctionDispatcher;
+ }
+
/**
* Get the ViewDispatcher associated with the Gravitino environment.
*
@@ -419,6 +447,17 @@ public class GravitinoEnv {
return metalakeDispatcher;
}
+ /**
+ * Get the internal MetalakeDispatcher associated with the Gravitino
environment.
+ *
+ * <p>The internal dispatcher preserves normalization but skips hooks and
event emission.
+ *
+ * @return The internal MetalakeDispatcher instance.
+ */
+ public MetalakeDispatcher internalMetalakeDispatcher() {
+ return internalMetalakeDispatcher;
+ }
+
/**
* Get the {@link CredentialOperationDispatcher} associated with the
Gravitino environment.
*
@@ -500,6 +539,17 @@ public class GravitinoEnv {
return tagDispatcher;
}
+ /**
+ * Get the internal TagDispatcher associated with the Gravitino environment.
+ *
+ * <p>The internal dispatcher skips hooks and event emission.
+ *
+ * @return The internal TagDispatcher instance.
+ */
+ public TagDispatcher internalTagDispatcher() {
+ return internalTagDispatcher;
+ }
+
/**
* Get the PolicyDispatcher associated with the Gravitino environment.
*
@@ -509,6 +559,17 @@ public class GravitinoEnv {
return policyDispatcher;
}
+ /**
+ * Get the internal PolicyDispatcher associated with the Gravitino
environment.
+ *
+ * <p>The internal dispatcher skips hooks and event emission.
+ *
+ * @return The internal PolicyDispatcher instance.
+ */
+ public PolicyDispatcher internalPolicyDispatcher() {
+ return internalPolicyDispatcher;
+ }
+
/**
* Get the Owner dispatcher associated with the Gravitino environment.
*
@@ -576,6 +637,19 @@ public class GravitinoEnv {
return jobOperationDispatcher;
}
+ /**
+ * Get the internal JobOperationDispatcher associated with the Gravitino
environment.
+ *
+ * <p>The internal dispatcher preserves validation but skips hooks and event
emission.
+ *
+ * @return The internal JobOperationDispatcher instance.
+ */
+ public JobOperationDispatcher internalJobOperationDispatcher() {
+ Preconditions.checkArgument(
+ internalJobOperationDispatcher != null, "GravitinoEnv is not
initialized.");
+ return internalJobOperationDispatcher;
+ }
+
public StatisticDispatcher statisticDispatcher() {
return statisticDispatcher;
}
@@ -678,6 +752,7 @@ public class GravitinoEnv {
this.metalakeManager = new MetalakeManager(entityStore, idGenerator);
MetalakeNormalizeDispatcher metalakeNormalizeDispatcher =
new MetalakeNormalizeDispatcher(metalakeManager);
+ this.internalMetalakeDispatcher = metalakeNormalizeDispatcher;
MetalakeEventDispatcher metalakeEventDispatcher =
new MetalakeEventDispatcher(eventBus, metalakeNormalizeDispatcher);
this.metalakeDispatcher = new
MetalakeHookDispatcher(metalakeEventDispatcher);
@@ -722,7 +797,8 @@ public class GravitinoEnv {
TableEventDispatcher tableEventDispatcher =
new TableEventDispatcher(eventBus, tableNormalizeDispatcher);
this.tableDispatcher =
- new TableHookDispatcher(tableEventDispatcher, this::ownerDispatcher,
catalogManager);
+ new TableHookDispatcher(
+ tableEventDispatcher, this::internalOwnerDispatcher,
catalogManager);
// TODO: We can install hooks when we need, we only supports ownership
post hook,
// partition doesn't have ownership, so we don't need it now.
@@ -754,6 +830,7 @@ public class GravitinoEnv {
new ModelOperationDispatcher(catalogManager, entityStore, idGenerator);
ModelNormalizeDispatcher modelNormalizeDispatcher =
new ModelNormalizeDispatcher(modelOperationDispatcher, catalogManager);
+ this.internalModelDispatcher = modelNormalizeDispatcher;
ModelEventDispatcher modelEventDispatcher =
new ModelEventDispatcher(eventBus, modelNormalizeDispatcher);
this.modelDispatcher = new ModelHookDispatcher(modelEventDispatcher);
@@ -766,6 +843,7 @@ public class GravitinoEnv {
catalogManager, schemaOperationDispatcher, entityStore,
idGenerator);
FunctionNormalizeDispatcher functionNormalizeDispatcher =
new FunctionNormalizeDispatcher(functionOperationDispatcher,
catalogManager);
+ this.internalFunctionDispatcher = functionNormalizeDispatcher;
FunctionEventDispatcher functionEventDispatcher =
new FunctionEventDispatcher(eventBus, functionNormalizeDispatcher);
this.functionDispatcher = new
FunctionHookDispatcher(functionEventDispatcher);
@@ -785,7 +863,7 @@ public class GravitinoEnv {
ViewEventDispatcher viewEventDispatcher =
new ViewEventDispatcher(eventBus, viewNormalizeDispatcher);
this.viewDispatcher =
- new ViewHookDispatcher(viewEventDispatcher, this::ownerDispatcher,
catalogManager);
+ new ViewHookDispatcher(viewEventDispatcher,
this::internalOwnerDispatcher, catalogManager);
this.statisticDispatcher =
new StatisticEventDispatcher(
@@ -817,16 +895,20 @@ public class GravitinoEnv {
// Create and initialize Tag related modules
TagManager tagManager = new TagManager(idGenerator, entityStore);
+ this.internalTagDispatcher = tagManager;
TagEventDispatcher tagEventDispatcher = new TagEventDispatcher(eventBus,
tagManager);
this.tagDispatcher = new TagHookDispatcher(tagEventDispatcher);
+ PolicyManager policyManager = new PolicyManager(idGenerator, entityStore);
+ this.internalPolicyDispatcher = policyManager;
PolicyEventDispatcher policyEventDispatcher =
- new PolicyEventDispatcher(eventBus, new PolicyManager(idGenerator,
entityStore));
+ new PolicyEventDispatcher(eventBus, policyManager);
this.policyDispatcher = new PolicyHookDispatcher(policyEventDispatcher);
JobManager jobManager = new JobManager(config, entityStore, idGenerator);
JobTemplateValidationDispatcher validationDispatcher =
new JobTemplateValidationDispatcher(jobManager);
+ this.internalJobOperationDispatcher = validationDispatcher;
JobEventDispatcher jobEventDispatcher = new JobEventDispatcher(eventBus,
validationDispatcher);
this.jobOperationDispatcher = new JobHookDispatcher(jobEventDispatcher);
diff --git
a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
index a27fdac557..280f4e7ffe 100644
---
a/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
+++
b/core/src/main/java/org/apache/gravitino/authorization/AuthorizationUtils.java
@@ -327,7 +327,7 @@ public class AuthorizationUtils {
NameIdentifier ident, Entity.EntityType type, List<String> locations) {
// If we enable authorization, we should remove the privileges about the
entity in the
// authorization plugin.
- if (GravitinoEnv.getInstance().accessControlDispatcher() != null) {
+ if (GravitinoEnv.getInstance().internalAccessControlDispatcher() != null) {
MetadataObject metadataObject =
NameIdentifierUtil.toMetadataObject(ident, type);
String metalake =
type == Entity.EntityType.METALAKE ? ident.name() :
ident.namespace().level(0);
@@ -365,7 +365,7 @@ public class AuthorizationUtils {
NameIdentifier ident, Entity.EntityType type, String newName,
List<String> locations) {
// If we enable authorization, we should rename the privileges about the
entity in the
// authorization plugin.
- if (GravitinoEnv.getInstance().accessControlDispatcher() != null) {
+ if (GravitinoEnv.getInstance().internalAccessControlDispatcher() != null) {
notifyEntityNameIdMappingChange(ident, type);
MetadataObject oldMetadataObject =
NameIdentifierUtil.toMetadataObject(ident, type);
MetadataObject newMetadataObject =
@@ -525,7 +525,7 @@ public class AuthorizationUtils {
List<String> locations = new ArrayList<>();
// If we don't enable authorization, the location should return empty
collection.
- if (GravitinoEnv.getInstance().accessControlDispatcher() == null) {
+ if (GravitinoEnv.getInstance().internalAccessControlDispatcher() == null) {
return locations;
}
diff --git
a/core/src/main/java/org/apache/gravitino/catalog/TableOperationDispatcher.java
b/core/src/main/java/org/apache/gravitino/catalog/TableOperationDispatcher.java
index c661e18f9a..beb92b83b1 100644
---
a/core/src/main/java/org/apache/gravitino/catalog/TableOperationDispatcher.java
+++
b/core/src/main/java/org/apache/gravitino/catalog/TableOperationDispatcher.java
@@ -85,7 +85,11 @@ public class TableOperationDispatcher extends
OperationDispatcher implements Tab
*/
public TableOperationDispatcher(
CatalogManager catalogManager, EntityStore store, IdGenerator
idGenerator) {
- this(catalogManager, store, idGenerator, () ->
GravitinoEnv.getInstance().schemaDispatcher());
+ this(
+ catalogManager,
+ store,
+ idGenerator,
+ () -> GravitinoEnv.getInstance().internalSchemaDispatcher());
}
/**
diff --git
a/core/src/main/java/org/apache/gravitino/catalog/ViewOperationDispatcher.java
b/core/src/main/java/org/apache/gravitino/catalog/ViewOperationDispatcher.java
index 2bb02e9917..844a5e5f34 100644
---
a/core/src/main/java/org/apache/gravitino/catalog/ViewOperationDispatcher.java
+++
b/core/src/main/java/org/apache/gravitino/catalog/ViewOperationDispatcher.java
@@ -72,7 +72,11 @@ public class ViewOperationDispatcher extends
OperationDispatcher implements View
*/
public ViewOperationDispatcher(
CatalogManager catalogManager, EntityStore store, IdGenerator
idGenerator) {
- this(catalogManager, store, idGenerator, () ->
GravitinoEnv.getInstance().schemaDispatcher());
+ this(
+ catalogManager,
+ store,
+ idGenerator,
+ () -> GravitinoEnv.getInstance().internalSchemaDispatcher());
}
/**
diff --git
a/core/src/main/java/org/apache/gravitino/hook/AccessControlHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/AccessControlHookDispatcher.java
index a4b2e28007..a22f81d721 100644
---
a/core/src/main/java/org/apache/gravitino/hook/AccessControlHookDispatcher.java
+++
b/core/src/main/java/org/apache/gravitino/hook/AccessControlHookDispatcher.java
@@ -164,7 +164,7 @@ public class AccessControlHookDispatcher implements
AccessControlDispatcher {
Role createdRole = dispatcher.createRole(metalake, role, properties,
securableObjects);
// Set the creator as the owner of role.
- OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerDispatcher != null) {
ownerDispatcher.setOwner(
metalake,
diff --git
a/core/src/main/java/org/apache/gravitino/hook/CatalogHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/CatalogHookDispatcher.java
index 5852b18cb1..14a508ddd8 100644
--- a/core/src/main/java/org/apache/gravitino/hook/CatalogHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/CatalogHookDispatcher.java
@@ -83,7 +83,7 @@ public class CatalogHookDispatcher implements
CatalogDispatcher {
try {
// Set the creator as the owner of the catalog.
- OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerDispatcher != null) {
ownerDispatcher.setOwner(
ident.namespace().level(0),
diff --git
a/core/src/main/java/org/apache/gravitino/hook/FilesetHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/FilesetHookDispatcher.java
index 22103b6253..66f3b75642 100644
--- a/core/src/main/java/org/apache/gravitino/hook/FilesetHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/FilesetHookDispatcher.java
@@ -82,7 +82,7 @@ public class FilesetHookDispatcher implements
FilesetDispatcher {
ident, comment, type, storageLocations, properties);
// Set the creator as the owner of the fileset.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
// The inner NormalizeDispatcher case-folds the fileset name (and its
schema namespace)
// based on catalog capabilities, so the entity is stored under the
normalized identifier.
diff --git
a/core/src/main/java/org/apache/gravitino/hook/FunctionHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/FunctionHookDispatcher.java
index dc1758102b..20cfe2ce9c 100644
--- a/core/src/main/java/org/apache/gravitino/hook/FunctionHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/FunctionHookDispatcher.java
@@ -82,7 +82,7 @@ public class FunctionHookDispatcher implements
FunctionDispatcher {
dispatcher.registerFunction(ident, comment, functionType,
deterministic, definitions);
// Set the creator as the owner of the function.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
// The inner NormalizeDispatcher case-folds the function name (and its
schema namespace)
// based on catalog capabilities, so the entity is stored under the
normalized identifier.
diff --git
a/core/src/main/java/org/apache/gravitino/hook/JobHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/JobHookDispatcher.java
index 99135ec5dc..32badedc29 100644
--- a/core/src/main/java/org/apache/gravitino/hook/JobHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/JobHookDispatcher.java
@@ -55,7 +55,7 @@ public class JobHookDispatcher implements
JobOperationDispatcher {
jobOperationDispatcher.registerJobTemplate(metalake, jobTemplateEntity);
// Set the creator as the owner of the job template.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
ownerManager.setOwner(
metalake,
@@ -101,7 +101,7 @@ public class JobHookDispatcher implements
JobOperationDispatcher {
JobEntity jobEntity = jobOperationDispatcher.runJob(metalake,
jobTemplateName, jobConf);
// Set the creator as the owner of the job.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
ownerManager.setOwner(
metalake,
diff --git
a/core/src/main/java/org/apache/gravitino/hook/MetalakeHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/MetalakeHookDispatcher.java
index 310368d67f..3caac5e0b2 100644
--- a/core/src/main/java/org/apache/gravitino/hook/MetalakeHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/MetalakeHookDispatcher.java
@@ -66,13 +66,13 @@ public class MetalakeHookDispatcher implements
MetalakeDispatcher {
// Add the creator to the metalake.
AccessControlDispatcher accessControlDispatcher =
- GravitinoEnv.getInstance().accessControlDispatcher();
+ GravitinoEnv.getInstance().internalAccessControlDispatcher();
if (accessControlDispatcher != null) {
accessControlDispatcher.addUser(ident.name(),
PrincipalUtils.getCurrentUserName());
}
// Set the creator as owner of the metalake.
- OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerDispatcher != null) {
ownerDispatcher.setOwner(
ident.name(),
diff --git
a/core/src/main/java/org/apache/gravitino/hook/ModelHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/ModelHookDispatcher.java
index 85c8af2ce3..2143030b7a 100644
--- a/core/src/main/java/org/apache/gravitino/hook/ModelHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/ModelHookDispatcher.java
@@ -71,7 +71,7 @@ public class ModelHookDispatcher implements ModelDispatcher {
Model model = dispatcher.registerModel(ident, comment, properties);
// Set the creator as owner of the model.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
// The inner NormalizeDispatcher case-folds the model name based on
catalog capabilities,
// so the entity is stored under the normalized identifier. Apply the
same normalization
@@ -165,7 +165,7 @@ public class ModelHookDispatcher implements ModelDispatcher
{
Model model = dispatcher.registerModel(ident, uris, aliases, comment,
properties);
// Set the creator as owner of the model.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
// The inner NormalizeDispatcher case-folds the model name based on
catalog capabilities,
// so the entity is stored under the normalized identifier. Apply the
same normalization
diff --git
a/core/src/main/java/org/apache/gravitino/hook/PolicyHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/PolicyHookDispatcher.java
index f0f996176a..57164c3af0 100644
--- a/core/src/main/java/org/apache/gravitino/hook/PolicyHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/PolicyHookDispatcher.java
@@ -67,7 +67,7 @@ public class PolicyHookDispatcher implements PolicyDispatcher
{
PolicyEntity policy = dispatcher.createPolicy(metalake, name, type,
comment, enabled, content);
// Set the creator as the owner of the policy.
- OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerDispatcher != null) {
ownerDispatcher.setOwner(
metalake,
diff --git
a/core/src/main/java/org/apache/gravitino/hook/SchemaHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/SchemaHookDispatcher.java
index dae07ffbc6..3b3b54a643 100644
--- a/core/src/main/java/org/apache/gravitino/hook/SchemaHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/SchemaHookDispatcher.java
@@ -97,7 +97,7 @@ public class SchemaHookDispatcher implements SchemaDispatcher
{
// mirrors IcebergNamespaceHookDispatcher.createNamespace so
ownership-based
// authorization -- which treats ownership of an ancestor schema as
ownership of the
// whole subtree -- behaves the same on the Gravitino and Iceberg
REST surfaces.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
List<MetadataObject> ownedObjects = new
ArrayList<>(newAncestors.size() + 1);
for (NameIdentifier ancestor : newAncestors) {
diff --git
a/core/src/main/java/org/apache/gravitino/hook/TagHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/TagHookDispatcher.java
index 75bfbd1fb3..64acc841ca 100644
--- a/core/src/main/java/org/apache/gravitino/hook/TagHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/TagHookDispatcher.java
@@ -60,7 +60,7 @@ public class TagHookDispatcher implements TagDispatcher {
Tag tag = dispatcher.createTag(metalake, name, comment, properties);
// Set the creator as the owner of the tag.
- OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerDispatcher != null) {
ownerDispatcher.setOwner(
metalake,
diff --git
a/core/src/main/java/org/apache/gravitino/hook/TopicHookDispatcher.java
b/core/src/main/java/org/apache/gravitino/hook/TopicHookDispatcher.java
index a9ac3b2dc7..cae51e74fc 100644
--- a/core/src/main/java/org/apache/gravitino/hook/TopicHookDispatcher.java
+++ b/core/src/main/java/org/apache/gravitino/hook/TopicHookDispatcher.java
@@ -68,7 +68,7 @@ public class TopicHookDispatcher implements TopicDispatcher {
Topic topic = dispatcher.createTopic(ident, comment, dataLayout,
properties);
// Set the creator as the owner of the topic.
- OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher ownerManager =
GravitinoEnv.getInstance().internalOwnerDispatcher();
if (ownerManager != null) {
// The inner NormalizeDispatcher case-folds the topic name (and its
schema namespace)
// based on catalog capabilities, so the entity is stored under the
normalized identifier.
diff --git
a/core/src/main/java/org/apache/gravitino/utils/MetadataObjectUtil.java
b/core/src/main/java/org/apache/gravitino/utils/MetadataObjectUtil.java
index b14845b669..5d1a1dc116 100644
--- a/core/src/main/java/org/apache/gravitino/utils/MetadataObjectUtil.java
+++ b/core/src/main/java/org/apache/gravitino/utils/MetadataObjectUtil.java
@@ -231,59 +231,61 @@ public class MetadataObjectUtil {
throw new IllegalMetadataObjectException("The metalake object name
must be %s", metalake);
}
NameIdentifierUtil.checkMetalake(identifier);
- check(env.metalakeDispatcher().metalakeExists(identifier),
exceptionToThrowSupplier);
+ check(
+ env.internalMetalakeDispatcher().metalakeExists(identifier),
exceptionToThrowSupplier);
break;
case CATALOG:
NameIdentifierUtil.checkCatalog(identifier);
- check(env.catalogDispatcher().catalogExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalCatalogDispatcher().catalogExists(identifier),
exceptionToThrowSupplier);
break;
case SCHEMA:
NameIdentifierUtil.checkSchema(identifier);
- check(env.schemaDispatcher().schemaExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalSchemaDispatcher().schemaExists(identifier),
exceptionToThrowSupplier);
break;
case FILESET:
NameIdentifierUtil.checkFileset(identifier);
- check(env.filesetDispatcher().filesetExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalFilesetDispatcher().filesetExists(identifier),
exceptionToThrowSupplier);
break;
case TABLE:
NameIdentifierUtil.checkTable(identifier);
- check(env.tableDispatcher().tableExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalTableDispatcher().tableExists(identifier),
exceptionToThrowSupplier);
break;
case COLUMN:
NameIdentifierUtil.checkColumn(identifier);
NameIdentifier tableIdent =
NameIdentifier.of(identifier.namespace().levels());
- check(env.tableDispatcher().tableExists(tableIdent),
exceptionToThrowSupplier);
+ check(env.internalTableDispatcher().tableExists(tableIdent),
exceptionToThrowSupplier);
break;
case TOPIC:
NameIdentifierUtil.checkTopic(identifier);
- check(env.topicDispatcher().topicExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalTopicDispatcher().topicExists(identifier),
exceptionToThrowSupplier);
break;
case MODEL:
NameIdentifierUtil.checkModel(identifier);
- check(env.modelDispatcher().modelExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalModelDispatcher().modelExists(identifier),
exceptionToThrowSupplier);
break;
case FUNCTION:
NameIdentifierUtil.checkFunction(identifier);
- check(env.functionDispatcher().functionExists(identifier),
exceptionToThrowSupplier);
+ check(
+ env.internalFunctionDispatcher().functionExists(identifier),
exceptionToThrowSupplier);
break;
case VIEW:
NameIdentifierUtil.checkView(identifier);
- check(env.viewDispatcher().viewExists(identifier),
exceptionToThrowSupplier);
+ check(env.internalViewDispatcher().viewExists(identifier),
exceptionToThrowSupplier);
break;
case ROLE:
AuthorizationUtils.checkRole(identifier);
try {
- env.accessControlDispatcher().getRole(metalake, object.fullName());
+ env.internalAccessControlDispatcher().getRole(metalake,
object.fullName());
} catch (NoSuchRoleException nsr) {
throw exceptionToThrowSupplier.get();
}
@@ -292,7 +294,7 @@ public class MetadataObjectUtil {
case TAG:
NameIdentifierUtil.checkTag(identifier);
try {
- env.tagDispatcher().getTag(metalake, object.fullName());
+ env.internalTagDispatcher().getTag(metalake, object.fullName());
} catch (NoSuchTagException nsr) {
throw exceptionToThrowSupplier.get();
}
@@ -301,7 +303,7 @@ public class MetadataObjectUtil {
case POLICY:
NameIdentifierUtil.checkPolicy(identifier);
try {
- env.policyDispatcher().getPolicy(metalake, object.fullName());
+ env.internalPolicyDispatcher().getPolicy(metalake,
object.fullName());
} catch (NoSuchPolicyException nsr) {
throw checkNotNull(exceptionToThrowSupplier).get();
}
@@ -310,7 +312,7 @@ public class MetadataObjectUtil {
case JOB:
NameIdentifierUtil.checkJob(identifier);
try {
- env.jobOperationDispatcher().getJob(metalake, object.fullName());
+ env.internalJobOperationDispatcher().getJob(metalake,
object.fullName());
} catch (NoSuchJobException e) {
throw exceptionToThrowSupplier.get();
}
@@ -319,7 +321,7 @@ public class MetadataObjectUtil {
case JOB_TEMPLATE:
NameIdentifierUtil.checkJobTemplate(identifier);
try {
- env.jobOperationDispatcher().getJobTemplate(metalake,
object.fullName());
+ env.internalJobOperationDispatcher().getJobTemplate(metalake,
object.fullName());
} catch (NoSuchJobTemplateException e) {
throw exceptionToThrowSupplier.get();
}
diff --git
a/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
b/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
index e568d6f825..38e325f85f 100644
---
a/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
+++
b/core/src/test/java/org/apache/gravitino/authorization/TestAuthorizationUtils.java
@@ -249,7 +249,10 @@ class TestAuthorizationUtils {
FieldUtils.writeField(
GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "accessControlDispatcher",
accessControlDispatcher, true);
+ GravitinoEnv.getInstance(),
+ "internalAccessControlDispatcher",
+ accessControlDispatcher,
+ true);
List<String> locations =
AuthorizationUtils.getMetadataObjectLocation(
@@ -279,7 +282,10 @@ class TestAuthorizationUtils {
Mockito.when(catalogDispatcher.loadCatalog(Mockito.any())).thenReturn(catalog);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "accessControlDispatcher",
accessControlDispatcher, true);
+ GravitinoEnv.getInstance(),
+ "internalAccessControlDispatcher",
+ accessControlDispatcher,
+ true);
FieldUtils.writeField(
GravitinoEnv.getInstance(), "internalCatalogDispatcher",
catalogDispatcher, true);
FieldUtils.writeField(
@@ -337,7 +343,7 @@ class TestAuthorizationUtils {
GravitinoEnv envMock = Mockito.mock(GravitinoEnv.class);
Mockito.when(envMock.gravitinoAuthorizer()).thenReturn(authorizer);
-
Mockito.when(envMock.accessControlDispatcher()).thenReturn(accessControlDispatcher);
+
Mockito.when(envMock.internalAccessControlDispatcher()).thenReturn(accessControlDispatcher);
Mockito.when(envMock.catalogManager()).thenReturn(catalogManager);
try (MockedStatic<GravitinoEnv> envStatic =
Mockito.mockStatic(GravitinoEnv.class)) {
@@ -366,7 +372,7 @@ class TestAuthorizationUtils {
Mockito.when(baseCatalog.getAuthorizationPlugin()).thenReturn(authorizationPlugin);
GravitinoEnv envMock = Mockito.mock(GravitinoEnv.class);
-
Mockito.when(envMock.accessControlDispatcher()).thenReturn(accessControlDispatcher);
+
Mockito.when(envMock.internalAccessControlDispatcher()).thenReturn(accessControlDispatcher);
Mockito.when(envMock.catalogManager()).thenReturn(catalogManager);
try (MockedStatic<GravitinoEnv> envStatic =
Mockito.mockStatic(GravitinoEnv.class)) {
@@ -406,7 +412,7 @@ class TestAuthorizationUtils {
Mockito.when(baseCatalog.getAuthorizationPlugin()).thenReturn(authorizationPlugin);
GravitinoEnv envMock = Mockito.mock(GravitinoEnv.class);
-
Mockito.when(envMock.accessControlDispatcher()).thenReturn(accessControlDispatcher);
+
Mockito.when(envMock.internalAccessControlDispatcher()).thenReturn(accessControlDispatcher);
Mockito.when(envMock.catalogManager()).thenReturn(catalogManager);
try (MockedStatic<GravitinoEnv> envStatic =
Mockito.mockStatic(GravitinoEnv.class)) {
diff --git
a/core/src/test/java/org/apache/gravitino/catalog/TestPartitionOperationDispatcher.java
b/core/src/test/java/org/apache/gravitino/catalog/TestPartitionOperationDispatcher.java
index 9ddc3b1d30..d4e7198cf5 100644
---
a/core/src/test/java/org/apache/gravitino/catalog/TestPartitionOperationDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/catalog/TestPartitionOperationDispatcher.java
@@ -90,7 +90,7 @@ public class TestPartitionOperationDispatcher extends
TestOperationDispatcher {
doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "schemaDispatcher",
schemaOperationDispatcher, true);
+ GravitinoEnv.getInstance(), "internalSchemaDispatcher",
schemaOperationDispatcher, true);
NameIdentifier schemaIdent = NameIdentifierUtil.ofSchema(metalake,
catalog, SCHEMA);
schemaOperationDispatcher.createSchema(schemaIdent, "comment", null);
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestAccessControlHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestAccessControlHookDispatcher.java
index 6f5ac0d404..308ea03444 100644
---
a/core/src/test/java/org/apache/gravitino/hook/TestAccessControlHookDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/hook/TestAccessControlHookDispatcher.java
@@ -55,9 +55,10 @@ public class TestAccessControlHookDispatcher {
mockDispatcher = mock(AccessControlDispatcher.class);
mockOwnerDispatcher = mock(OwnerDispatcher.class);
mockAuthorizer = mock(GravitinoAuthorizer.class);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
savedAuthorizer = GravitinoEnv.getInstance().gravitinoAuthorizer();
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "gravitinoAuthorizer",
mockAuthorizer, true);
hookDispatcher = new AccessControlHookDispatcher(mockDispatcher);
}
@@ -65,7 +66,7 @@ public class TestAccessControlHookDispatcher {
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "gravitinoAuthorizer",
savedAuthorizer, true);
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestCatalogHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestCatalogHookDispatcher.java
index 1803646fc2..846cd1cc62 100644
---
a/core/src/test/java/org/apache/gravitino/hook/TestCatalogHookDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/hook/TestCatalogHookDispatcher.java
@@ -38,7 +38,8 @@ public class TestCatalogHookDispatcher {
@Test
public void testCreateCatalogThrowsPostHookExceptionWhenRollbackSucceeds()
throws Exception {
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
Object originalFutureGrantManager =
FieldUtils.readField(gravitinoEnv, "futureGrantManager", true);
@@ -60,7 +61,7 @@ public class TestCatalogHookDispatcher {
Mockito.anyMap()))
.thenReturn(catalog);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher", ownerDispatcher,
true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
ownerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "futureGrantManager", null, true);
try {
@@ -79,7 +80,7 @@ public class TestCatalogHookDispatcher {
Mockito.verify(dispatcher).dropCatalog(ident, true);
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "futureGrantManager",
originalFutureGrantManager, true);
}
}
@@ -87,7 +88,8 @@ public class TestCatalogHookDispatcher {
@Test
public void testCreateCatalogRollbackExceptionDoesNotMaskPostHookException()
throws Exception {
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
Object originalFutureGrantManager =
FieldUtils.readField(gravitinoEnv, "futureGrantManager", true);
@@ -111,7 +113,7 @@ public class TestCatalogHookDispatcher {
.thenReturn(catalog);
Mockito.doThrow(rollbackException).when(dispatcher).dropCatalog(ident,
true);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher", ownerDispatcher,
true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
ownerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "futureGrantManager", null, true);
try {
@@ -131,7 +133,7 @@ public class TestCatalogHookDispatcher {
Mockito.verify(dispatcher).dropCatalog(ident, true);
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "futureGrantManager",
originalFutureGrantManager, true);
}
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestFilesetHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestFilesetHookDispatcher.java
index 0a97ec1efb..b4402a9996 100644
---
a/core/src/test/java/org/apache/gravitino/hook/TestFilesetHookDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/hook/TestFilesetHookDispatcher.java
@@ -107,7 +107,7 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
// Self-contained: use a fresh hook with a directly-mocked
FilesetDispatcher and a case-
// insensitive catalog so we can verify the helper passes a normalized
ident to setOwner.
CatalogManager savedCatalogManager =
GravitinoEnv.getInstance().catalogManager();
- OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
CatalogManager mockCatalogManager = Mockito.mock(CatalogManager.class);
CatalogManager.CatalogWrapper mockWrapper =
Mockito.mock(CatalogManager.CatalogWrapper.class);
@@ -121,7 +121,8 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
.thenReturn(Mockito.mock(Fileset.class));
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
mockCatalogManager, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
try {
FilesetHookDispatcher localHook = new
FilesetHookDispatcher(mockFilesetDispatcher);
@@ -150,7 +151,7 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
FieldUtils.writeField(
GravitinoEnv.getInstance(), "catalogManager", savedCatalogManager,
true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
}
@@ -158,7 +159,7 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
public void testCreateFilesetThrowsWhenSetOwnerFails() throws
IllegalAccessException {
// Save the original ownerDispatcher so we can restore it in the finally
block instead of
// wiping it to null and leaking that into other tests in the suite.
- OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
// Create the schema first with the existing (non-throwing)
ownerDispatcher, then swap to the
// throwing mock only for the fileset create we actually want to exercise.
Otherwise the
@@ -171,7 +172,8 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
Mockito.doThrow(new RuntimeException("Set owner failed"))
.when(mockOwnerDispatcher)
.setOwner(any(), any(), any(), any());
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
try {
NameIdentifier filesetIdent = NameIdentifier.of(filesetNs,
"fileset_owner_fail");
@@ -184,7 +186,7 @@ public class TestFilesetHookDispatcher extends
TestOperationDispatcher {
Assertions.assertEquals("Set owner failed", thrown.getMessage());
} finally {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestFunctionHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestFunctionHookDispatcher.java
index faba932cd6..7b892d0ced 100644
---
a/core/src/test/java/org/apache/gravitino/hook/TestFunctionHookDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/hook/TestFunctionHookDispatcher.java
@@ -47,7 +47,8 @@ public class TestFunctionHookDispatcher {
@Test
public void testRegisterFunctionSetOwnerAfterRegister() throws Exception {
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
Object originalCatalogManager = FieldUtils.readField(gravitinoEnv,
"catalogManager", true);
NameIdentifier functionIdentifier =
@@ -74,7 +75,7 @@ public class TestFunctionHookDispatcher {
Mockito.eq(definitions)))
.thenReturn(registeredFunction);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher", ownerDispatcher,
true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
ownerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "catalogManager", catalogManager,
true);
try {
FunctionHookDispatcher hookDispatcher = new
FunctionHookDispatcher(dispatcher);
@@ -95,7 +96,7 @@ public class TestFunctionHookDispatcher {
assertEquals(MetadataObject.Type.FUNCTION,
metadataObjectCaptor.getValue().type());
assertEquals("catalog1.schema1.func1",
metadataObjectCaptor.getValue().fullName());
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "catalogManager",
originalCatalogManager, true);
}
}
@@ -103,7 +104,8 @@ public class TestFunctionHookDispatcher {
@Test
public void testRegisterFunctionSucceedsWhenOwnerDispatcherIsDisabled()
throws Exception {
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
NameIdentifier functionIdentifier =
NameIdentifier.of("metalake1", "catalog1", "schema1", "func1");
@@ -120,7 +122,7 @@ public class TestFunctionHookDispatcher {
Mockito.eq(definitions)))
.thenReturn(registeredFunction);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher", null, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher", null, true);
try {
FunctionHookDispatcher hookDispatcher = new
FunctionHookDispatcher(dispatcher);
Function result =
@@ -131,7 +133,7 @@ public class TestFunctionHookDispatcher {
Mockito.verify(dispatcher)
.registerFunction(functionIdentifier, "comment",
FunctionType.SCALAR, true, definitions);
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
}
}
@@ -140,7 +142,8 @@ public class TestFunctionHookDispatcher {
// Verifies the hook applies Capability.Scope.FUNCTION normalization
before setOwner, so the
// owner relation references the same identifier that NormalizeDispatcher
persists under.
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
Object originalCatalogManager = FieldUtils.readField(gravitinoEnv,
"catalogManager", true);
CatalogManager mockCatalogManager = Mockito.mock(CatalogManager.class);
@@ -158,7 +161,7 @@ public class TestFunctionHookDispatcher {
.thenReturn(mockFunction);
FieldUtils.writeField(gravitinoEnv, "catalogManager", mockCatalogManager,
true);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
mockOwnerDispatcher, true);
try {
FunctionHookDispatcher hook = new
FunctionHookDispatcher(mockFunctionDispatcher);
@@ -179,7 +182,7 @@ public class TestFunctionHookDispatcher {
"Function parent (catalog.schema) must have its schema component
lowercased by"
+ " Capability.Scope.FUNCTION namespace normalization");
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "catalogManager",
originalCatalogManager, true);
}
}
@@ -187,7 +190,8 @@ public class TestFunctionHookDispatcher {
@Test
public void testRegisterFunctionThrowsWhenSetOwnerFails() throws Exception {
GravitinoEnv gravitinoEnv = GravitinoEnv.getInstance();
- Object originalOwnerDispatcher = FieldUtils.readField(gravitinoEnv,
"ownerDispatcher", true);
+ Object originalOwnerDispatcher =
+ FieldUtils.readField(gravitinoEnv, "internalOwnerDispatcher", true);
Object originalCatalogManager = FieldUtils.readField(gravitinoEnv,
"catalogManager", true);
OwnerDispatcher mockOwnerDispatcher = Mockito.mock(OwnerDispatcher.class);
@@ -209,7 +213,7 @@ public class TestFunctionHookDispatcher {
any(), any(), any(), Mockito.anyBoolean(), any()))
.thenReturn(mockFunction);
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
mockOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "catalogManager", catalogManager,
true);
try {
@@ -223,7 +227,7 @@ public class TestFunctionHookDispatcher {
hook.registerFunction(ident, "comment", FunctionType.SCALAR,
true, definitions));
assertEquals("Set owner failed", thrown.getMessage());
} finally {
- FieldUtils.writeField(gravitinoEnv, "ownerDispatcher",
originalOwnerDispatcher, true);
+ FieldUtils.writeField(gravitinoEnv, "internalOwnerDispatcher",
originalOwnerDispatcher, true);
FieldUtils.writeField(gravitinoEnv, "catalogManager",
originalCatalogManager, true);
}
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestJobHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestJobHookDispatcher.java
index 404c79456c..baea025fc4 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestJobHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestJobHookDispatcher.java
@@ -51,15 +51,16 @@ public class TestJobHookDispatcher {
public void setUp() throws IllegalAccessException {
mockDispatcher = mock(JobOperationDispatcher.class);
mockOwnerDispatcher = mock(OwnerDispatcher.class);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
hookDispatcher = new JobHookDispatcher(mockDispatcher);
}
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
@Test
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestMetalakeHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestMetalakeHookDispatcher.java
index 144a3b89df..33f6ff18f5 100644
---
a/core/src/test/java/org/apache/gravitino/hook/TestMetalakeHookDispatcher.java
+++
b/core/src/test/java/org/apache/gravitino/hook/TestMetalakeHookDispatcher.java
@@ -55,20 +55,27 @@ public class TestMetalakeHookDispatcher {
mockDispatcher = mock(MetalakeDispatcher.class);
mockOwnerDispatcher = mock(OwnerDispatcher.class);
mockAccessControlDispatcher = mock(AccessControlDispatcher.class);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
- savedAccessControlDispatcher =
GravitinoEnv.getInstance().accessControlDispatcher();
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
+ savedAccessControlDispatcher =
GravitinoEnv.getInstance().internalAccessControlDispatcher();
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "accessControlDispatcher",
mockAccessControlDispatcher, true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(),
+ "internalAccessControlDispatcher",
+ mockAccessControlDispatcher,
+ true);
hookDispatcher = new MetalakeHookDispatcher(mockDispatcher);
}
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "accessControlDispatcher",
savedAccessControlDispatcher, true);
+ GravitinoEnv.getInstance(),
+ "internalAccessControlDispatcher",
+ savedAccessControlDispatcher,
+ true);
}
@Test
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestModelHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestModelHookDispatcher.java
index c6777b5891..3a18e5c876 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestModelHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestModelHookDispatcher.java
@@ -63,13 +63,14 @@ public class TestModelHookDispatcher {
mockCatalogWrapper = mock(CatalogManager.CatalogWrapper.class);
when(mockCatalogManager.loadCatalogAndWrap(any())).thenReturn(mockCatalogWrapper);
when(mockCatalogWrapper.capabilities()).thenReturn(Capability.DEFAULT);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
// Read the catalogManager field directly via reflection because the
public accessor
// Preconditions-checks for non-null, which would fail when GravitinoEnv
has not been
// initialized for this test class.
savedCatalogManager =
(CatalogManager) FieldUtils.readField(GravitinoEnv.getInstance(),
"catalogManager", true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
mockCatalogManager, true);
hookDispatcher = new ModelHookDispatcher(mockDispatcher);
}
@@ -77,7 +78,7 @@ public class TestModelHookDispatcher {
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
savedCatalogManager, true);
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestPolicyHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestPolicyHookDispatcher.java
index 23eaa84f52..fd0ca523fd 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestPolicyHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestPolicyHookDispatcher.java
@@ -48,15 +48,16 @@ public class TestPolicyHookDispatcher {
public void setUp() throws IllegalAccessException {
mockDispatcher = mock(PolicyDispatcher.class);
mockOwnerDispatcher = mock(OwnerDispatcher.class);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
hookDispatcher = new PolicyHookDispatcher(mockDispatcher);
}
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
@Test
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestSchemaHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestSchemaHookDispatcher.java
index 3e05c3c83c..3f4e1ec813 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestSchemaHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestSchemaHookDispatcher.java
@@ -79,7 +79,7 @@ public class TestSchemaHookDispatcher {
mockCatalogWrapper = mock(CatalogManager.CatalogWrapper.class);
when(mockCatalogManager.loadCatalogAndWrap(any())).thenReturn(mockCatalogWrapper);
when(mockCatalogWrapper.capabilities()).thenReturn(Capability.DEFAULT);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
// Tests in this class that rely on the singleton catalogManager always go
through
// GravitinoEnv.getInstance().catalogManager(), but we cannot call the
public accessor here
// because it Preconditions-checks for non-null and would fail when
GravitinoEnv has not been
@@ -88,7 +88,8 @@ public class TestSchemaHookDispatcher {
(CatalogManager) FieldUtils.readField(GravitinoEnv.getInstance(),
"catalogManager", true);
savedLockManager =
(LockManager) FieldUtils.readField(GravitinoEnv.getInstance(),
"lockManager", true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
mockCatalogManager, true);
// createSchema now acquires a catalog-level tree lock, so wire up a real
LockManager.
FieldUtils.writeField(
@@ -99,7 +100,7 @@ public class TestSchemaHookDispatcher {
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
savedCatalogManager, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager",
savedLockManager, true);
}
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestTagHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestTagHookDispatcher.java
index 2819decf62..37bd4445da 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestTagHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestTagHookDispatcher.java
@@ -48,15 +48,16 @@ public class TestTagHookDispatcher {
public void setUp() throws IllegalAccessException {
mockDispatcher = mock(TagDispatcher.class);
mockOwnerDispatcher = mock(OwnerDispatcher.class);
- savedOwnerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
hookDispatcher = new TagHookDispatcher(mockDispatcher);
}
@AfterEach
public void tearDown() throws IllegalAccessException {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
@Test
diff --git
a/core/src/test/java/org/apache/gravitino/hook/TestTopicHookDispatcher.java
b/core/src/test/java/org/apache/gravitino/hook/TestTopicHookDispatcher.java
index 539af87f5a..0d1a025cdd 100644
--- a/core/src/test/java/org/apache/gravitino/hook/TestTopicHookDispatcher.java
+++ b/core/src/test/java/org/apache/gravitino/hook/TestTopicHookDispatcher.java
@@ -83,7 +83,7 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
// Self-contained: use a fresh hook with a directly-mocked TopicDispatcher
and a case-
// insensitive catalog so we can verify the helper passes a normalized
ident to setOwner.
CatalogManager savedCatalogManager =
GravitinoEnv.getInstance().catalogManager();
- OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
CatalogManager mockCatalogManager = Mockito.mock(CatalogManager.class);
CatalogManager.CatalogWrapper mockWrapper =
Mockito.mock(CatalogManager.CatalogWrapper.class);
@@ -96,7 +96,8 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
.thenReturn(Mockito.mock(Topic.class));
FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogManager",
mockCatalogManager, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
try {
TopicHookDispatcher localHook = new
TopicHookDispatcher(mockTopicDispatcher);
@@ -119,7 +120,7 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
FieldUtils.writeField(
GravitinoEnv.getInstance(), "catalogManager", savedCatalogManager,
true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
}
@@ -127,7 +128,7 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
public void testCreateTopicThrowsWhenSetOwnerFails() throws
IllegalAccessException {
// Save the original ownerDispatcher so we can restore it in the finally
block instead of
// wiping it to null and leaking that into other tests in the suite.
- OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().ownerDispatcher();
+ OwnerDispatcher savedOwnerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
// Create the schema first with the existing (non-throwing)
ownerDispatcher, then swap to the
// throwing mock only for the topic create we actually want to exercise.
Otherwise the throwing
@@ -140,7 +141,8 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
Mockito.doThrow(new RuntimeException("Set owner failed"))
.when(mockOwnerDispatcher)
.setOwner(any(), any(), any(), any());
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
mockOwnerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
mockOwnerDispatcher, true);
try {
NameIdentifier topicIdent = NameIdentifier.of(topicNs,
"topic_owner_fail");
@@ -151,7 +153,7 @@ public class TestTopicHookDispatcher extends
TestOperationDispatcher {
Assertions.assertEquals("Set owner failed", thrown.getMessage());
} finally {
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "ownerDispatcher", savedOwnerDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
savedOwnerDispatcher, true);
}
}
diff --git
a/core/src/test/java/org/apache/gravitino/policy/TestPolicyManager.java
b/core/src/test/java/org/apache/gravitino/policy/TestPolicyManager.java
index ef25f5b960..181af71e4a 100644
--- a/core/src/test/java/org/apache/gravitino/policy/TestPolicyManager.java
+++ b/core/src/test/java/org/apache/gravitino/policy/TestPolicyManager.java
@@ -133,13 +133,17 @@ public class TestPolicyManager {
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "metalakeDispatcher", metalakeDispatcher,
true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher",
catalogDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "schemaDispatcher",
schemaDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher",
tableDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "viewDispatcher",
viewDispatcher, true);
+ GravitinoEnv.getInstance(), "internalMetalakeDispatcher",
metalakeDispatcher, true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "functionDispatcher", functionDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalCatalogDispatcher",
catalogDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalSchemaDispatcher",
schemaDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalViewDispatcher", viewDispatcher,
true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalFunctionDispatcher",
functionDispatcher, true);
AuditInfo audit =
AuditInfo.builder().withCreator("test").withCreateTime(Instant.now()).build();
BaseMetalake metalake =
diff --git a/core/src/test/java/org/apache/gravitino/tag/TestTagManager.java
b/core/src/test/java/org/apache/gravitino/tag/TestTagManager.java
index 593e42f5ad..775759f7d5 100644
--- a/core/src/test/java/org/apache/gravitino/tag/TestTagManager.java
+++ b/core/src/test/java/org/apache/gravitino/tag/TestTagManager.java
@@ -265,13 +265,17 @@ public class TestTagManager {
tagManager = new TagManager(idGenerator, entityStore);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "metalakeDispatcher", metalakeDispatcher,
true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher",
catalogDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "schemaDispatcher",
schemaDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher",
tableDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "viewDispatcher",
viewDispatcher, true);
+ GravitinoEnv.getInstance(), "internalMetalakeDispatcher",
metalakeDispatcher, true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "functionDispatcher", functionDispatcher,
true);
+ GravitinoEnv.getInstance(), "internalCatalogDispatcher",
catalogDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalSchemaDispatcher",
schemaDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalViewDispatcher", viewDispatcher,
true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalFunctionDispatcher",
functionDispatcher, true);
when(metalakeDispatcher.metalakeExists(any())).thenReturn(true);
when(catalogDispatcher.catalogExists(any())).thenReturn(true);
diff --git
a/core/src/test/java/org/apache/gravitino/utils/TestMetadataObjectUtil.java
b/core/src/test/java/org/apache/gravitino/utils/TestMetadataObjectUtil.java
index 97a7fef4a4..4481f0b96f 100644
--- a/core/src/test/java/org/apache/gravitino/utils/TestMetadataObjectUtil.java
+++ b/core/src/test/java/org/apache/gravitino/utils/TestMetadataObjectUtil.java
@@ -18,14 +18,35 @@
*/
package org.apache.gravitino.utils;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
import java.util.List;
import java.util.stream.Collectors;
import org.apache.gravitino.Entity;
+import org.apache.gravitino.GravitinoEnv;
import org.apache.gravitino.MetadataObject;
import org.apache.gravitino.MetadataObjects;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.authorization.AccessControlDispatcher;
+import org.apache.gravitino.catalog.CatalogDispatcher;
+import org.apache.gravitino.catalog.FilesetDispatcher;
+import org.apache.gravitino.catalog.FunctionDispatcher;
+import org.apache.gravitino.catalog.ModelDispatcher;
+import org.apache.gravitino.catalog.SchemaDispatcher;
+import org.apache.gravitino.catalog.TableDispatcher;
+import org.apache.gravitino.catalog.TopicDispatcher;
+import org.apache.gravitino.catalog.ViewDispatcher;
+import org.apache.gravitino.job.JobOperationDispatcher;
+import org.apache.gravitino.metalake.MetalakeDispatcher;
+import org.apache.gravitino.policy.PolicyDispatcher;
+import org.apache.gravitino.tag.TagDispatcher;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.mockito.MockedStatic;
public class TestMetadataObjectUtil {
@@ -205,6 +226,110 @@ public class TestMetadataObjectUtil {
describe(MetadataObjectUtil.getParentMetadataObjects(column, ":")));
}
+ @Test
+ public void testCheckMetadataObjectUsesInternalDispatchers() {
+ GravitinoEnv env = mock(GravitinoEnv.class);
+ MetalakeDispatcher metalakeDispatcher = mock(MetalakeDispatcher.class);
+ CatalogDispatcher catalogDispatcher = mock(CatalogDispatcher.class);
+ SchemaDispatcher schemaDispatcher = mock(SchemaDispatcher.class);
+ FilesetDispatcher filesetDispatcher = mock(FilesetDispatcher.class);
+ TableDispatcher tableDispatcher = mock(TableDispatcher.class);
+ TopicDispatcher topicDispatcher = mock(TopicDispatcher.class);
+ ModelDispatcher modelDispatcher = mock(ModelDispatcher.class);
+ FunctionDispatcher functionDispatcher = mock(FunctionDispatcher.class);
+ ViewDispatcher viewDispatcher = mock(ViewDispatcher.class);
+ AccessControlDispatcher accessControlDispatcher =
mock(AccessControlDispatcher.class);
+ TagDispatcher tagDispatcher = mock(TagDispatcher.class);
+ PolicyDispatcher policyDispatcher = mock(PolicyDispatcher.class);
+ JobOperationDispatcher jobDispatcher = mock(JobOperationDispatcher.class);
+
+ when(env.internalMetalakeDispatcher()).thenReturn(metalakeDispatcher);
+ when(env.internalCatalogDispatcher()).thenReturn(catalogDispatcher);
+ when(env.internalSchemaDispatcher()).thenReturn(schemaDispatcher);
+ when(env.internalFilesetDispatcher()).thenReturn(filesetDispatcher);
+ when(env.internalTableDispatcher()).thenReturn(tableDispatcher);
+ when(env.internalTopicDispatcher()).thenReturn(topicDispatcher);
+ when(env.internalModelDispatcher()).thenReturn(modelDispatcher);
+ when(env.internalFunctionDispatcher()).thenReturn(functionDispatcher);
+ when(env.internalViewDispatcher()).thenReturn(viewDispatcher);
+
when(env.internalAccessControlDispatcher()).thenReturn(accessControlDispatcher);
+ when(env.internalTagDispatcher()).thenReturn(tagDispatcher);
+ when(env.internalPolicyDispatcher()).thenReturn(policyDispatcher);
+ when(env.internalJobOperationDispatcher()).thenReturn(jobDispatcher);
+
+ NameIdentifier metalakeIdent = NameIdentifier.of("metalake");
+ NameIdentifier catalogIdent = NameIdentifier.of("metalake", "catalog");
+ NameIdentifier schemaIdent = NameIdentifier.of("metalake", "catalog",
"schema");
+ NameIdentifier filesetIdent = NameIdentifier.of("metalake", "catalog",
"schema", "fileset");
+ NameIdentifier tableIdent = NameIdentifier.of("metalake", "catalog",
"schema", "table");
+ NameIdentifier topicIdent = NameIdentifier.of("metalake", "catalog",
"schema", "topic");
+ NameIdentifier modelIdent = NameIdentifier.of("metalake", "catalog",
"schema", "model");
+ NameIdentifier functionIdent = NameIdentifier.of("metalake", "catalog",
"schema", "function");
+ NameIdentifier viewIdent = NameIdentifier.of("metalake", "catalog",
"schema", "view");
+
+ when(metalakeDispatcher.metalakeExists(metalakeIdent)).thenReturn(true);
+ when(catalogDispatcher.catalogExists(catalogIdent)).thenReturn(true);
+ when(schemaDispatcher.schemaExists(schemaIdent)).thenReturn(true);
+ when(filesetDispatcher.filesetExists(filesetIdent)).thenReturn(true);
+ when(tableDispatcher.tableExists(tableIdent)).thenReturn(true);
+ when(topicDispatcher.topicExists(topicIdent)).thenReturn(true);
+ when(modelDispatcher.modelExists(modelIdent)).thenReturn(true);
+ when(functionDispatcher.functionExists(functionIdent)).thenReturn(true);
+ when(viewDispatcher.viewExists(viewIdent)).thenReturn(true);
+
+ try (MockedStatic<GravitinoEnv> mockedEnv =
mockStatic(GravitinoEnv.class)) {
+ mockedEnv.when(GravitinoEnv::getInstance).thenReturn(env);
+
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "metalake",
MetadataObject.Type.METALAKE));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "catalog",
MetadataObject.Type.CATALOG));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog", "schema",
MetadataObject.Type.SCHEMA));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog.schema", "fileset",
MetadataObject.Type.FILESET));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog.schema", "table",
MetadataObject.Type.TABLE));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake",
+ MetadataObjects.of("catalog.schema.table", "column",
MetadataObject.Type.COLUMN));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog.schema", "topic",
MetadataObject.Type.TOPIC));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog.schema", "model",
MetadataObject.Type.MODEL));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake",
+ MetadataObjects.of("catalog.schema", "function",
MetadataObject.Type.FUNCTION));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of("catalog.schema", "view",
MetadataObject.Type.VIEW));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "role",
MetadataObject.Type.ROLE));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "tag",
MetadataObject.Type.TAG));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "policy",
MetadataObject.Type.POLICY));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "job",
MetadataObject.Type.JOB));
+ MetadataObjectUtil.checkMetadataObject(
+ "metalake", MetadataObjects.of(null, "template",
MetadataObject.Type.JOB_TEMPLATE));
+ }
+
+ verify(metalakeDispatcher).metalakeExists(metalakeIdent);
+ verify(catalogDispatcher).catalogExists(catalogIdent);
+ verify(schemaDispatcher).schemaExists(schemaIdent);
+ verify(filesetDispatcher).filesetExists(filesetIdent);
+ verify(tableDispatcher, times(2)).tableExists(tableIdent);
+ verify(topicDispatcher).topicExists(topicIdent);
+ verify(modelDispatcher).modelExists(modelIdent);
+ verify(functionDispatcher).functionExists(functionIdent);
+ verify(viewDispatcher).viewExists(viewIdent);
+ verify(accessControlDispatcher).getRole("metalake", "role");
+ verify(tagDispatcher).getTag("metalake", "tag");
+ verify(policyDispatcher).getPolicy("metalake", "policy");
+ verify(jobDispatcher).getJob("metalake", "job");
+ verify(jobDispatcher).getJobTemplate("metalake", "template");
+ }
+
private static List<String> describe(List<MetadataObject> objects) {
return objects.stream().map(o -> o.type() + ":" +
o.fullName()).collect(Collectors.toList());
}
diff --git
a/server-common/src/main/java/org/apache/gravitino/server/authorization/MetadataAuthzHelper.java
b/server-common/src/main/java/org/apache/gravitino/server/authorization/MetadataAuthzHelper.java
index f27d8a296a..744fdcb181 100644
---
a/server-common/src/main/java/org/apache/gravitino/server/authorization/MetadataAuthzHelper.java
+++
b/server-common/src/main/java/org/apache/gravitino/server/authorization/MetadataAuthzHelper.java
@@ -486,7 +486,7 @@ public class MetadataAuthzHelper {
Entity.EntityType entityType, NameIdentifier[] nameIdentifiers) {
// If cache is not enabled or access control dispatcher is not set, skip
preloading to cache
if (!GravitinoEnv.getInstance().cacheEnabled()
- || GravitinoEnv.getInstance().accessControlDispatcher() == null
+ || GravitinoEnv.getInstance().internalAccessControlDispatcher() == null
|| nameIdentifiers.length == 0) {
return;
}
@@ -505,7 +505,7 @@ public class MetadataAuthzHelper {
"All identifiers must have the same schema");
if (!GravitinoEnv.getInstance()
- .schemaDispatcher()
+ .internalSchemaDispatcher()
.schemaExists(NameIdentifier.parse(firstNamespace.toString()))) {
return;
}
diff --git
a/server-common/src/main/java/org/apache/gravitino/server/authorization/jcasbin/JcasbinAuthorizer.java
b/server-common/src/main/java/org/apache/gravitino/server/authorization/jcasbin/JcasbinAuthorizer.java
index cac20f036a..39478da0f1 100644
---
a/server-common/src/main/java/org/apache/gravitino/server/authorization/jcasbin/JcasbinAuthorizer.java
+++
b/server-common/src/main/java/org/apache/gravitino/server/authorization/jcasbin/JcasbinAuthorizer.java
@@ -398,7 +398,7 @@ public class JcasbinAuthorizer implements
GravitinoAuthorizer {
@Override
public boolean isServiceAdmin() {
return GravitinoEnv.getInstance()
- .accessControlDispatcher()
+ .internalAccessControlDispatcher()
.isServiceAdmin(PrincipalUtils.getCurrentUserName());
}
diff --git
a/server-common/src/test/java/org/apache/gravitino/server/authorization/TestMetadataAuthzHelper.java
b/server-common/src/test/java/org/apache/gravitino/server/authorization/TestMetadataAuthzHelper.java
index 5d99db3413..83e575c28a 100644
---
a/server-common/src/test/java/org/apache/gravitino/server/authorization/TestMetadataAuthzHelper.java
+++
b/server-common/src/test/java/org/apache/gravitino/server/authorization/TestMetadataAuthzHelper.java
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Set;
import java.util.concurrent.Executor;
@@ -38,8 +39,10 @@ import org.apache.gravitino.GravitinoEnv;
import org.apache.gravitino.MetadataObject;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.UserPrincipal;
+import org.apache.gravitino.authorization.AccessControlDispatcher;
import org.apache.gravitino.authorization.GravitinoAuthorizer;
import org.apache.gravitino.authorization.Privilege;
+import org.apache.gravitino.catalog.SchemaDispatcher;
import org.apache.gravitino.dto.tag.MetadataObjectDTO;
import
org.apache.gravitino.server.authorization.expression.AuthorizationExpressionConstants;
import org.apache.gravitino.utils.NameIdentifierUtil;
@@ -56,11 +59,12 @@ import org.mockito.MockedStatic;
public class TestMetadataAuthzHelper {
private static MockedStatic<GravitinoEnv> mockedStaticGravitinoEnv;
+ private static GravitinoEnv gravitinoEnv;
@BeforeAll
public static void setup() {
mockedStaticGravitinoEnv = mockStatic(GravitinoEnv.class);
- GravitinoEnv gravitinoEnv = mock(GravitinoEnv.class);
+ gravitinoEnv = mock(GravitinoEnv.class);
mockedStaticGravitinoEnv.when(GravitinoEnv::getInstance).thenReturn(gravitinoEnv);
Config configMock = mock(Config.class);
when(gravitinoEnv.config()).thenReturn(configMock);
@@ -111,6 +115,33 @@ public class TestMetadataAuthzHelper {
}
}
+ @Test
+ public void testPreloadUsesInternalDispatchers() throws Exception {
+ AccessControlDispatcher accessControlDispatcher =
mock(AccessControlDispatcher.class);
+ SchemaDispatcher schemaDispatcher = mock(SchemaDispatcher.class);
+ NameIdentifier tableIdentifier = NameIdentifier.of("metalake", "catalog",
"schema", "table");
+ NameIdentifier schemaIdentifier = NameIdentifier.of("metalake", "catalog",
"schema");
+
+ when(gravitinoEnv.cacheEnabled()).thenReturn(true);
+
when(gravitinoEnv.internalAccessControlDispatcher()).thenReturn(accessControlDispatcher);
+ when(gravitinoEnv.internalSchemaDispatcher()).thenReturn(schemaDispatcher);
+ when(schemaDispatcher.schemaExists(schemaIdentifier)).thenReturn(false);
+
+ Method preload =
+ MetadataAuthzHelper.class.getDeclaredMethod(
+ "preloadToCache", Entity.EntityType.class, NameIdentifier[].class);
+ preload.setAccessible(true);
+ try {
+ preload.invoke(
+ null, new Object[] {Entity.EntityType.TABLE, new NameIdentifier[]
{tableIdentifier}});
+ verify(schemaDispatcher).schemaExists(schemaIdentifier);
+ } finally {
+ when(gravitinoEnv.cacheEnabled()).thenReturn(false);
+ when(gravitinoEnv.internalAccessControlDispatcher()).thenReturn(null);
+ when(gravitinoEnv.internalSchemaDispatcher()).thenReturn(null);
+ }
+ }
+
@Test
public void testFilterMetadataObject() {
makeCompletableFutureUseCurrentThread();
diff --git
a/server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinAuthorizer.java
b/server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinAuthorizer.java
index 25f0f5c45e..df168535ee 100644
---
a/server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinAuthorizer.java
+++
b/server-common/src/test/java/org/apache/gravitino/server/authorization/jcasbin/TestJcasbinAuthorizer.java
@@ -70,6 +70,7 @@ import org.apache.gravitino.SupportsRelationOperations;
import org.apache.gravitino.UserGroup;
import org.apache.gravitino.UserPrincipal;
import org.apache.gravitino.auth.AuthConstants;
+import org.apache.gravitino.authorization.AccessControlDispatcher;
import org.apache.gravitino.authorization.AuthorizationRequestContext;
import org.apache.gravitino.authorization.Privilege;
import org.apache.gravitino.authorization.SecurableObject;
@@ -387,6 +388,17 @@ public class TestJcasbinAuthorizer {
verify(userMetaMapper).getUserUpdatedAt(METALAKE, USERNAME);
}
+ @Test
+ public void testIsServiceAdminUsesInternalDispatcher() {
+ AccessControlDispatcher dispatcher = mock(AccessControlDispatcher.class);
+
when(gravitinoEnv.internalAccessControlDispatcher()).thenReturn(dispatcher);
+ when(dispatcher.isServiceAdmin(USERNAME)).thenReturn(true);
+
+ assertTrue(jcasbinAuthorizer.isServiceAdmin());
+
+ verify(dispatcher).isServiceAdmin(USERNAME);
+ }
+
@Test
public void testAuthorize() throws Exception {
makeCompletableFutureUseCurrentThread(jcasbinAuthorizer);
diff --git
a/server/src/main/java/org/apache/gravitino/server/web/rest/GroupOperations.java
b/server/src/main/java/org/apache/gravitino/server/web/rest/GroupOperations.java
index 474f466565..48c901975c 100644
---
a/server/src/main/java/org/apache/gravitino/server/web/rest/GroupOperations.java
+++
b/server/src/main/java/org/apache/gravitino/server/web/rest/GroupOperations.java
@@ -76,7 +76,7 @@ public class GroupOperations {
// and Jersey injection doesn't support null value. So GroupOperations
chooses to retrieve
// accessControlManager from GravitinoEnv instead of injection here.
this.accessControlManager =
GravitinoEnv.getInstance().accessControlDispatcher();
- this.ownerDispatcher = GravitinoEnv.getInstance().ownerDispatcher();
+ this.ownerDispatcher =
GravitinoEnv.getInstance().internalOwnerDispatcher();
}
@GET
diff --git
a/server/src/main/java/org/apache/gravitino/server/web/rest/UserOperations.java
b/server/src/main/java/org/apache/gravitino/server/web/rest/UserOperations.java
index cb012e89c2..96263a8edd 100644
---
a/server/src/main/java/org/apache/gravitino/server/web/rest/UserOperations.java
+++
b/server/src/main/java/org/apache/gravitino/server/web/rest/UserOperations.java
@@ -75,7 +75,7 @@ public class UserOperations {
// and Jersey injection doesn't support null value. So UserOperations
chooses to retrieve
// accessControlManager from GravitinoEnv instead of injection here.
this.accessControlManager =
GravitinoEnv.getInstance().accessControlDispatcher();
- this.ownerManager = GravitinoEnv.getInstance().ownerDispatcher();
+ this.ownerManager = GravitinoEnv.getInstance().internalOwnerDispatcher();
}
@GET
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestGroupOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestGroupOperations.java
index 20bffeef9f..dab482d8eb 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestGroupOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestGroupOperations.java
@@ -96,7 +96,8 @@ public class TestGroupOperations extends BaseOperationsTest {
Mockito.doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
FieldUtils.writeField(GravitinoEnv.getInstance(),
"accessControlDispatcher", manager, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
ownerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
ownerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "entityStore",
entityStore, true);
}
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestOwnerOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestOwnerOperations.java
index b342f3cfda..f14f60480c 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestOwnerOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestOwnerOperations.java
@@ -94,7 +94,12 @@ class TestOwnerOperations extends BaseOperationsTest {
FieldUtils.writeField(
GravitinoEnv.getInstance(), "metalakeDispatcher", metalakeDispatcher,
true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "accessControlDispatcher",
accessControlDispatcher, true);
+ GravitinoEnv.getInstance(), "internalMetalakeDispatcher",
metalakeDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(),
+ "internalAccessControlDispatcher",
+ accessControlDispatcher,
+ true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "entityStore",
entityStore, true);
}
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestPermissionOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestPermissionOperations.java
index 037490a407..119bb78f8c 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestPermissionOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestPermissionOperations.java
@@ -111,7 +111,10 @@ public class TestPermissionOperations extends
BaseOperationsTest {
FieldUtils.writeField(GravitinoEnv.getInstance(),
"accessControlDispatcher", manager, true);
FieldUtils.writeField(
GravitinoEnv.getInstance(), "metalakeDispatcher", metalakeDispatcher,
true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher",
tableDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalMetalakeDispatcher",
metalakeDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "entityStore",
entityStore, true);
}
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestRoleOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestRoleOperations.java
index b0111d1276..23cba9d104 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestRoleOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestRoleOperations.java
@@ -117,12 +117,19 @@ public class TestRoleOperations extends
BaseOperationsTest {
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
FieldUtils.writeField(GravitinoEnv.getInstance(),
"accessControlDispatcher", manager, true);
FieldUtils.writeField(
- GravitinoEnv.getInstance(), "metalakeDispatcher", metalakeDispatcher,
true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "catalogDispatcher",
catalogDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "schemaDispatcher",
schemaDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher",
tableDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "topicDispatcher",
topicDispatcher, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "filesetDispatcher",
filesetDispatcher, true);
+ GravitinoEnv.getInstance(), "internalAccessControlDispatcher",
manager, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalMetalakeDispatcher",
metalakeDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalCatalogDispatcher",
catalogDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalSchemaDispatcher",
schemaDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTopicDispatcher",
topicDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalFilesetDispatcher",
filesetDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "entityStore",
entityStore, true);
}
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestStatisticOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestStatisticOperations.java
index 887359c177..f8951a9966 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestStatisticOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestStatisticOperations.java
@@ -109,7 +109,8 @@ public class TestStatisticOperations extends
BaseOperationsTest {
Mockito.doReturn(1000L).when(config).get(TREE_LOCK_MIN_NODE_IN_MEMORY);
Mockito.doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "tableDispatcher",
tableDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalTableDispatcher",
tableDispatcher, true);
}
@Override
diff --git
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestUserOperations.java
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestUserOperations.java
index a5940ee74c..94c21a824c 100644
---
a/server/src/test/java/org/apache/gravitino/server/web/rest/TestUserOperations.java
+++
b/server/src/test/java/org/apache/gravitino/server/web/rest/TestUserOperations.java
@@ -92,7 +92,8 @@ public class TestUserOperations extends BaseOperationsTest {
Mockito.doReturn(36000L).when(config).get(TREE_LOCK_CLEAN_INTERVAL);
FieldUtils.writeField(GravitinoEnv.getInstance(), "lockManager", new
LockManager(config), true);
FieldUtils.writeField(GravitinoEnv.getInstance(),
"accessControlDispatcher", manager, true);
- FieldUtils.writeField(GravitinoEnv.getInstance(), "ownerDispatcher",
ownerDispatcher, true);
+ FieldUtils.writeField(
+ GravitinoEnv.getInstance(), "internalOwnerDispatcher",
ownerDispatcher, true);
FieldUtils.writeField(GravitinoEnv.getInstance(), "entityStore",
entityStore, true);
}