This is an automated email from the ASF dual-hosted git repository.
dimas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new d69d7efff Reduce getOrCreateMetaStoreManager callers (#2532)
d69d7efff is described below
commit d69d7efff465d3a76447a0f5698c3386beb4e425
Author: Christopher Lambert <[email protected]>
AuthorDate: Sat Sep 13 00:13:53 2025 +0200
Reduce getOrCreateMetaStoreManager callers (#2532)
we can inject `PolarisMetaStoreManager` directly into request-scoped
beans or build it only once in tests that operate in a single realm.
---
.../service/auth/DefaultActiveRolesProvider.java | 7 ++-----
.../polaris/service/auth/DefaultAuthenticator.java | 5 +----
.../polaris/service/admin/ManagementServiceTest.java | 14 +++-----------
.../polaris/service/auth/DefaultAuthenticatorTest.java | 6 +-----
.../polaris/service/catalog/io/FileIOFactoryTest.java | 5 ++---
.../service/task/TableCleanupTaskHandlerTest.java | 18 ++++++++----------
.../polaris/service/task/TaskExecutorImplTest.java | 5 +----
.../java/org/apache/polaris/service/TestServices.java | 2 ++
8 files changed, 20 insertions(+), 42 deletions(-)
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java
b/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java
index 5783c8b82..c5596b91f 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultActiveRolesProvider.java
@@ -35,7 +35,6 @@ import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.entity.PolarisEntityType;
import org.apache.polaris.core.entity.PrincipalRoleEntity;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.dao.entity.EntityResult;
import org.apache.polaris.core.persistence.dao.entity.LoadGrantsResult;
@@ -55,7 +54,7 @@ public class DefaultActiveRolesProvider implements
ActiveRolesProvider {
@Inject PolarisDiagnostics diagnostics;
@Inject CallContext callContext;
- @Inject MetaStoreManagerFactory metaStoreManagerFactory;
+ @Inject PolarisMetaStoreManager metaStoreManager;
@Override
public Set<String> getActiveRoles(PolarisPrincipal principal) {
@@ -68,9 +67,7 @@ public class DefaultActiveRolesProvider implements
ActiveRolesProvider {
}
List<PrincipalRoleEntity> activeRoles =
loadActivePrincipalRoles(
- principal.getRoles(),
- persistedPolarisPrincipal.getEntity(),
-
metaStoreManagerFactory.getOrCreateMetaStoreManager(callContext.getRealmContext()));
+ principal.getRoles(), persistedPolarisPrincipal.getEntity(),
metaStoreManager);
return
activeRoles.stream().map(PrincipalRoleEntity::getName).collect(Collectors.toSet());
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultAuthenticator.java
b/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultAuthenticator.java
index 149ae1874..e36deec7f 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultAuthenticator.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/auth/DefaultAuthenticator.java
@@ -31,7 +31,6 @@ import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.PolarisEntity;
import org.apache.polaris.core.entity.PolarisEntityType;
import org.apache.polaris.core.entity.PrincipalEntity;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,14 +49,12 @@ public class DefaultAuthenticator implements Authenticator {
private static final Logger LOGGER =
LoggerFactory.getLogger(DefaultAuthenticator.class);
- @Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject CallContext callContext;
+ @Inject PolarisMetaStoreManager metaStoreManager;
@Override
public PolarisPrincipal authenticate(PolarisCredential credentials) {
LOGGER.debug("Resolving principal for credentials={}", credentials);
- PolarisMetaStoreManager metaStoreManager =
-
metaStoreManagerFactory.getOrCreateMetaStoreManager(callContext.getRealmContext());
PolarisEntity principal = null;
try {
// If the principal id is present, prefer to use it to load the
principal entity,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/ManagementServiceTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/ManagementServiceTest.java
index f69e18b7d..5ce603178 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/ManagementServiceTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/ManagementServiceTest.java
@@ -41,14 +41,12 @@ import
org.apache.polaris.core.admin.model.StorageConfigInfo;
import org.apache.polaris.core.admin.model.UpdateCatalogRequest;
import org.apache.polaris.core.auth.PolarisAuthorizerImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
-import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.PolarisBaseEntity;
import org.apache.polaris.core.entity.PolarisEntityConstants;
import org.apache.polaris.core.entity.PolarisEntitySubType;
import org.apache.polaris.core.entity.PolarisEntityType;
import org.apache.polaris.core.entity.PrincipalEntity;
import org.apache.polaris.core.entity.PrincipalRoleEntity;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.dao.entity.BaseResult;
import org.apache.polaris.core.persistence.dao.entity.CreateCatalogResult;
@@ -228,12 +226,6 @@ public class ManagementServiceTest {
.hasMessage("Explicitly setting S3 endpoints is not allowed.");
}
- private PolarisMetaStoreManager setupMetaStoreManager() {
- MetaStoreManagerFactory metaStoreManagerFactory =
services.metaStoreManagerFactory();
- RealmContext realmContext = services.realmContext();
- return metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
- }
-
private PolarisAdminService setupPolarisAdminService(
PolarisMetaStoreManager metaStoreManager, PolarisCallContext
callContext) {
return new PolarisAdminService(
@@ -297,7 +289,7 @@ public class ManagementServiceTest {
@Test
public void testCannotAssignFederatedEntities() {
- PolarisMetaStoreManager metaStoreManager = setupMetaStoreManager();
+ PolarisMetaStoreManager metaStoreManager = services.metaStoreManager();
PolarisCallContext callContext = services.newCallContext();
PolarisAdminService polarisAdminService =
setupPolarisAdminService(metaStoreManager, callContext);
@@ -316,7 +308,7 @@ public class ManagementServiceTest {
@Test
public void testCanListCatalogs() {
- PolarisMetaStoreManager metaStoreManager = setupMetaStoreManager();
+ PolarisMetaStoreManager metaStoreManager = services.metaStoreManager();
PolarisCallContext callContext = services.newCallContext();
PolarisAdminService polarisAdminService =
setupPolarisAdminService(metaStoreManager, callContext);
@@ -356,7 +348,7 @@ public class ManagementServiceTest {
@Test
public void testCreateCatalogReturnErrorOnFailure() {
- PolarisMetaStoreManager metaStoreManager =
Mockito.spy(setupMetaStoreManager());
+ PolarisMetaStoreManager metaStoreManager =
Mockito.spy(services.metaStoreManager());
PolarisCallContext callContext = services.newCallContext();
PolarisAdminService polarisAdminService =
setupPolarisAdminService(metaStoreManager, callContext);
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/auth/DefaultAuthenticatorTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/auth/DefaultAuthenticatorTest.java
index 15db04e0f..85d98ece5 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/auth/DefaultAuthenticatorTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/auth/DefaultAuthenticatorTest.java
@@ -25,7 +25,6 @@ import org.apache.iceberg.exceptions.ServiceFailureException;
import org.apache.polaris.core.PolarisCallContext;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.PolarisEntityType;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.dao.entity.BaseResult;
import org.apache.polaris.core.persistence.dao.entity.EntityResult;
@@ -46,11 +45,8 @@ public class DefaultAuthenticatorTest {
polarisCallContext = Mockito.mock(PolarisCallContext.class);
when(polarisCallContext.getRealmContext()).thenReturn(realmContext);
metaStoreManager = Mockito.mock(PolarisMetaStoreManager.class);
- MetaStoreManagerFactory metaStoreManagerFactory =
Mockito.mock(MetaStoreManagerFactory.class);
- when(metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext))
- .thenReturn(metaStoreManager);
authenticator = new DefaultAuthenticator();
- authenticator.metaStoreManagerFactory = metaStoreManagerFactory;
+ authenticator.metaStoreManager = metaStoreManager;
authenticator.callContext = polarisCallContext;
}
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
index 03fd51d46..efd78f648 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/io/FileIOFactoryTest.java
@@ -169,8 +169,7 @@ public class FileIOFactoryTest {
List<PolarisBaseEntity> tasks =
testServices
- .metaStoreManagerFactory()
- .getOrCreateMetaStoreManager(realmContext)
+ .metaStoreManager()
.loadTasks(callContext.getPolarisCallContext(), "testExecutor",
PageToken.fromLimit(1))
.getEntities();
Assertions.assertThat(tasks).hasSize(1);
@@ -228,7 +227,7 @@ public class FileIOFactoryTest {
services.polarisDiagnostics(),
services.storageCredentialCache(),
services.resolverFactory(),
-
services.metaStoreManagerFactory().getOrCreateMetaStoreManager(realmContext),
+ services.metaStoreManager(),
callContext,
passthroughView,
services.securityContext(),
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
index 7ddaee77e..336607913 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/TableCleanupTaskHandlerTest.java
@@ -48,6 +48,7 @@ import org.apache.polaris.core.entity.PolarisEntityType;
import org.apache.polaris.core.entity.TaskEntity;
import org.apache.polaris.core.entity.table.IcebergTableLikeEntity;
import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
+import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.pagination.PageToken;
import org.apache.polaris.service.TestFileIOFactory;
import org.assertj.core.api.Assertions;
@@ -62,6 +63,7 @@ class TableCleanupTaskHandlerTest {
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject PolarisConfigurationStore configurationStore;
+ private PolarisMetaStoreManager metaStoreManager;
private CallContext callContext;
private final RealmContext realmContext = () -> "realmName";
@@ -76,6 +78,7 @@ class TableCleanupTaskHandlerTest {
void setup() {
QuarkusMock.installMockForType(realmContext, RealmContext.class);
+ metaStoreManager =
metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
callContext =
new PolarisCallContext(
realmContext,
@@ -121,8 +124,7 @@ class TableCleanupTaskHandlerTest {
handler.handleTask(task, callContext);
assertThat(
- metaStoreManagerFactory
- .getOrCreateMetaStoreManager(realmContext)
+ metaStoreManager
.loadTasks(callContext.getPolarisCallContext(), "test",
PageToken.fromLimit(2))
.getEntities())
.hasSize(2)
@@ -196,8 +198,7 @@ class TableCleanupTaskHandlerTest {
// both tasks successfully executed, but only one should queue subtasks
assertThat(
- metaStoreManagerFactory
- .getOrCreateMetaStoreManager(realmContext)
+ metaStoreManager
.loadTasks(callContext.getPolarisCallContext(), "test",
PageToken.fromLimit(5))
.getEntities())
.hasSize(2);
@@ -254,8 +255,7 @@ class TableCleanupTaskHandlerTest {
// both tasks successfully executed, but only one should queue subtasks
assertThat(
- metaStoreManagerFactory
- .getOrCreateMetaStoreManager(realmContext)
+ metaStoreManager
.loadTasks(callContext.getPolarisCallContext(), "test",
PageToken.fromLimit(5))
.getEntities())
.hasSize(4)
@@ -367,8 +367,7 @@ class TableCleanupTaskHandlerTest {
handler.handleTask(task, callContext);
List<PolarisBaseEntity> entities =
- metaStoreManagerFactory
- .getOrCreateMetaStoreManager(realmContext)
+ metaStoreManager
.loadTasks(callContext.getPolarisCallContext(), "test",
PageToken.fromLimit(5))
.getEntities();
@@ -535,8 +534,7 @@ class TableCleanupTaskHandlerTest {
handler.handleTask(task, callContext);
List<PolarisBaseEntity> entities =
- metaStoreManagerFactory
- .getOrCreateMetaStoreManager(callContext.getRealmContext())
+ metaStoreManager
.loadTasks(callContext.getPolarisCallContext(), "test",
PageToken.fromLimit(6))
.getEntities();
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
index 9ac16e75e..56cb22650 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/TaskExecutorImplTest.java
@@ -22,7 +22,6 @@ import org.apache.polaris.core.PolarisCallContext;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.TaskEntity;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.service.TestServices;
import org.apache.polaris.service.events.AfterTaskAttemptedEvent;
@@ -43,9 +42,7 @@ public class TaskExecutorImplTest {
TestPolarisEventListener testPolarisEventListener =
(TestPolarisEventListener) testServices.polarisEventListener();
- MetaStoreManagerFactory metaStoreManagerFactory =
testServices.metaStoreManagerFactory();
- PolarisMetaStoreManager metaStoreManager =
- metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
+ PolarisMetaStoreManager metaStoreManager = testServices.metaStoreManager();
PolarisCallContext polarisCallCtx = testServices.newCallContext();
diff --git
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
index d284a8e23..89fcf893b 100644
---
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
+++
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/TestServices.java
@@ -93,6 +93,7 @@ public record TestServices(
RealmContext realmContext,
RealmConfig realmConfig,
SecurityContext securityContext,
+ PolarisMetaStoreManager metaStoreManager,
FileIOFactory fileIOFactory,
TaskExecutor taskExecutor,
PolarisEventListener polarisEventListener) {
@@ -309,6 +310,7 @@ public record TestServices(
realmContext,
realmConfig,
securityContext,
+ metaStoreManager,
fileIOFactory,
taskExecutor,
polarisEventListener);