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 f151f40a5 Use AccessConfigProvider.getAccessConfig in
DefaultFileIOFactory (#2852)
f151f40a5 is described below
commit f151f40a52baadd4f61ebbee7f120a07a41b0024
Author: Nuoya Jiang <[email protected]>
AuthorDate: Wed Oct 22 15:35:47 2025 -0500
Use AccessConfigProvider.getAccessConfig in DefaultFileIOFactory (#2852)
---
.../service/catalog/io/DefaultFileIOFactory.java | 48 +++++++---------------
.../catalog/io/WasbTranslatingFileIOFactory.java | 9 +---
.../admin/PolarisS3InteroperabilityTest.java | 2 +-
.../AbstractPolarisGenericTableCatalogTest.java | 6 ++-
.../iceberg/AbstractIcebergCatalogTest.java | 16 ++++----
.../iceberg/AbstractIcebergCatalogViewTest.java | 8 ++--
.../iceberg/IcebergCatalogHandlerAuthzTest.java | 2 +-
.../service/catalog/io/FileIOFactoryTest.java | 4 +-
.../catalog/policy/AbstractPolicyCatalogTest.java | 6 ++-
.../org/apache/polaris/service/TestServices.java | 16 ++++----
.../service/catalog/io/MeasuredFileIOFactory.java | 9 +---
11 files changed, 52 insertions(+), 74 deletions(-)
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
index 44f038d72..6a70fadae 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/DefaultFileIOFactory.java
@@ -31,14 +31,9 @@ import org.apache.iceberg.CatalogUtil;
import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.io.FileIO;
import org.apache.polaris.core.context.CallContext;
-import org.apache.polaris.core.context.RealmContext;
-import org.apache.polaris.core.entity.PolarisEntity;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
import org.apache.polaris.core.storage.AccessConfig;
-import org.apache.polaris.core.storage.PolarisCredentialVendor;
import org.apache.polaris.core.storage.PolarisStorageActions;
-import org.apache.polaris.core.storage.cache.StorageCredentialCache;
/**
* A default FileIO factory implementation for creating Iceberg {@link FileIO}
instances with
@@ -52,15 +47,11 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
@Identifier("default")
public class DefaultFileIOFactory implements FileIOFactory {
- private final StorageCredentialCache storageCredentialCache;
- private final MetaStoreManagerFactory metaStoreManagerFactory;
+ private final AccessConfigProvider accessConfigProvider;
@Inject
- public DefaultFileIOFactory(
- StorageCredentialCache storageCredentialCache,
- MetaStoreManagerFactory metaStoreManagerFactory) {
- this.storageCredentialCache = storageCredentialCache;
- this.metaStoreManagerFactory = metaStoreManagerFactory;
+ public DefaultFileIOFactory(AccessConfigProvider accessConfigProvider) {
+ this.accessConfigProvider = accessConfigProvider;
}
@Override
@@ -72,36 +63,25 @@ public class DefaultFileIOFactory implements FileIOFactory {
@Nonnull Set<String> tableLocations,
@Nonnull Set<PolarisStorageActions> storageActions,
@Nonnull PolarisResolvedPathWrapper resolvedEntityPath) {
- RealmContext realmContext = callContext.getRealmContext();
- PolarisCredentialVendor credentialVendor =
- metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
// Get subcoped creds
properties = new HashMap<>(properties);
- Optional<PolarisEntity> storageInfoEntity =
- FileIOUtil.findStorageInfoFromHierarchy(resolvedEntityPath);
- Optional<AccessConfig> accessConfig =
- storageInfoEntity.map(
- storageInfo ->
- FileIOUtil.refreshAccessConfig(
- callContext,
- storageCredentialCache,
- credentialVendor,
- identifier,
- tableLocations,
- storageActions,
- storageInfo,
- Optional.empty()));
+ AccessConfig accessConfig =
+ accessConfigProvider.getAccessConfig(
+ callContext,
+ identifier,
+ tableLocations,
+ storageActions,
+ Optional.empty(),
+ resolvedEntityPath);
// Update the FileIO with the subscoped credentials
// Update with properties in case there are table-level overrides the
credentials should
// always override table-level properties, since storage configuration
will be found at
// whatever entity defines it
- if (accessConfig.isPresent()) {
- properties.putAll(accessConfig.get().credentials());
- properties.putAll(accessConfig.get().extraProperties());
- properties.putAll(accessConfig.get().internalProperties());
- }
+ properties.putAll(accessConfig.credentials());
+ properties.putAll(accessConfig.extraProperties());
+ properties.putAll(accessConfig.internalProperties());
return loadFileIOInternal(ioImplClassName, properties);
}
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
index 048e19bb4..ffe8cc1fd 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/io/WasbTranslatingFileIOFactory.java
@@ -27,10 +27,8 @@ import java.util.Set;
import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.io.FileIO;
import org.apache.polaris.core.context.CallContext;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
import org.apache.polaris.core.storage.PolarisStorageActions;
-import org.apache.polaris.core.storage.cache.StorageCredentialCache;
/** A {@link FileIOFactory} that translates WASB paths to ABFS ones */
@ApplicationScoped
@@ -40,11 +38,8 @@ public class WasbTranslatingFileIOFactory implements
FileIOFactory {
private final FileIOFactory defaultFileIOFactory;
@Inject
- public WasbTranslatingFileIOFactory(
- StorageCredentialCache storageCredentialCache,
- MetaStoreManagerFactory metaStoreManagerFactory) {
- defaultFileIOFactory =
- new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ public WasbTranslatingFileIOFactory(AccessConfigProvider
accessConfigProvider) {
+ defaultFileIOFactory = new DefaultFileIOFactory(accessConfigProvider);
}
@Override
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisS3InteroperabilityTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisS3InteroperabilityTest.java
index d7b4abc8c..4ab75815a 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisS3InteroperabilityTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisS3InteroperabilityTest.java
@@ -73,7 +73,7 @@ public class PolarisS3InteroperabilityTest {
public PolarisS3InteroperabilityTest() {
TestServices.FileIOFactorySupplier fileIOFactorySupplier =
- (storageCredentialCache, metaStoreManagerFactory) ->
+ (accessConfigProvider) ->
(FileIOFactory)
(callContext,
ioImplClassName,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
index af2efded5..4f2ce23af 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/AbstractPolarisGenericTableCatalogTest.java
@@ -67,6 +67,7 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
+import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.config.ReservedProperties;
@@ -120,6 +121,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
private PolarisPrincipal authenticatedRoot;
private PolarisEntity catalogEntity;
private SecurityContext securityContext;
+ private AccessConfigProvider accessConfigProvider;
protected static final Schema SCHEMA =
new Schema(
@@ -156,6 +158,8 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
+ accessConfigProvider =
+ new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
@@ -211,7 +215,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
new PolarisPassthroughResolutionView(
resolutionManifestFactory, securityContext, CATALOG_NAME);
TaskExecutor taskExecutor = Mockito.mock();
- this.fileIOFactory = new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ this.fileIOFactory = new DefaultFileIOFactory(accessConfigProvider);
StsClient stsClient = Mockito.mock(StsClient.class);
when(stsClient.assumeRole(isA(AssumeRoleRequest.class)))
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
index 369a67252..cc7054ff1 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogTest.java
@@ -135,6 +135,7 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.Profiles;
+import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.ExceptionMappingFileIO;
import org.apache.polaris.service.catalog.io.FileIOFactory;
@@ -249,6 +250,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
private SecurityContext securityContext;
private TestPolarisEventListener testPolarisEventListener;
private ReservedProperties reservedProperties;
+ private AccessConfigProvider accessConfigProvider;
@BeforeAll
public static void setUpMocks() {
@@ -286,7 +288,8 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
-
+ accessConfigProvider =
+ new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
EntityCache entityCache = createEntityCache(diagServices, realmConfig,
metaStoreManager);
resolverFactory =
(securityContext, referenceCatalogName) ->
@@ -352,7 +355,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
.build()
.asCatalog(serviceIdentityProvider)));
- this.fileIOFactory = new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ this.fileIOFactory = new DefaultFileIOFactory(accessConfigProvider);
StsClient stsClient = Mockito.mock(StsClient.class);
when(stsClient.assumeRole(isA(AssumeRoleRequest.class)))
@@ -996,8 +999,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
// filename.
final String tableLocation =
"s3://externally-owned-bucket/validate_table/";
final String tableMetadataLocation = tableLocation + "metadata/";
- FileIOFactory fileIOFactory =
- spy(new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory));
+ FileIOFactory fileIOFactory = spy(new
DefaultFileIOFactory(accessConfigProvider));
IcebergCatalog catalog = newIcebergCatalog(catalog().name(),
metaStoreManager, fileIOFactory);
catalog.initialize(
CATALOG_NAME,
@@ -1914,8 +1916,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
.containsEntry(StorageAccessProperty.AWS_SECRET_KEY.getPropertyName(),
SECRET_ACCESS_KEY)
.containsEntry(StorageAccessProperty.AWS_TOKEN.getPropertyName(),
SESSION_TOKEN);
FileIO fileIO =
- new TaskFileIOSupplier(
- new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory))
+ new TaskFileIOSupplier(new DefaultFileIOFactory(accessConfigProvider))
.apply(taskEntity, TABLE, polarisContext);
Assertions.assertThat(fileIO).isNotNull().isInstanceOf(ExceptionMappingFileIO.class);
Assertions.assertThat(((ExceptionMappingFileIO) fileIO).getInnerIo())
@@ -2041,8 +2042,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
@Test
public void testFileIOWrapper() {
- MeasuredFileIOFactory measured =
- new MeasuredFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ MeasuredFileIOFactory measured = new
MeasuredFileIOFactory(accessConfigProvider);
IcebergCatalog catalog = newIcebergCatalog(CATALOG_NAME, metaStoreManager,
measured);
catalog.initialize(
CATALOG_NAME,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
index 97c31cdb5..d6fc35005 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/AbstractIcebergCatalogViewTest.java
@@ -60,6 +60,7 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.Profiles;
+import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.config.ReservedProperties;
@@ -123,6 +124,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
private UserSecretsManager userSecretsManager;
private PolarisCallContext polarisContext;
private RealmConfig realmConfig;
+ private AccessConfigProvider accessConfigProvider;
private TestPolarisEventListener testPolarisEventListener;
@@ -163,7 +165,8 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
-
+ accessConfigProvider =
+ new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
PolarisPrincipal authenticatedRoot = PolarisPrincipal.of(rootPrincipal,
Set.of());
@@ -207,8 +210,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
PolarisPassthroughResolutionView passthroughView =
new PolarisPassthroughResolutionView(
resolutionManifestFactory, securityContext, CATALOG_NAME);
- FileIOFactory fileIOFactory =
- new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ FileIOFactory fileIOFactory = new
DefaultFileIOFactory(accessConfigProvider);
testPolarisEventListener = (TestPolarisEventListener) polarisEventListener;
testPolarisEventListener.clear();
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
index 568c83c7d..f3cd56162 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandlerAuthzTest.java
@@ -1899,7 +1899,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
resolverFactory,
managerFactory,
Mockito.mock(),
- new DefaultFileIOFactory(storageCredentialCache, managerFactory),
+ new DefaultFileIOFactory(accessConfigProvider),
polarisEventListener) {
@Override
public Catalog createCallContextCatalog(
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 d36e9a74f..53ebebf7a 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
@@ -102,9 +102,9 @@ public class FileIOFactoryTest {
// Spy FileIOFactory and check if the credentials are passed to the FileIO
TestServices.FileIOFactorySupplier fileIOFactorySupplier =
- (storageCredentialCache, metaStoreManagerFactory) ->
+ (accessConfigProvider) ->
Mockito.spy(
- new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory) {
+ new DefaultFileIOFactory(accessConfigProvider) {
@Override
FileIO loadFileIOInternal(
@Nonnull String ioImplClassName, @Nonnull Map<String,
String> properties) {
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
index f430e2bff..f03afecdb 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/AbstractPolicyCatalogTest.java
@@ -79,6 +79,7 @@ import
org.apache.polaris.core.storage.cache.StorageCredentialCache;
import org.apache.polaris.service.admin.PolarisAdminService;
import org.apache.polaris.service.catalog.PolarisPassthroughResolutionView;
import org.apache.polaris.service.catalog.iceberg.IcebergCatalog;
+import org.apache.polaris.service.catalog.io.AccessConfigProvider;
import org.apache.polaris.service.catalog.io.DefaultFileIOFactory;
import org.apache.polaris.service.catalog.io.FileIOFactory;
import org.apache.polaris.service.config.ReservedProperties;
@@ -146,6 +147,7 @@ public abstract class AbstractPolicyCatalogTest {
private PolarisPrincipal authenticatedRoot;
private PolarisEntity catalogEntity;
private SecurityContext securityContext;
+ private AccessConfigProvider accessConfigProvider;
@BeforeAll
public static void setUpMocks() {
@@ -177,6 +179,8 @@ public abstract class AbstractPolicyCatalogTest {
metaStoreManagerFactory.getOrCreateSession(realmContext),
configurationStore);
realmConfig = polarisContext.getRealmConfig();
+ accessConfigProvider =
+ new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
@@ -230,7 +234,7 @@ public abstract class AbstractPolicyCatalogTest {
new PolarisPassthroughResolutionView(
resolutionManifestFactory, securityContext, CATALOG_NAME);
TaskExecutor taskExecutor = Mockito.mock();
- this.fileIOFactory = new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ this.fileIOFactory = new DefaultFileIOFactory(accessConfigProvider);
StsClient stsClient = Mockito.mock(StsClient.class);
when(stsClient.assumeRole(isA(AssumeRoleRequest.class)))
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 b58cdd771..a6fa48ef8 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
@@ -34,7 +34,7 @@ import java.util.Date;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import java.util.function.BiFunction;
+import java.util.function.Function;
import org.apache.polaris.core.PolarisCallContext;
import org.apache.polaris.core.PolarisDefaultDiagServiceImpl;
import org.apache.polaris.core.PolarisDiagnostics;
@@ -116,8 +116,7 @@ public record TestServices(
private static final String GCP_ACCESS_TOKEN = "abc";
@FunctionalInterface
- public interface FileIOFactorySupplier
- extends BiFunction<StorageCredentialCache, MetaStoreManagerFactory,
FileIOFactory> {}
+ public interface FileIOFactorySupplier extends
Function<AccessConfigProvider, FileIOFactory> {}
private static class MockedConfigurationStore implements
PolarisConfigurationStore {
private final Map<String, Object> defaults;
@@ -144,7 +143,8 @@ public record TestServices(
private RealmContext realmContext = TEST_REALM;
private Map<String, Object> config = Map.of();
private StsClient stsClient;
- private FileIOFactorySupplier fileIOFactorySupplier =
MeasuredFileIOFactory::new;
+ private FileIOFactorySupplier fileIOFactorySupplier =
+ metaStoreManagerFactory1 -> new
MeasuredFileIOFactory(metaStoreManagerFactory1);
private Builder() {
stsClient = Mockito.mock(StsClient.class, RETURNS_DEEP_STUBS);
@@ -242,8 +242,9 @@ public record TestServices(
PolarisCredentialManager credentialManager =
new DefaultPolarisCredentialManager(realmContext,
mockCredentialVendors);
- FileIOFactory fileIOFactory =
- fileIOFactorySupplier.apply(storageCredentialCache,
metaStoreManagerFactory);
+ AccessConfigProvider accessConfigProvider =
+ new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
+ FileIOFactory fileIOFactory =
fileIOFactorySupplier.apply(accessConfigProvider);
TaskExecutor taskExecutor = Mockito.mock(TaskExecutor.class);
@@ -257,9 +258,6 @@ public record TestServices(
fileIOFactory,
polarisEventListener);
- AccessConfigProvider accessConfigProvider =
- new AccessConfigProvider(storageCredentialCache,
metaStoreManagerFactory);
-
ReservedProperties reservedProperties = ReservedProperties.NONE;
CatalogHandlerUtils catalogHandlerUtils = new
CatalogHandlerUtils(realmConfig);
diff --git
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
index c4bf40ca9..04d6878a2 100644
---
a/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
+++
b/runtime/service/src/testFixtures/java/org/apache/polaris/service/catalog/io/MeasuredFileIOFactory.java
@@ -30,10 +30,8 @@ import java.util.function.Supplier;
import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.io.FileIO;
import org.apache.polaris.core.context.CallContext;
-import org.apache.polaris.core.persistence.MetaStoreManagerFactory;
import org.apache.polaris.core.persistence.PolarisResolvedPathWrapper;
import org.apache.polaris.core.storage.PolarisStorageActions;
-import org.apache.polaris.core.storage.cache.StorageCredentialCache;
/**
* A FileIOFactory that measures the number of bytes read, files written, and
files deleted. It can
@@ -52,11 +50,8 @@ public class MeasuredFileIOFactory implements FileIOFactory {
private final FileIOFactory defaultFileIOFactory;
@Inject
- public MeasuredFileIOFactory(
- StorageCredentialCache storageCredentialCache,
- MetaStoreManagerFactory metaStoreManagerFactory) {
- defaultFileIOFactory =
- new DefaultFileIOFactory(storageCredentialCache,
metaStoreManagerFactory);
+ public MeasuredFileIOFactory(AccessConfigProvider accessConfigProvider) {
+ defaultFileIOFactory = new DefaultFileIOFactory(accessConfigProvider);
}
@Override