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 6b4f8e1fc Remove PolarisCallContext.getDiagServices (#2415)
6b4f8e1fc is described below
commit 6b4f8e1fc5c8b5f0d7d645fc66fc9127888a1811
Author: Christopher Lambert <[email protected]>
AuthorDate: Tue Sep 2 19:40:39 2025 +0200
Remove PolarisCallContext.getDiagServices (#2415)
* Remove PolarisCallContext.getDiagServices usage
* Remove diagnostics from PolarisCallContext
---
.../PolarisEclipseLinkMetaStoreManagerTest.java | 2 +-
.../relational/jdbc/JdbcBasePersistenceImpl.java | 34 ++++++------
.../jdbc/JdbcMetaStoreManagerFactory.java | 11 ++--
...toreManagerWithJdbcBasePersistenceImplTest.java | 4 +-
.../apache/polaris/core/PolarisCallContext.java | 16 +-----
.../LocalPolarisMetaStoreManagerFactory.java | 10 ++--
.../TransactionWorkspaceMetaStoreManager.java | 2 +-
.../persistence/cache/InMemoryEntityCache.java | 43 ++++++---------
.../resolver/PolarisResolutionManifest.java | 3 +-
.../resolver/ResolutionManifestFactoryImpl.java | 8 ++-
.../core/persistence/resolver/Resolver.java | 3 +-
.../transactional/PolarisEntityResolver.java | 64 +++++++++++-----------
.../TransactionalMetaStoreManagerImpl.java | 39 ++++++++-----
.../core/storage/cache/StorageCredentialCache.java | 11 ++--
...TreeMapAtomicOperationMetaStoreManagerTest.java | 2 +-
.../PolarisTreeMapMetaStoreManagerTest.java | 2 +-
.../polaris/core/persistence/ResolverTest.java | 4 +-
.../persistence/cache/InMemoryEntityCacheTest.java | 4 +-
.../storage/cache/StorageCredentialCacheTest.java | 8 +--
.../polaris/core/persistence/BaseResolverTest.java | 6 +-
.../polaris/service/admin/PolarisAdminService.java | 8 +--
.../polaris/service/admin/PolarisServiceImpl.java | 5 ++
.../service/auth/DefaultActiveRolesProvider.java | 14 ++---
.../service/catalog/common/CatalogHandler.java | 3 +-
.../generic/GenericTableCatalogAdapter.java | 5 ++
.../generic/GenericTableCatalogHandler.java | 3 +
.../service/catalog/iceberg/IcebergCatalog.java | 46 ++++++++--------
.../catalog/iceberg/IcebergCatalogAdapter.java | 5 ++
.../catalog/iceberg/IcebergCatalogHandler.java | 3 +
.../catalog/policy/PolicyCatalogAdapter.java | 5 ++
.../catalog/policy/PolicyCatalogHandler.java | 3 +
.../polaris/service/config/ServiceProducers.java | 14 +++--
.../catalog/PolarisCallContextCatalogFactory.java | 5 ++
.../service/admin/ManagementServiceTest.java | 1 +
.../admin/PolarisAdminServiceAuthzTest.java | 1 +
.../service/admin/PolarisAdminServiceTest.java | 6 +-
.../service/admin/PolarisAuthzTestBase.java | 11 ++--
.../service/admin/PolarisServiceImplTest.java | 4 ++
.../polaris/service/auth/JWTRSAKeyPairTest.java | 3 +-
.../service/auth/JWTSymmetricKeyGeneratorTest.java | 2 +-
.../AbstractPolarisGenericTableCatalogTest.java | 3 +-
...PolarisGenericTableCatalogHandlerAuthzTest.java | 1 +
.../iceberg/AbstractIcebergCatalogTest.java | 12 ++--
.../iceberg/AbstractIcebergCatalogViewTest.java | 3 +-
.../iceberg/IcebergCatalogHandlerAuthzTest.java | 4 ++
.../IcebergCatalogRelationalNoEntityCacheTest.java | 5 +-
...cebergCatalogRelationalWithEntityCacheTest.java | 7 ++-
.../service/catalog/io/FileIOFactoryTest.java | 1 +
.../catalog/policy/AbstractPolicyCatalogTest.java | 3 +-
.../policy/PolicyCatalogHandlerAuthzTest.java | 1 +
.../task/BatchFileCleanupTaskHandlerTest.java | 4 +-
.../task/ManifestFileCleanupTaskHandlerTest.java | 4 +-
.../service/task/TableCleanupTaskHandlerTest.java | 3 -
.../test/PolarisIntegrationTestFixture.java | 3 +-
.../org/apache/polaris/service/TestServices.java | 19 ++++---
55 files changed, 279 insertions(+), 217 deletions(-)
diff --git
a/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java
b/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java
index ab768ba83..bf358cca0 100644
---
a/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java
+++
b/persistence/eclipselink/src/test/java/org/apache/polaris/extension/persistence/impl/eclipselink/PolarisEclipseLinkMetaStoreManagerTest.java
@@ -89,7 +89,7 @@ public class PolarisEclipseLinkMetaStoreManagerTest extends
BasePolarisMetaStore
diagServices, store, Mockito.mock(), realmContext, null,
"polaris", RANDOM_SECRETS);
TransactionalMetaStoreManagerImpl metaStoreManager =
new TransactionalMetaStoreManagerImpl(clock, diagServices);
- PolarisCallContext callCtx = new PolarisCallContext(realmContext, session,
diagServices);
+ PolarisCallContext callCtx = new PolarisCallContext(realmContext, session);
return new PolarisTestMetaStoreManager(metaStoreManager, callCtx);
}
diff --git
a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java
b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java
index 71f1d2e7a..e43f6dbc8 100644
---
a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java
+++
b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcBasePersistenceImpl.java
@@ -37,6 +37,7 @@ import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.entity.EntityNameLookupRecord;
import org.apache.polaris.core.entity.LocationBasedEntity;
import org.apache.polaris.core.entity.PolarisBaseEntity;
@@ -77,6 +78,7 @@ public class JdbcBasePersistenceImpl implements
BasePersistence, IntegrationPers
private static final Logger LOGGER =
LoggerFactory.getLogger(JdbcBasePersistenceImpl.class);
+ private final PolarisDiagnostics diagnostics;
private final DatasourceOperations datasourceOperations;
private final PrincipalSecretsGenerator secretsGenerator;
private final PolarisStorageIntegrationProvider storageIntegrationProvider;
@@ -87,11 +89,13 @@ public class JdbcBasePersistenceImpl implements
BasePersistence, IntegrationPers
private static final int MAX_LOCATION_COMPONENTS = 40;
public JdbcBasePersistenceImpl(
+ PolarisDiagnostics diagnostics,
DatasourceOperations databaseOperations,
PrincipalSecretsGenerator secretsGenerator,
PolarisStorageIntegrationProvider storageIntegrationProvider,
String realmId,
int schemaVersion) {
+ this.diagnostics = diagnostics;
this.datasourceOperations = databaseOperations;
this.secretsGenerator = secretsGenerator;
this.storageIntegrationProvider = storageIntegrationProvider;
@@ -785,24 +789,20 @@ public class JdbcBasePersistenceImpl implements
BasePersistence, IntegrationPers
PolarisPrincipalSecrets principalSecrets = loadPrincipalSecrets(callCtx,
clientId);
// should be found
- callCtx
- .getDiagServices()
- .checkNotNull(
- principalSecrets,
- "cannot_find_secrets",
- "client_id={} principalId={}",
- clientId,
- principalId);
+ diagnostics.checkNotNull(
+ principalSecrets,
+ "cannot_find_secrets",
+ "client_id={} principalId={}",
+ clientId,
+ principalId);
// ensure principal id is matching
- callCtx
- .getDiagServices()
- .check(
- principalId == principalSecrets.getPrincipalId(),
- "principal_id_mismatch",
- "expectedId={} id={}",
- principalId,
- principalSecrets.getPrincipalId());
+ diagnostics.check(
+ principalId == principalSecrets.getPrincipalId(),
+ "principal_id_mismatch",
+ "expectedId={} id={}",
+ principalId,
+ principalSecrets.getPrincipalId());
// rotate the secrets
principalSecrets.rotateSecrets(oldSecretHash);
@@ -1119,7 +1119,7 @@ public class JdbcBasePersistenceImpl implements
BasePersistence, IntegrationPers
PolarisStorageIntegration<T> loadPolarisStorageIntegration(
@Nonnull PolarisCallContext callContext, @Nonnull PolarisBaseEntity
entity) {
PolarisStorageConfigurationInfo storageConfig =
-
BaseMetaStoreManager.extractStorageConfiguration(callContext.getDiagServices(),
entity);
+ BaseMetaStoreManager.extractStorageConfiguration(diagnostics, entity);
return
storageIntegrationProvider.getStorageIntegrationForConfig(storageConfig);
}
diff --git
a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java
b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java
index 20acc3e03..09640c259 100644
---
a/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java
+++
b/persistence/relational-jdbc/src/main/java/org/apache/polaris/persistence/relational/jdbc/JdbcMetaStoreManagerFactory.java
@@ -103,6 +103,7 @@ public class JdbcMetaStoreManagerFactory implements
MetaStoreManagerFactory {
realmId,
() ->
new JdbcBasePersistenceImpl(
+ diagnostics,
datasourceOperations,
secretsGenerator(realmId, rootCredentialsSet),
storageIntegrationProvider,
@@ -177,7 +178,7 @@ public class JdbcMetaStoreManagerFactory implements
MetaStoreManagerFactory {
PolarisMetaStoreManager metaStoreManager =
getOrCreateMetaStoreManager(realmContext);
BasePersistence session = getOrCreateSession(realmContext);
- PolarisCallContext callContext = new PolarisCallContext(realmContext,
session, diagnostics);
+ PolarisCallContext callContext = new PolarisCallContext(realmContext,
session);
BaseResult result = metaStoreManager.purge(callContext);
results.put(realm, result);
@@ -216,7 +217,7 @@ public class JdbcMetaStoreManagerFactory implements
MetaStoreManagerFactory {
PolarisMetaStoreManager metaStoreManager =
getOrCreateMetaStoreManager(realmContext);
entityCacheMap.put(
realmContext.getRealmIdentifier(),
- new InMemoryEntityCache(realmConfig, metaStoreManager));
+ new InMemoryEntityCache(diagnostics, realmConfig, metaStoreManager));
}
return entityCacheMap.get(realmContext.getRealmIdentifier());
@@ -233,8 +234,7 @@ public class JdbcMetaStoreManagerFactory implements
MetaStoreManagerFactory {
PolarisMetaStoreManager metaStoreManager =
metaStoreManagerMap.get(realmContext.getRealmIdentifier());
BasePersistence metaStore =
sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
- PolarisCallContext polarisContext =
- new PolarisCallContext(realmContext, metaStore, diagnostics);
+ PolarisCallContext polarisContext = new PolarisCallContext(realmContext,
metaStore);
Optional<PrincipalEntity> preliminaryRootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext);
@@ -268,8 +268,7 @@ public class JdbcMetaStoreManagerFactory implements
MetaStoreManagerFactory {
PolarisMetaStoreManager metaStoreManager =
metaStoreManagerMap.get(realmContext.getRealmIdentifier());
BasePersistence metaStore =
sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
- PolarisCallContext polarisContext =
- new PolarisCallContext(realmContext, metaStore, diagnostics);
+ PolarisCallContext polarisContext = new PolarisCallContext(realmContext,
metaStore);
Optional<PrincipalEntity> rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext);
if (rootPrincipal.isEmpty()) {
diff --git
a/persistence/relational-jdbc/src/test/java/org/apache/polaris/persistence/relational/jdbc/AtomicMetastoreManagerWithJdbcBasePersistenceImplTest.java
b/persistence/relational-jdbc/src/test/java/org/apache/polaris/persistence/relational/jdbc/AtomicMetastoreManagerWithJdbcBasePersistenceImplTest.java
index f15da08e3..dfc8a84a0 100644
---
a/persistence/relational-jdbc/src/test/java/org/apache/polaris/persistence/relational/jdbc/AtomicMetastoreManagerWithJdbcBasePersistenceImplTest.java
+++
b/persistence/relational-jdbc/src/test/java/org/apache/polaris/persistence/relational/jdbc/AtomicMetastoreManagerWithJdbcBasePersistenceImplTest.java
@@ -64,6 +64,7 @@ public class
AtomicMetastoreManagerWithJdbcBasePersistenceImplTest
RealmContext realmContext = () -> "REALM";
JdbcBasePersistenceImpl basePersistence =
new JdbcBasePersistenceImpl(
+ diagServices,
datasourceOperations,
RANDOM_SECRETS,
Mockito.mock(),
@@ -71,8 +72,7 @@ public class
AtomicMetastoreManagerWithJdbcBasePersistenceImplTest
schemaVersion);
AtomicOperationMetaStoreManager metaStoreManager =
new AtomicOperationMetaStoreManager(clock, diagServices);
- PolarisCallContext callCtx =
- new PolarisCallContext(realmContext, basePersistence, diagServices);
+ PolarisCallContext callCtx = new PolarisCallContext(realmContext,
basePersistence);
return new PolarisTestMetaStoreManager(metaStoreManager, callCtx);
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/PolarisCallContext.java
b/polaris-core/src/main/java/org/apache/polaris/core/PolarisCallContext.java
index 8878b9ef6..272b455e7 100644
--- a/polaris-core/src/main/java/org/apache/polaris/core/PolarisCallContext.java
+++ b/polaris-core/src/main/java/org/apache/polaris/core/PolarisCallContext.java
@@ -34,7 +34,6 @@ public class PolarisCallContext implements CallContext {
// meta store which is used to persist Polaris entity metadata
private final BasePersistence metaStore;
- private final PolarisDiagnostics diagServices;
private final PolarisConfigurationStore configurationStore;
private final RealmContext realmContext;
private final RealmConfig realmConfig;
@@ -42,30 +41,22 @@ public class PolarisCallContext implements CallContext {
public PolarisCallContext(
@Nonnull RealmContext realmContext,
@Nonnull BasePersistence metaStore,
- @Nonnull PolarisDiagnostics diagServices,
@Nonnull PolarisConfigurationStore configurationStore) {
this.realmContext = realmContext;
this.metaStore = metaStore;
- this.diagServices = diagServices;
this.configurationStore = configurationStore;
this.realmConfig = new RealmConfigImpl(this.configurationStore,
this.realmContext);
}
public PolarisCallContext(
- @Nonnull RealmContext realmContext,
- @Nonnull BasePersistence metaStore,
- @Nonnull PolarisDiagnostics diagServices) {
- this(realmContext, metaStore, diagServices, new
PolarisConfigurationStore() {});
+ @Nonnull RealmContext realmContext, @Nonnull BasePersistence metaStore) {
+ this(realmContext, metaStore, new PolarisConfigurationStore() {});
}
public BasePersistence getMetaStore() {
return metaStore;
}
- public PolarisDiagnostics getDiagServices() {
- return diagServices;
- }
-
@Override
public RealmContext getRealmContext() {
return realmContext;
@@ -90,7 +81,6 @@ public class PolarisCallContext implements CallContext {
// copy of the RealmContext to ensure the access during the task executor.
String realmId = this.realmContext.getRealmIdentifier();
RealmContext realmContext = () -> realmId;
- return new PolarisCallContext(
- realmContext, this.metaStore, this.diagServices,
this.configurationStore);
+ return new PolarisCallContext(realmContext, this.metaStore,
this.configurationStore);
}
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
index 818bdb138..ea3c14b52 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java
@@ -131,7 +131,7 @@ public abstract class
LocalPolarisMetaStoreManagerFactory<StoreType>
PolarisMetaStoreManager metaStoreManager =
getOrCreateMetaStoreManager(realmContext);
TransactionalPersistence session = getOrCreateSession(realmContext);
- PolarisCallContext callContext = new PolarisCallContext(realmContext,
session, diagnostics);
+ PolarisCallContext callContext = new PolarisCallContext(realmContext,
session);
BaseResult result = metaStoreManager.purge(callContext);
results.put(realm, result);
@@ -169,7 +169,7 @@ public abstract class
LocalPolarisMetaStoreManagerFactory<StoreType>
PolarisMetaStoreManager metaStoreManager =
getOrCreateMetaStoreManager(realmContext);
entityCacheMap.put(
realmContext.getRealmIdentifier(),
- new InMemoryEntityCache(realmConfig, metaStoreManager));
+ new InMemoryEntityCache(diagnostics, realmConfig, metaStoreManager));
}
return entityCacheMap.get(realmContext.getRealmIdentifier());
@@ -186,8 +186,7 @@ public abstract class
LocalPolarisMetaStoreManagerFactory<StoreType>
PolarisMetaStoreManager metaStoreManager =
metaStoreManagerMap.get(realmContext.getRealmIdentifier());
BasePersistence metaStore =
sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
- PolarisCallContext polarisContext =
- new PolarisCallContext(realmContext, metaStore, diagnostics);
+ PolarisCallContext polarisContext = new PolarisCallContext(realmContext,
metaStore);
Optional<PrincipalEntity> preliminaryRootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext);
@@ -221,8 +220,7 @@ public abstract class
LocalPolarisMetaStoreManagerFactory<StoreType>
PolarisMetaStoreManager metaStoreManager =
metaStoreManagerMap.get(realmContext.getRealmIdentifier());
BasePersistence metaStore =
sessionSupplierMap.get(realmContext.getRealmIdentifier()).get();
- PolarisCallContext polarisContext =
- new PolarisCallContext(realmContext, metaStore, diagnostics);
+ PolarisCallContext polarisContext = new PolarisCallContext(realmContext,
metaStore);
Optional<PrincipalEntity> rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext);
if (rootPrincipal.isEmpty()) {
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/TransactionWorkspaceMetaStoreManager.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/TransactionWorkspaceMetaStoreManager.java
index 3d9f3c052..b5c9ecebc 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/TransactionWorkspaceMetaStoreManager.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/TransactionWorkspaceMetaStoreManager.java
@@ -137,7 +137,7 @@ public class TransactionWorkspaceMetaStoreManager
implements PolarisMetaStoreMan
@Nonnull PolarisEntityType entityType,
@Nonnull PolarisEntitySubType entitySubType,
@Nonnull PageToken pageToken) {
- callCtx.getDiagServices().fail("illegal_method_in_transaction_workspace",
"loadEntities");
+ diagnostics.fail("illegal_method_in_transaction_workspace",
"loadEntities");
return null;
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java
index 36c44ea25..efac734ed 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCache.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.config.BehaviorChangeConfiguration;
import org.apache.polaris.core.config.FeatureConfiguration;
import org.apache.polaris.core.config.RealmConfig;
@@ -41,16 +42,10 @@ import
org.apache.polaris.core.persistence.dao.entity.ResolvedEntityResult;
/** An in-memory entity cache with a limit of 100k entities and a 1h TTL. */
public class InMemoryEntityCache implements EntityCache {
- // cache mode
private EntityCacheMode cacheMode;
-
- // the meta store manager
+ private final PolarisDiagnostics diagnostics;
private final PolarisMetaStoreManager polarisMetaStoreManager;
-
- // Caffeine cache to keep entries by id
private final Cache<Long, ResolvedPolarisEntity> byId;
-
- // index by name
private final AbstractMap<EntityCacheByNameKey, ResolvedPolarisEntity>
byName;
/**
@@ -59,7 +54,10 @@ public class InMemoryEntityCache implements EntityCache {
* @param polarisMetaStoreManager the meta store manager implementation
*/
public InMemoryEntityCache(
- @Nonnull RealmConfig realmConfig, @Nonnull PolarisMetaStoreManager
polarisMetaStoreManager) {
+ @Nonnull PolarisDiagnostics diagnostics,
+ @Nonnull RealmConfig realmConfig,
+ @Nonnull PolarisMetaStoreManager polarisMetaStoreManager) {
+ this.diagnostics = diagnostics;
// by name cache
this.byName = new ConcurrentHashMap<>();
@@ -344,16 +342,13 @@ public class InMemoryEntityCache implements EntityCache {
}
// assert that entity, grant records and version are all set
- callContext.getDiagServices().checkNotNull(entity,
"unexpected_null_entity");
- callContext.getDiagServices().checkNotNull(grantRecords,
"unexpected_null_grant_records");
- callContext
- .getDiagServices()
- .check(grantRecordsVersion > 0,
"unexpected_null_grant_records_version");
+ diagnostics.checkNotNull(entity, "unexpected_null_entity");
+ diagnostics.checkNotNull(grantRecords, "unexpected_null_grant_records");
+ diagnostics.check(grantRecordsVersion > 0,
"unexpected_null_grant_records_version");
// create new cache entry
newCacheEntry =
- new ResolvedPolarisEntity(
- callContext.getDiagServices(), entity, grantRecords,
grantRecordsVersion);
+ new ResolvedPolarisEntity(diagnostics, entity, grantRecords,
grantRecordsVersion);
// insert cache entry
this.replaceCacheEntry(existingCacheEntry, newCacheEntry);
@@ -401,13 +396,12 @@ public class InMemoryEntityCache implements EntityCache {
}
// if found, setup entry
- callContext.getDiagServices().checkNotNull(result.getEntity(),
"entity_should_loaded");
- callContext
- .getDiagServices()
- .checkNotNull(result.getEntityGrantRecords(),
"entity_grant_records_should_loaded");
+ diagnostics.checkNotNull(result.getEntity(), "entity_should_loaded");
+ diagnostics.checkNotNull(
+ result.getEntityGrantRecords(),
"entity_grant_records_should_loaded");
entry =
new ResolvedPolarisEntity(
- callContext.getDiagServices(),
+ diagnostics,
result.getEntity(),
result.getEntityGrantRecords(),
result.getGrantRecordsVersion());
@@ -458,15 +452,14 @@ public class InMemoryEntityCache implements EntityCache {
}
// validate return
- callContext.getDiagServices().checkNotNull(result.getEntity(),
"entity_should_loaded");
- callContext
- .getDiagServices()
- .checkNotNull(result.getEntityGrantRecords(),
"entity_grant_records_should_loaded");
+ diagnostics.checkNotNull(result.getEntity(), "entity_should_loaded");
+ diagnostics.checkNotNull(
+ result.getEntityGrantRecords(),
"entity_grant_records_should_loaded");
// if found, setup entry
entry =
new ResolvedPolarisEntity(
- callContext.getDiagServices(),
+ diagnostics,
result.getEntity(),
result.getEntityGrantRecords(),
result.getGrantRecordsVersion());
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/PolarisResolutionManifest.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/PolarisResolutionManifest.java
index f4504d6e1..562689878 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/PolarisResolutionManifest.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/PolarisResolutionManifest.java
@@ -70,6 +70,7 @@ public class PolarisResolutionManifest implements
PolarisResolutionManifestCatal
private ResolverStatus primaryResolverStatus = null;
public PolarisResolutionManifest(
+ PolarisDiagnostics diagnostics,
CallContext callContext,
ResolverFactory resolverFactory,
SecurityContext securityContext,
@@ -79,7 +80,7 @@ public class PolarisResolutionManifest implements
PolarisResolutionManifestCatal
this.catalogName = catalogName;
this.primaryResolver =
resolverFactory.createResolver(callContext, securityContext,
catalogName);
- this.diagnostics = callContext.getPolarisCallContext().getDiagServices();
+ this.diagnostics = diagnostics;
this.diagnostics.checkNotNull(securityContext,
"null_security_context_for_resolution_manifest");
this.securityContext = securityContext;
diagnostics.check(
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactoryImpl.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactoryImpl.java
index dc148a723..c91a77543 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactoryImpl.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/ResolutionManifestFactoryImpl.java
@@ -22,13 +22,17 @@ package org.apache.polaris.core.persistence.resolver;
import jakarta.annotation.Nonnull;
import jakarta.annotation.Nullable;
import jakarta.ws.rs.core.SecurityContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.context.CallContext;
public class ResolutionManifestFactoryImpl implements
ResolutionManifestFactory {
+ private final PolarisDiagnostics diagnostics;
private final ResolverFactory resolverFactory;
- public ResolutionManifestFactoryImpl(@Nonnull ResolverFactory
resolverFactory) {
+ public ResolutionManifestFactoryImpl(
+ @Nonnull PolarisDiagnostics diagnostics, @Nonnull ResolverFactory
resolverFactory) {
+ this.diagnostics = diagnostics;
this.resolverFactory = resolverFactory;
}
@@ -39,6 +43,6 @@ public class ResolutionManifestFactoryImpl implements
ResolutionManifestFactory
@Nonnull SecurityContext securityContext,
@Nullable String referenceCatalogName) {
return new PolarisResolutionManifest(
- callContext, resolverFactory, securityContext, referenceCatalogName);
+ diagnostics, callContext, resolverFactory, securityContext,
referenceCatalogName);
}
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/Resolver.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/Resolver.java
index 08f257b5c..df64d296a 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/Resolver.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/resolver/Resolver.java
@@ -127,13 +127,14 @@ public class Resolver {
* service admin should use null for that parameter.
*/
public Resolver(
+ @Nonnull PolarisDiagnostics diagnostics,
@Nonnull PolarisCallContext polarisCallContext,
@Nonnull PolarisMetaStoreManager polarisMetaStoreManager,
@Nonnull SecurityContext securityContext,
@Nullable EntityCache cache,
@Nullable String referenceCatalogName) {
this.polarisCallContext = polarisCallContext;
- this.diagnostics = polarisCallContext.getDiagServices();
+ this.diagnostics = diagnostics;
this.polarisMetaStoreManager = polarisMetaStoreManager;
this.cache = cache;
this.securityContext = securityContext;
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/PolarisEntityResolver.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/PolarisEntityResolver.java
index 2bc43a5a3..de37e2fe6 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/PolarisEntityResolver.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/PolarisEntityResolver.java
@@ -77,36 +77,32 @@ public class PolarisEntityResolver {
* or a principal can be specified here
*/
PolarisEntityResolver(
+ @Nonnull PolarisDiagnostics diagnostics,
@Nonnull PolarisCallContext callCtx,
@Nonnull TransactionalPersistence ms,
@Nullable List<PolarisEntityCore> catalogPath,
@Nullable PolarisEntityCore resolvedEntity,
@Nullable List<PolarisEntityCore> otherTopLevelEntities) {
- // cache diagnostics services
- this.diagnostics = callCtx.getDiagServices();
+ this.diagnostics = diagnostics;
// validate path if one was specified
if (catalogPath != null) {
// cannot be an empty list
- callCtx.getDiagServices().check(!catalogPath.isEmpty(),
"catalogPath_cannot_be_empty");
+ diagnostics.check(!catalogPath.isEmpty(), "catalogPath_cannot_be_empty");
// first in the path should be the catalog
- callCtx
- .getDiagServices()
- .check(
- catalogPath.get(0).getTypeCode() ==
PolarisEntityType.CATALOG.getCode(),
- "entity_is_not_catalog",
- "entity={}",
- this);
+ diagnostics.check(
+ catalogPath.get(0).getTypeCode() ==
PolarisEntityType.CATALOG.getCode(),
+ "entity_is_not_catalog",
+ "entity={}",
+ this);
} else if (resolvedEntity != null) {
// if an entity is specified without any path, it better be a top-level
entity
- callCtx
- .getDiagServices()
- .check(
- resolvedEntity.getType().isTopLevel(),
- "not_top_level_entity",
- "resolvedEntity={}",
- resolvedEntity);
+ diagnostics.check(
+ resolvedEntity.getType().isTopLevel(),
+ "not_top_level_entity",
+ "resolvedEntity={}",
+ resolvedEntity);
}
// validate the otherTopLevelCatalogEntities list. Must be top-level
catalog entities
@@ -114,17 +110,14 @@ public class PolarisEntityResolver {
// ensure all entities are top-level
for (PolarisEntityCore topLevelCatalogEntityDto : otherTopLevelEntities)
{
// top-level (catalog or account) and is catalog, catalog path must be
specified
- callCtx
- .getDiagServices()
- .check(
- topLevelCatalogEntityDto.isTopLevel()
- || (topLevelCatalogEntityDto.getType().getParentType()
- == PolarisEntityType.CATALOG
- && catalogPath != null),
- "not_top_level_or_missing_catalog_path",
- "entity={} catalogPath={}",
- topLevelCatalogEntityDto,
- catalogPath);
+ diagnostics.check(
+ topLevelCatalogEntityDto.isTopLevel()
+ || (topLevelCatalogEntityDto.getType().getParentType() ==
PolarisEntityType.CATALOG
+ && catalogPath != null),
+ "not_top_level_or_missing_catalog_path",
+ "entity={} catalogPath={}",
+ topLevelCatalogEntityDto,
+ catalogPath);
}
}
@@ -156,10 +149,11 @@ public class PolarisEntityResolver {
* like a catalog.
*/
PolarisEntityResolver(
+ @Nonnull PolarisDiagnostics diagnostics,
@Nonnull PolarisCallContext callCtx,
@Nonnull TransactionalPersistence ms,
@Nullable List<PolarisEntityCore> catalogPath) {
- this(callCtx, ms, catalogPath, null, null);
+ this(diagnostics, callCtx, ms, catalogPath, null, null);
}
/**
@@ -172,11 +166,12 @@ public class PolarisEntityResolver {
* @param resolvedEntityDto resolved entity DTO
*/
PolarisEntityResolver(
+ @Nonnull PolarisDiagnostics diagnostics,
@Nonnull PolarisCallContext callCtx,
@Nonnull TransactionalPersistence ms,
@Nullable List<PolarisEntityCore> catalogPath,
PolarisEntityCore resolvedEntityDto) {
- this(callCtx, ms, catalogPath, resolvedEntityDto, null);
+ this(diagnostics, callCtx, ms, catalogPath, resolvedEntityDto, null);
}
/**
@@ -189,11 +184,18 @@ public class PolarisEntityResolver {
* @param entity Polaris base entity
*/
PolarisEntityResolver(
+ @Nonnull PolarisDiagnostics diagnostics,
@Nonnull PolarisCallContext callCtx,
@Nonnull TransactionalPersistence ms,
@Nullable List<PolarisEntityCore> catalogPath,
@Nonnull PolarisBaseEntity entity) {
- this(callCtx, ms, catalogPath, new
PolarisEntityCore.Builder<>(entity).build(), null);
+ this(
+ diagnostics,
+ callCtx,
+ ms,
+ catalogPath,
+ new PolarisEntityCore.Builder<>(entity).build(),
+ null);
}
/**
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
index 97af650b0..7ae70c9dd 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/transactional/TransactionalMetaStoreManagerImpl.java
@@ -632,7 +632,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
@Nonnull PolarisEntitySubType entitySubType,
@Nonnull String name) {
// first resolve again the catalogPath to that entity
- PolarisEntityResolver resolver = new PolarisEntityResolver(callCtx, ms,
catalogPath);
+ PolarisEntityResolver resolver =
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath);
// return if we failed to resolve
if (resolver.isFailure()) {
@@ -689,7 +690,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
@Nonnull PolarisEntitySubType entitySubType,
@Nonnull PageToken pageToken) {
// first resolve again the catalogPath to that entity
- PolarisEntityResolver resolver = new PolarisEntityResolver(callCtx, ms,
catalogPath);
+ PolarisEntityResolver resolver =
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath);
// return if we failed to resolve
if (resolver.isFailure()) {
@@ -738,7 +740,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
@Nonnull PolarisEntitySubType entitySubType,
@Nonnull PageToken pageToken) {
// first resolve again the catalogPath to that entity
- PolarisEntityResolver resolver = new PolarisEntityResolver(callCtx, ms,
catalogPath);
+ PolarisEntityResolver resolver =
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath);
// throw if we failed to resolve
if (resolver.isFailure()) {
@@ -1034,7 +1037,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
}
// first resolve again the catalogPath
- PolarisEntityResolver resolver = new PolarisEntityResolver(callCtx, ms,
catalogPath);
+ PolarisEntityResolver resolver =
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath);
// return if we failed to resolve
if (resolver.isFailure()) {
@@ -1115,7 +1119,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
getDiagnostics().checkNotNull(entity, "unexpected_null_entity");
// re-resolve everything including that entity
- PolarisEntityResolver resolver = new PolarisEntityResolver(callCtx, ms,
catalogPath, entity);
+ PolarisEntityResolver resolver =
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath,
entity);
// if resolution failed, return false
if (resolver.isFailure()) {
@@ -1247,7 +1252,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// re-resolve everything including that entity
PolarisEntityResolver resolver =
- new PolarisEntityResolver(callCtx, ms, catalogPath, entityToRename);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath,
entityToRename);
// if resolution failed, return false
if (resolver.isFailure()) {
@@ -1280,7 +1285,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// re-resolve the new catalog path if this entity is going to be moved
if (newCatalogPath != null) {
- resolver = new PolarisEntityResolver(callCtx, ms, newCatalogPath);
+ resolver = new PolarisEntityResolver(getDiagnostics(), callCtx, ms,
newCatalogPath);
// if resolution failed, return false
if (resolver.isFailure()) {
@@ -1363,7 +1368,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// re-resolve everything including that entity
PolarisEntityResolver resolver =
- new PolarisEntityResolver(callCtx, ms, catalogPath, entityToDrop);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms, catalogPath,
entityToDrop);
// if resolution failed, return false
if (resolver.isFailure()) {
@@ -1543,7 +1548,12 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// ensure these entities have not changed
return new PolarisEntityResolver(
- callCtx, ms, catalog != null ? List.of(catalog) : null, null,
otherTopLevelEntities);
+ getDiagnostics(),
+ callCtx,
+ ms,
+ catalog != null ? List.of(catalog) : null,
+ null,
+ otherTopLevelEntities);
}
/**
@@ -1573,7 +1583,8 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
}
// re-resolve now all these entities
- return new PolarisEntityResolver(callCtx, ms, catalogPath, securable,
List.of(grantee));
+ return new PolarisEntityResolver(
+ getDiagnostics(), callCtx, ms, catalogPath, securable,
List.of(grantee));
}
/**
@@ -2367,9 +2378,9 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
@Nonnull PolicyEntity policy,
Map<String, String> parameters) {
PolarisEntityResolver targetResolver =
- new PolarisEntityResolver(callCtx, ms, targetCatalogPath, target);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms,
targetCatalogPath, target);
PolarisEntityResolver policyResolver =
- new PolarisEntityResolver(callCtx, ms, policyCatalogPath, policy);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms,
policyCatalogPath, policy);
if (targetResolver.isFailure() || policyResolver.isFailure()) {
return new
PolicyAttachmentResult(BaseResult.ReturnStatus.ENTITY_CANNOT_BE_RESOLVED, null);
}
@@ -2405,9 +2416,9 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
@Nonnull List<PolarisEntityCore> policyCatalogPath,
@Nonnull PolicyEntity policy) {
PolarisEntityResolver targetResolver =
- new PolarisEntityResolver(callCtx, ms, targetCatalogPath, target);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms,
targetCatalogPath, target);
PolarisEntityResolver policyResolver =
- new PolarisEntityResolver(callCtx, ms, policyCatalogPath, policy);
+ new PolarisEntityResolver(getDiagnostics(), callCtx, ms,
policyCatalogPath, policy);
if (targetResolver.isFailure() || policyResolver.isFailure()) {
return new
PolicyAttachmentResult(BaseResult.ReturnStatus.ENTITY_CANNOT_BE_RESOLVED, null);
}
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
index d166ee4b1..82de79915 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/storage/cache/StorageCredentialCache.java
@@ -31,6 +31,7 @@ import java.util.Set;
import java.util.function.Function;
import org.apache.iceberg.exceptions.UnprocessableEntityException;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.config.FeatureConfiguration;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.entity.PolarisEntity;
@@ -46,10 +47,13 @@ public class StorageCredentialCache {
private static final Logger LOGGER =
LoggerFactory.getLogger(StorageCredentialCache.class);
+ private final PolarisDiagnostics diagnostics;
private final LoadingCache<StorageCredentialCacheKey,
StorageCredentialCacheEntry> cache;
/** Initialize the creds cache */
- public StorageCredentialCache(StorageCredentialCacheConfig cacheConfig) {
+ public StorageCredentialCache(
+ PolarisDiagnostics diagnostics, StorageCredentialCacheConfig
cacheConfig) {
+ this.diagnostics = diagnostics;
cache =
Caffeine.newBuilder()
.maximumSize(cacheConfig.maxEntries())
@@ -108,9 +112,8 @@ public class StorageCredentialCache {
@Nonnull Set<String> allowedWriteLocations,
Optional<String> refreshCredentialsEndpoint) {
if (!isTypeSupported(polarisEntity.getType())) {
- callCtx
- .getDiagServices()
- .fail("entity_type_not_suppported_to_scope_creds", "type={}",
polarisEntity.getType());
+ diagnostics.fail(
+ "entity_type_not_suppported_to_scope_creds", "type={}",
polarisEntity.getType());
}
StorageCredentialCacheKey key =
StorageCredentialCacheKey.of(
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapAtomicOperationMetaStoreManagerTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapAtomicOperationMetaStoreManagerTest.java
index ac8d45218..f1fa909e8 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapAtomicOperationMetaStoreManagerTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapAtomicOperationMetaStoreManagerTest.java
@@ -38,7 +38,7 @@ public class PolarisTreeMapAtomicOperationMetaStoreManagerTest
diagServices, store, Mockito.mock(), RANDOM_SECRETS);
AtomicOperationMetaStoreManager metaStoreManager =
new AtomicOperationMetaStoreManager(clock, diagServices);
- PolarisCallContext callCtx = new PolarisCallContext(() -> "testRealm",
metaStore, diagServices);
+ PolarisCallContext callCtx = new PolarisCallContext(() -> "testRealm",
metaStore);
return new PolarisTestMetaStoreManager(metaStoreManager, callCtx);
}
}
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapMetaStoreManagerTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapMetaStoreManagerTest.java
index a07f7be99..4ecfa027f 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapMetaStoreManagerTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/PolarisTreeMapMetaStoreManagerTest.java
@@ -38,7 +38,7 @@ public class PolarisTreeMapMetaStoreManagerTest extends
BasePolarisMetaStoreMana
diagServices, store, Mockito.mock(), RANDOM_SECRETS);
TransactionalMetaStoreManagerImpl metaStoreManager =
new TransactionalMetaStoreManagerImpl(clock, diagServices);
- PolarisCallContext callCtx = new PolarisCallContext(() -> "testRealm",
metaStore, diagServices);
+ PolarisCallContext callCtx = new PolarisCallContext(() -> "testRealm",
metaStore);
return new PolarisTestMetaStoreManager(metaStoreManager, callCtx);
}
}
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/ResolverTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/ResolverTest.java
index e0add4fea..3c8633a82 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/ResolverTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/ResolverTest.java
@@ -22,7 +22,6 @@ import static
org.apache.polaris.core.persistence.PrincipalSecretsGenerator.RAND
import java.time.Clock;
import org.apache.polaris.core.PolarisCallContext;
-import org.apache.polaris.core.PolarisDefaultDiagServiceImpl;
import
org.apache.polaris.core.persistence.transactional.TransactionalMetaStoreManagerImpl;
import org.apache.polaris.core.persistence.transactional.TreeMapMetaStore;
import
org.apache.polaris.core.persistence.transactional.TreeMapTransactionalPersistenceImpl;
@@ -31,7 +30,6 @@ import org.mockito.Mockito;
public class ResolverTest extends BaseResolverTest {
private final Clock clock = Clock.systemUTC();
- private final PolarisDefaultDiagServiceImpl diagServices = new
PolarisDefaultDiagServiceImpl();
private PolarisCallContext callCtx;
private PolarisTestMetaStoreManager tm;
private TransactionalMetaStoreManagerImpl metaStoreManager;
@@ -43,7 +41,7 @@ public class ResolverTest extends BaseResolverTest {
TreeMapTransactionalPersistenceImpl metaStore =
new TreeMapTransactionalPersistenceImpl(
diagServices, store, Mockito.mock(), RANDOM_SECRETS);
- callCtx = new PolarisCallContext(() -> "testRealm", metaStore,
diagServices);
+ callCtx = new PolarisCallContext(() -> "testRealm", metaStore);
}
return callCtx;
}
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCacheTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCacheTest.java
index fa8437fa0..d750c4821 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCacheTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/persistence/cache/InMemoryEntityCacheTest.java
@@ -82,7 +82,7 @@ public class InMemoryEntityCacheTest {
new TreeMapTransactionalPersistenceImpl(
diagServices, store, Mockito.mock(), RANDOM_SECRETS);
metaStoreManager = new
TransactionalMetaStoreManagerImpl(Clock.systemUTC(), diagServices);
- callCtx = new PolarisCallContext(() -> "testRealm", metaStore,
diagServices);
+ callCtx = new PolarisCallContext(() -> "testRealm", metaStore);
// bootstrap the meta store with our test schema
tm = new PolarisTestMetaStoreManager(metaStoreManager, callCtx);
@@ -93,7 +93,7 @@ public class InMemoryEntityCacheTest {
* @return new cache for the entity store
*/
InMemoryEntityCache allocateNewCache() {
- return new InMemoryEntityCache(callCtx.getRealmConfig(),
this.metaStoreManager);
+ return new InMemoryEntityCache(diagServices, callCtx.getRealmConfig(),
this.metaStoreManager);
}
@Test
diff --git
a/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
b/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
index becc220a6..a51badf4b 100644
---
a/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
+++
b/polaris-core/src/test/java/org/apache/polaris/core/storage/cache/StorageCredentialCacheTest.java
@@ -50,7 +50,7 @@ import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
public class StorageCredentialCacheTest {
-
+ private final PolarisDiagnostics diagServices = new
PolarisDefaultDiagServiceImpl();
private final PolarisCallContext callCtx;
private final StorageCredentialCacheConfig storageCredentialCacheConfig;
private final PolarisMetaStoreManager metaStoreManager;
@@ -58,22 +58,20 @@ public class StorageCredentialCacheTest {
private StorageCredentialCache storageCredentialCache;
public StorageCredentialCacheTest() {
- // diag services
- PolarisDiagnostics diagServices = new PolarisDefaultDiagServiceImpl();
// the entity store, use treemap implementation
TreeMapMetaStore store = new TreeMapMetaStore(diagServices);
// to interact with the metastore
TransactionalPersistence metaStore =
new TreeMapTransactionalPersistenceImpl(
diagServices, store, Mockito.mock(), RANDOM_SECRETS);
- callCtx = new PolarisCallContext(() -> "testRealm", metaStore,
diagServices);
+ callCtx = new PolarisCallContext(() -> "testRealm", metaStore);
storageCredentialCacheConfig = () -> 10_000;
metaStoreManager = Mockito.mock(PolarisMetaStoreManager.class);
storageCredentialCache = newStorageCredentialCache();
}
private StorageCredentialCache newStorageCredentialCache() {
- return new StorageCredentialCache(storageCredentialCacheConfig);
+ return new StorageCredentialCache(diagServices,
storageCredentialCacheConfig);
}
@Test
diff --git
a/polaris-core/src/testFixtures/java/org/apache/polaris/core/persistence/BaseResolverTest.java
b/polaris-core/src/testFixtures/java/org/apache/polaris/core/persistence/BaseResolverTest.java
index c0daa7c44..53720c73b 100644
---
a/polaris-core/src/testFixtures/java/org/apache/polaris/core/persistence/BaseResolverTest.java
+++
b/polaris-core/src/testFixtures/java/org/apache/polaris/core/persistence/BaseResolverTest.java
@@ -31,6 +31,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDefaultDiagServiceImpl;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.entity.PolarisBaseEntity;
import org.apache.polaris.core.entity.PolarisEntityCore;
@@ -51,6 +52,7 @@ import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
public abstract class BaseResolverTest {
+ protected final PolarisDefaultDiagServiceImpl diagServices = new
PolarisDefaultDiagServiceImpl();
// Principal P1
protected PolarisBaseEntity P1;
@@ -467,7 +469,8 @@ public abstract class BaseResolverTest {
// create a new cache if needs be
if (cache == null) {
- this.cache = new InMemoryEntityCache(callCtx().getRealmConfig(),
metaStoreManager());
+ this.cache =
+ new InMemoryEntityCache(diagServices, callCtx().getRealmConfig(),
metaStoreManager());
}
boolean allRoles = principalRolesScope == null;
Optional<List<PrincipalRoleEntity>> roleEntities =
@@ -485,6 +488,7 @@ public abstract class BaseResolverTest {
PolarisPrincipal.of(
PrincipalEntity.of(P1),
Optional.ofNullable(principalRolesScope).orElse(Set.of()));
return new Resolver(
+ diagServices,
callCtx(),
metaStoreManager(),
new SecurityContext() {
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisAdminService.java
b/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisAdminService.java
index d4c1892dc..84ed33900 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisAdminService.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisAdminService.java
@@ -151,6 +151,7 @@ public class PolarisAdminService {
private PolarisResolutionManifest resolutionManifest = null;
public PolarisAdminService(
+ @NotNull PolarisDiagnostics diagnostics,
@NotNull CallContext callContext,
@NotNull ResolutionManifestFactory resolutionManifestFactory,
@NotNull PolarisMetaStoreManager metaStoreManager,
@@ -163,10 +164,9 @@ public class PolarisAdminService {
this.resolutionManifestFactory = resolutionManifestFactory;
this.metaStoreManager = metaStoreManager;
this.securityContext = securityContext;
- PolarisDiagnostics diagServices =
callContext.getPolarisCallContext().getDiagServices();
- diagServices.checkNotNull(securityContext, "null_security_context");
- diagServices.checkNotNull(securityContext.getUserPrincipal(),
"null_security_context");
- diagServices.check(
+ diagnostics.checkNotNull(securityContext, "null_security_context");
+ diagnostics.checkNotNull(securityContext.getUserPrincipal(),
"null_security_context");
+ diagnostics.check(
securityContext.getUserPrincipal() instanceof PolarisPrincipal,
"unexpected_principal_type",
"class={}",
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisServiceImpl.java
b/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisServiceImpl.java
index c455e9c99..1d7b6aa68 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisServiceImpl.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/admin/PolarisServiceImpl.java
@@ -29,6 +29,7 @@ import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.exceptions.NotAuthorizedException;
import org.apache.iceberg.rest.responses.ErrorResponse;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.admin.model.AddGrantRequest;
import org.apache.polaris.core.admin.model.AuthenticationParameters;
import org.apache.polaris.core.admin.model.AwsStorageConfigInfo;
@@ -95,6 +96,7 @@ public class PolarisServiceImpl
PolarisPrincipalsApiService,
PolarisPrincipalRolesApiService {
private static final Logger LOGGER =
LoggerFactory.getLogger(PolarisServiceImpl.class);
+ private final PolarisDiagnostics diagnostics;
private final ResolutionManifestFactory resolutionManifestFactory;
private final PolarisAuthorizer polarisAuthorizer;
private final MetaStoreManagerFactory metaStoreManagerFactory;
@@ -105,12 +107,14 @@ public class PolarisServiceImpl
@Inject
public PolarisServiceImpl(
+ PolarisDiagnostics diagnostics,
ResolutionManifestFactory resolutionManifestFactory,
MetaStoreManagerFactory metaStoreManagerFactory,
UserSecretsManagerFactory userSecretsManagerFactory,
PolarisAuthorizer polarisAuthorizer,
CallContext callContext,
ReservedProperties reservedProperties) {
+ this.diagnostics = diagnostics;
this.resolutionManifestFactory = resolutionManifestFactory;
this.metaStoreManagerFactory = metaStoreManagerFactory;
this.userSecretsManagerFactory = userSecretsManagerFactory;
@@ -132,6 +136,7 @@ public class PolarisServiceImpl
UserSecretsManager userSecretsManager =
userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);
return new PolarisAdminService(
+ diagnostics,
callContext,
resolutionManifestFactory,
metaStoreManager,
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 a27d57476..5783c8b82 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
@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
import org.apache.iceberg.exceptions.NotAuthorizedException;
import org.apache.iceberg.exceptions.ServiceFailureException;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.PolarisEntity;
@@ -52,6 +53,7 @@ import org.slf4j.LoggerFactory;
public class DefaultActiveRolesProvider implements ActiveRolesProvider {
private static final Logger LOGGER =
LoggerFactory.getLogger(DefaultActiveRolesProvider.class);
+ @Inject PolarisDiagnostics diagnostics;
@Inject CallContext callContext;
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@@ -77,13 +79,11 @@ public class DefaultActiveRolesProvider implements
ActiveRolesProvider {
PolarisCallContext polarisContext = callContext.getPolarisCallContext();
LoadGrantsResult principalGrantResults =
metaStoreManager.loadGrantsToGrantee(polarisContext, principal);
- polarisContext
- .getDiagServices()
- .check(
- principalGrantResults.isSuccess(),
- "Failed to resolve principal roles for principal name={} id={}",
- principal.getName(),
- principal.getId());
+ diagnostics.check(
+ principalGrantResults.isSuccess(),
+ "Failed to resolve principal roles for principal name={} id={}",
+ principal.getName(),
+ principal.getId());
if (!principalGrantResults.isSuccess()) {
LOGGER.warn(
"Failed to resolve principal roles for principal name={} id={}",
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/common/CatalogHandler.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/common/CatalogHandler.java
index 2d08ab2db..89a2e2230 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/common/CatalogHandler.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/common/CatalogHandler.java
@@ -72,6 +72,7 @@ public abstract class CatalogHandler {
protected final SecurityContext securityContext;
public CatalogHandler(
+ PolarisDiagnostics diagnostics,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
SecurityContext securityContext,
@@ -79,8 +80,8 @@ public abstract class CatalogHandler {
PolarisAuthorizer authorizer,
UserSecretsManager userSecretsManager,
Instance<ExternalCatalogFactory> externalCatalogFactories) {
+ this.diagnostics = diagnostics;
this.callContext = callContext;
- this.diagnostics = callContext.getPolarisCallContext().getDiagServices();
this.realmConfig = callContext.getRealmConfig();
this.resolutionManifestFactory = resolutionManifestFactory;
this.catalogName = catalogName;
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogAdapter.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogAdapter.java
index befe9907f..650c747dc 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogAdapter.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogAdapter.java
@@ -25,6 +25,7 @@ import jakarta.inject.Inject;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.SecurityContext;
import org.apache.iceberg.catalog.TableIdentifier;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
import org.apache.polaris.core.config.FeatureConfiguration;
@@ -50,6 +51,7 @@ public class GenericTableCatalogAdapter
private static final Logger LOGGER =
LoggerFactory.getLogger(GenericTableCatalogAdapter.class);
+ private final PolarisDiagnostics diagnostics;
private final RealmContext realmContext;
private final RealmConfig realmConfig;
private final CallContext callContext;
@@ -63,6 +65,7 @@ public class GenericTableCatalogAdapter
@Inject
public GenericTableCatalogAdapter(
+ PolarisDiagnostics diagnostics,
RealmContext realmContext,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
@@ -72,6 +75,7 @@ public class GenericTableCatalogAdapter
ReservedProperties reservedProperties,
UserSecretsManager userSecretsManager,
@Any Instance<ExternalCatalogFactory> externalCatalogFactories) {
+ this.diagnostics = diagnostics;
this.realmContext = realmContext;
this.callContext = callContext;
this.realmConfig = callContext.getRealmConfig();
@@ -91,6 +95,7 @@ public class GenericTableCatalogAdapter
validatePrincipal(securityContext);
return new GenericTableCatalogHandler(
+ diagnostics,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
index 8881fb19d..144557269 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/generic/GenericTableCatalogHandler.java
@@ -25,6 +25,7 @@ import java.util.LinkedHashSet;
import java.util.Map;
import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.catalog.TableIdentifier;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizableOperation;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
@@ -54,6 +55,7 @@ public class GenericTableCatalogHandler extends
CatalogHandler {
private GenericTableCatalog genericTableCatalog;
public GenericTableCatalogHandler(
+ PolarisDiagnostics diagnostics,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
PolarisMetaStoreManager metaStoreManager,
@@ -63,6 +65,7 @@ public class GenericTableCatalogHandler extends
CatalogHandler {
UserSecretsManager userSecretsManager,
Instance<ExternalCatalogFactory> externalCatalogFactories) {
super(
+ diagnostics,
callContext,
resolutionManifestFactory,
securityContext,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
index 03aa41c80..a8428873d 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java
@@ -88,6 +88,7 @@ import org.apache.iceberg.view.ViewOperations;
import org.apache.iceberg.view.ViewProperties;
import org.apache.iceberg.view.ViewUtil;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.admin.model.StorageConfigInfo;
import org.apache.polaris.core.catalog.PolarisCatalogHelpers;
import org.apache.polaris.core.config.BehaviorChangeConfiguration;
@@ -166,6 +167,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
||
isStorageProviderRetryableException(Throwables.getRootCause(ex)));
};
+ private final PolarisDiagnostics diagnostics;
private final StorageCredentialCache storageCredentialCache;
private final ResolverFactory resolverFactory;
private final CallContext callContext;
@@ -196,6 +198,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
* @param taskExecutor Executor we use to register cleanup task handlers
*/
public IcebergCatalog(
+ PolarisDiagnostics diagnostics,
StorageCredentialCache storageCredentialCache,
ResolverFactory resolverFactory,
PolarisMetaStoreManager metaStoreManager,
@@ -205,6 +208,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
TaskExecutor taskExecutor,
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener) {
+ this.diagnostics = diagnostics;
this.storageCredentialCache = storageCredentialCache;
this.resolverFactory = resolverFactory;
this.callContext = callContext;
@@ -364,7 +368,7 @@ public class IcebergCatalog extends BaseMetastoreViewCatalog
"Namespace does not exist: %s", tableIdentifier.namespace());
}
List<PolarisEntity> namespacePath = resolvedNamespace.getRawFullPath();
- String namespaceLocation = resolveLocationForPath(callContext,
namespacePath);
+ String namespaceLocation = resolveLocationForPath(diagnostics,
namespacePath);
return SLASH.join(namespaceLocation, tableIdentifier.name());
}
}
@@ -528,14 +532,14 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
? getResolvedParentNamespace(namespace).getRawFullPath()
:
List.of(resolvedEntityView.getResolvedReferenceCatalogEntity().getRawLeafEntity());
- String parentLocation = resolveLocationForPath(callContext, parentPath);
+ String parentLocation = resolveLocationForPath(diagnostics, parentPath);
return parentLocation + "/" + namespace.level(namespace.length() - 1);
}
}
private static @Nonnull String resolveLocationForPath(
- @Nonnull CallContext callContext, List<PolarisEntity> parentPath) {
+ @Nonnull PolarisDiagnostics diagnostics, List<PolarisEntity> parentPath)
{
// always take the first object. If it has the base-location, stop there
AtomicBoolean foundBaseLocation = new AtomicBoolean(false);
return parentPath.reversed().stream()
@@ -548,24 +552,21 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
.toList()
.reversed()
.stream()
- .map(entity -> baseLocation(callContext, entity))
+ .map(entity -> baseLocation(diagnostics, entity))
.map(IcebergCatalog::stripLeadingTrailingSlash)
.collect(Collectors.joining("/"));
}
private static @Nullable String baseLocation(
- @Nonnull CallContext callContext, PolarisEntity entity) {
+ @Nonnull PolarisDiagnostics diagnostics, PolarisEntity entity) {
if (entity.getType().equals(PolarisEntityType.CATALOG)) {
CatalogEntity catEntity = CatalogEntity.of(entity);
String catalogDefaultBaseLocation = catEntity.getBaseLocation();
- callContext
- .getPolarisCallContext()
- .getDiagServices()
- .checkNotNull(
- catalogDefaultBaseLocation,
- "Tried to resolve location with catalog with null default base
location",
- "catalog = {}",
- catEntity);
+ diagnostics.checkNotNull(
+ catalogDefaultBaseLocation,
+ "Tried to resolve location with catalog with null default base
location",
+ "catalog = {}",
+ catEntity);
return catalogDefaultBaseLocation;
} else {
String baseLocation =
@@ -574,14 +575,11 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
return baseLocation;
} else {
String entityName = entity.getName();
- callContext
- .getPolarisCallContext()
- .getDiagServices()
- .checkNotNull(
- entityName,
- "Tried to resolve location with entity without base location
or name",
- "entity = {}",
- entity);
+ diagnostics.checkNotNull(
+ entityName,
+ "Tried to resolve location with entity without base location or
name",
+ "entity = {}",
+ entity);
return entityName;
}
}
@@ -1150,7 +1148,11 @@ public class IcebergCatalog extends
BaseMetastoreViewCatalog
siblingTables.size() + siblingNamespaces.size());
PolarisResolutionManifest resolutionManifest =
new PolarisResolutionManifest(
- callContext, resolverFactory, securityContext,
parentPath.getFirst().getName());
+ diagnostics,
+ callContext,
+ resolverFactory,
+ securityContext,
+ parentPath.getFirst().getName());
siblingTables.forEach(
tbl ->
resolutionManifest.addPath(
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
index 860476cf8..1b0ea9b02 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java
@@ -61,6 +61,7 @@ import org.apache.iceberg.rest.requests.UpdateTableRequest;
import org.apache.iceberg.rest.responses.ConfigResponse;
import org.apache.iceberg.rest.responses.ImmutableLoadCredentialsResponse;
import org.apache.iceberg.rest.responses.LoadTableResponse;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
@@ -138,6 +139,7 @@ public class IcebergCatalogAdapter
.add(Endpoint.create("POST", ResourcePaths.V1_TRANSACTIONS_COMMIT))
.build();
+ private final PolarisDiagnostics diagnostics;
private final RealmContext realmContext;
private final CallContext callContext;
private final RealmConfig realmConfig;
@@ -154,6 +156,7 @@ public class IcebergCatalogAdapter
@Inject
public IcebergCatalogAdapter(
+ PolarisDiagnostics diagnostics,
RealmContext realmContext,
CallContext callContext,
CallContextCatalogFactory catalogFactory,
@@ -166,6 +169,7 @@ public class IcebergCatalogAdapter
ReservedProperties reservedProperties,
CatalogHandlerUtils catalogHandlerUtils,
@Any Instance<ExternalCatalogFactory> externalCatalogFactories) {
+ this.diagnostics = diagnostics;
this.realmContext = realmContext;
this.callContext = callContext;
this.realmConfig = callContext.getRealmConfig();
@@ -206,6 +210,7 @@ public class IcebergCatalogAdapter
validatePrincipal(securityContext);
return new IcebergCatalogHandler(
+ diagnostics,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
index 57b8a990a..694858c45 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogHandler.java
@@ -73,6 +73,7 @@ import org.apache.iceberg.rest.responses.ListTablesResponse;
import org.apache.iceberg.rest.responses.LoadTableResponse;
import org.apache.iceberg.rest.responses.LoadViewResponse;
import org.apache.iceberg.rest.responses.UpdateNamespacePropertiesResponse;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizableOperation;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
@@ -137,6 +138,7 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
public static final String SNAPSHOTS_REFS = "refs";
public IcebergCatalogHandler(
+ PolarisDiagnostics diagnostics,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
PolarisMetaStoreManager metaStoreManager,
@@ -149,6 +151,7 @@ public class IcebergCatalogHandler extends CatalogHandler
implements AutoCloseab
CatalogHandlerUtils catalogHandlerUtils,
Instance<ExternalCatalogFactory> externalCatalogFactories) {
super(
+ diagnostics,
callContext,
resolutionManifestFactory,
securityContext,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogAdapter.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogAdapter.java
index b2fa94f49..98bb3d9f1 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogAdapter.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogAdapter.java
@@ -26,6 +26,7 @@ import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.SecurityContext;
import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.rest.RESTUtil;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
import org.apache.polaris.core.config.FeatureConfiguration;
@@ -54,6 +55,7 @@ import org.slf4j.LoggerFactory;
public class PolicyCatalogAdapter implements PolarisCatalogPolicyApiService,
CatalogAdapter {
private static final Logger LOGGER =
LoggerFactory.getLogger(PolicyCatalogAdapter.class);
+ private final PolarisDiagnostics diagnostics;
private final RealmContext realmContext;
private final RealmConfig realmConfig;
private final CallContext callContext;
@@ -66,6 +68,7 @@ public class PolicyCatalogAdapter implements
PolarisCatalogPolicyApiService, Cat
@Inject
public PolicyCatalogAdapter(
+ PolarisDiagnostics diagnostics,
RealmContext realmContext,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
@@ -74,6 +77,7 @@ public class PolicyCatalogAdapter implements
PolarisCatalogPolicyApiService, Cat
CatalogPrefixParser prefixParser,
UserSecretsManager userSecretsManager,
@Any Instance<ExternalCatalogFactory> externalCatalogFactories) {
+ this.diagnostics = diagnostics;
this.realmContext = realmContext;
this.callContext = callContext;
this.realmConfig = callContext.getRealmConfig();
@@ -91,6 +95,7 @@ public class PolicyCatalogAdapter implements
PolarisCatalogPolicyApiService, Cat
validatePrincipal(securityContext);
return new PolicyCatalogHandler(
+ diagnostics,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandler.java
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandler.java
index 21027a342..96012a2c0 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandler.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandler.java
@@ -30,6 +30,7 @@ import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.exceptions.NoSuchNamespaceException;
import org.apache.iceberg.exceptions.NoSuchTableException;
import org.apache.iceberg.exceptions.NotFoundException;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizableOperation;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.catalog.ExternalCatalogFactory;
@@ -63,6 +64,7 @@ public class PolicyCatalogHandler extends CatalogHandler {
private PolicyCatalog policyCatalog;
public PolicyCatalogHandler(
+ PolarisDiagnostics diagnostics,
CallContext callContext,
ResolutionManifestFactory resolutionManifestFactory,
PolarisMetaStoreManager metaStoreManager,
@@ -72,6 +74,7 @@ public class PolicyCatalogHandler extends CatalogHandler {
UserSecretsManager userSecretsManager,
Instance<ExternalCatalogFactory> externalCatalogFactories) {
super(
+ diagnostics,
callContext,
resolutionManifestFactory,
securityContext,
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/config/ServiceProducers.java
b/runtime/service/src/main/java/org/apache/polaris/service/config/ServiceProducers.java
index 3cf0c0dba..4d954258f 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/config/ServiceProducers.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/config/ServiceProducers.java
@@ -103,13 +103,14 @@ public class ServiceProducers {
@Produces
@ApplicationScoped
public StorageCredentialCache storageCredentialCache(
- StorageCredentialCacheConfig storageCredentialCacheConfig) {
- return new StorageCredentialCache(storageCredentialCacheConfig);
+ PolarisDiagnostics diagnostics, StorageCredentialCacheConfig
storageCredentialCacheConfig) {
+ return new StorageCredentialCache(diagnostics,
storageCredentialCacheConfig);
}
@Produces
@ApplicationScoped
public ResolverFactory resolverFactory(
+ PolarisDiagnostics diagnostics,
MetaStoreManagerFactory metaStoreManagerFactory,
PolarisMetaStoreManager polarisMetaStoreManager) {
return (callContext, securityContext, referenceCatalogName) -> {
@@ -117,6 +118,7 @@ public class ServiceProducers {
metaStoreManagerFactory.getOrCreateEntityCache(
callContext.getRealmContext(), callContext.getRealmConfig());
return new Resolver(
+ diagnostics,
callContext.getPolarisCallContext(),
polarisMetaStoreManager,
securityContext,
@@ -127,8 +129,9 @@ public class ServiceProducers {
@Produces
@ApplicationScoped
- public ResolutionManifestFactory resolutionManifestFactory(ResolverFactory
resolverFactory) {
- return new ResolutionManifestFactoryImpl(resolverFactory);
+ public ResolutionManifestFactory resolutionManifestFactory(
+ PolarisDiagnostics diagnostics, ResolverFactory resolverFactory) {
+ return new ResolutionManifestFactoryImpl(diagnostics, resolverFactory);
}
@Produces
@@ -149,11 +152,10 @@ public class ServiceProducers {
@RequestScoped
public CallContext polarisCallContext(
RealmContext realmContext,
- PolarisDiagnostics diagServices,
PolarisConfigurationStore configurationStore,
MetaStoreManagerFactory metaStoreManagerFactory) {
BasePersistence metaStoreSession =
metaStoreManagerFactory.getOrCreateSession(realmContext);
- return new PolarisCallContext(realmContext, metaStoreSession,
diagServices, configurationStore);
+ return new PolarisCallContext(realmContext, metaStoreSession,
configurationStore);
}
@Produces
diff --git
a/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
b/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
index 31360ae31..9cd8fd4c3 100644
---
a/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
+++
b/runtime/service/src/main/java/org/apache/polaris/service/context/catalog/PolarisCallContextCatalogFactory.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.iceberg.CatalogProperties;
import org.apache.iceberg.catalog.Catalog;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisPrincipal;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.entity.CatalogEntity;
@@ -45,6 +46,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
private static final Logger LOGGER =
LoggerFactory.getLogger(PolarisCallContextCatalogFactory.class);
+ private final PolarisDiagnostics diagnostics;
private final TaskExecutor taskExecutor;
private final FileIOFactory fileIOFactory;
private final StorageCredentialCache storageCredentialCache;
@@ -54,12 +56,14 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
@Inject
public PolarisCallContextCatalogFactory(
+ PolarisDiagnostics diagnostics,
StorageCredentialCache storageCredentialCache,
ResolverFactory resolverFactory,
MetaStoreManagerFactory metaStoreManagerFactory,
TaskExecutor taskExecutor,
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener) {
+ this.diagnostics = diagnostics;
this.storageCredentialCache = storageCredentialCache;
this.resolverFactory = resolverFactory;
this.metaStoreManagerFactory = metaStoreManagerFactory;
@@ -84,6 +88,7 @@ public class PolarisCallContextCatalogFactory implements
CallContextCatalogFacto
IcebergCatalog catalogInstance =
new IcebergCatalog(
+ diagnostics,
storageCredentialCache,
resolverFactory,
metaStoreManagerFactory.getOrCreateMetaStoreManager(context.getRealmContext()),
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 088a8ae1e..f69e18b7d 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
@@ -237,6 +237,7 @@ public class ManagementServiceTest {
private PolarisAdminService setupPolarisAdminService(
PolarisMetaStoreManager metaStoreManager, PolarisCallContext
callContext) {
return new PolarisAdminService(
+ services.polarisDiagnostics(),
callContext,
services.resolutionManifestFactory(),
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceAuthzTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceAuthzTest.java
index 9294d853f..ad5fa0ce6 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceAuthzTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceAuthzTest.java
@@ -49,6 +49,7 @@ public class PolarisAdminServiceAuthzTest extends
PolarisAuthzTestBase {
final PolarisPrincipal authenticatedPrincipal =
PolarisPrincipal.of(principalEntity, activatedPrincipalRoles);
return new PolarisAdminService(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceTest.java
index 136d6bf25..60e055942 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAdminServiceTest.java
@@ -29,6 +29,7 @@ import java.util.List;
import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.exceptions.NotFoundException;
import org.apache.polaris.core.PolarisCallContext;
+import org.apache.polaris.core.PolarisDefaultDiagServiceImpl;
import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.auth.PolarisAuthorizer;
import org.apache.polaris.core.auth.PolarisPrincipal;
@@ -52,10 +53,9 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class PolarisAdminServiceTest {
-
+ private PolarisDiagnostics diagnostics = new PolarisDefaultDiagServiceImpl();
@Mock private CallContext callContext;
@Mock private PolarisCallContext polarisCallContext;
- @Mock private PolarisDiagnostics polarisDiagnostics;
@Mock private ResolutionManifestFactory resolutionManifestFactory;
@Mock private PolarisMetaStoreManager metaStoreManager;
@Mock private UserSecretsManager userSecretsManager;
@@ -73,10 +73,10 @@ public class PolarisAdminServiceTest {
MockitoAnnotations.openMocks(this);
when(securityContext.getUserPrincipal()).thenReturn(authenticatedPrincipal);
when(callContext.getPolarisCallContext()).thenReturn(polarisCallContext);
- when(polarisCallContext.getDiagServices()).thenReturn(polarisDiagnostics);
adminService =
new PolarisAdminService(
+ diagnostics,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
index 2717ee71c..fbdf06661 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisAuthzTestBase.java
@@ -230,10 +230,7 @@ public abstract class PolarisAuthzTestBase {
polarisContext =
new PolarisCallContext(
- realmContext,
- managerFactory.getOrCreateSession(realmContext),
- diagServices,
- configurationStore);
+ realmContext, managerFactory.getOrCreateSession(realmContext),
configurationStore);
callContext = polarisContext;
realmConfig = polarisContext.getRealmConfig();
@@ -246,6 +243,7 @@ public abstract class PolarisAuthzTestBase {
this.adminService =
new PolarisAdminService(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
@@ -453,6 +451,7 @@ public abstract class PolarisAuthzTestBase {
callContext, resolutionManifestFactory, securityContext,
CATALOG_NAME);
this.baseCatalog =
new IcebergCatalog(
+ diagServices,
storageCredentialCache,
resolverFactory,
metaStoreManager,
@@ -479,11 +478,12 @@ public abstract class PolarisAuthzTestBase {
@SuppressWarnings("unused") // Required by CDI
protected TestPolarisCallContextCatalogFactory() {
- this(null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null);
}
@Inject
public TestPolarisCallContextCatalogFactory(
+ PolarisDiagnostics diagnostics,
StorageCredentialCache storageCredentialCache,
ResolverFactory resolverFactory,
MetaStoreManagerFactory metaStoreManagerFactory,
@@ -491,6 +491,7 @@ public abstract class PolarisAuthzTestBase {
FileIOFactory fileIOFactory,
PolarisEventListener polarisEventListener) {
super(
+ diagnostics,
storageCredentialCache,
resolverFactory,
metaStoreManagerFactory,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisServiceImplTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisServiceImplTest.java
index 75adb59f5..09929bac2 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisServiceImplTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/admin/PolarisServiceImplTest.java
@@ -24,6 +24,8 @@ import static org.mockito.Mockito.when;
import java.lang.reflect.Method;
import java.util.List;
+import org.apache.polaris.core.PolarisDefaultDiagServiceImpl;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.admin.model.AuthenticationParameters;
import org.apache.polaris.core.admin.model.Catalog;
import org.apache.polaris.core.admin.model.CatalogProperties;
@@ -46,6 +48,7 @@ import org.mockito.Mockito;
public class PolarisServiceImplTest {
+ private final PolarisDiagnostics diagnostics = new
PolarisDefaultDiagServiceImpl();
private ResolutionManifestFactory resolutionManifestFactory;
private MetaStoreManagerFactory metaStoreManagerFactory;
private UserSecretsManagerFactory userSecretsManagerFactory;
@@ -75,6 +78,7 @@ public class PolarisServiceImplTest {
polarisService =
new PolarisServiceImpl(
+ diagnostics,
resolutionManifestFactory,
metaStoreManagerFactory,
userSecretsManagerFactory,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTRSAKeyPairTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTRSAKeyPairTest.java
index 778a27197..be4276598 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTRSAKeyPairTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTRSAKeyPairTest.java
@@ -53,8 +53,7 @@ public class JWTRSAKeyPairTest {
final String clientId = "test-client-id";
final String scope = "PRINCIPAL_ROLE:TEST";
- PolarisCallContext polarisCallContext =
- new PolarisCallContext(null, null, null, configurationStore);
+ PolarisCallContext polarisCallContext = new PolarisCallContext(null, null,
configurationStore);
PolarisMetaStoreManager metastoreManager =
Mockito.mock(PolarisMetaStoreManager.class);
String mainSecret = "client-secret";
PolarisPrincipalSecrets principalSecrets =
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTSymmetricKeyGeneratorTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTSymmetricKeyGeneratorTest.java
index ac870e6f8..43efedb6a 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTSymmetricKeyGeneratorTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/auth/JWTSymmetricKeyGeneratorTest.java
@@ -41,7 +41,7 @@ public class JWTSymmetricKeyGeneratorTest {
/** Sanity test to verify that we can generate a token */
@Test
public void testJWTSymmetricKeyGenerator() {
- PolarisCallContext polarisCallContext = new PolarisCallContext(null, null,
null, null);
+ PolarisCallContext polarisCallContext = new PolarisCallContext(null, null,
null);
PolarisMetaStoreManager metastoreManager =
Mockito.mock(PolarisMetaStoreManager.class);
String mainSecret = "test_secret";
String clientId = "test_client_id";
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 232302b80..de4e56992 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
@@ -152,7 +152,6 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
- diagServices,
configurationStore);
realmConfig = polarisContext.getRealmConfig();
@@ -169,6 +168,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
adminService =
new PolarisAdminService(
+ diagServices,
polarisContext,
resolutionManifestFactory,
metaStoreManager,
@@ -235,6 +235,7 @@ public abstract class
AbstractPolarisGenericTableCatalogTest {
this.genericTableCatalog.initialize(CATALOG_NAME, Map.of());
this.icebergCatalog =
new IcebergCatalog(
+ diagServices,
storageCredentialCache,
resolverFactory,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/PolarisGenericTableCatalogHandlerAuthzTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/PolarisGenericTableCatalogHandlerAuthzTest.java
index afa0f440f..b1296177b 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/PolarisGenericTableCatalogHandlerAuthzTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/generic/PolarisGenericTableCatalogHandlerAuthzTest.java
@@ -46,6 +46,7 @@ public class PolarisGenericTableCatalogHandlerAuthzTest
extends PolarisAuthzTest
PolarisPrincipal authenticatedPrincipal =
PolarisPrincipal.of(principalEntity, activatedPrincipalRoles);
return new GenericTableCatalogHandler(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
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 fca6a969e..38811c39c 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
@@ -257,7 +257,9 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
@Nullable
protected abstract EntityCache createEntityCache(
- RealmConfig realmConfig, PolarisMetaStoreManager metaStoreManager);
+ PolarisDiagnostics diagnostics,
+ RealmConfig realmConfig,
+ PolarisMetaStoreManager metaStoreManager);
protected void bootstrapRealm(String realmName) {}
@@ -280,14 +282,14 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
- diagServices,
configurationStore);
realmConfig = polarisContext.getRealmConfig();
- EntityCache entityCache = createEntityCache(realmConfig, metaStoreManager);
+ EntityCache entityCache = createEntityCache(diagServices, realmConfig,
metaStoreManager);
resolverFactory =
(callContext, securityContext, referenceCatalogName) ->
new Resolver(
+ diagServices,
callContext.getPolarisCallContext(),
metaStoreManager,
securityContext,
@@ -295,7 +297,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
referenceCatalogName);
QuarkusMock.installMockForType(resolverFactory, ResolverFactory.class);
- resolutionManifestFactory = new
ResolutionManifestFactoryImpl(resolverFactory);
+ resolutionManifestFactory = new
ResolutionManifestFactoryImpl(diagServices, resolverFactory);
PrincipalEntity rootPrincipal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
@@ -310,6 +312,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
adminService =
new PolarisAdminService(
+ diagServices,
polarisContext,
resolutionManifestFactory,
metaStoreManager,
@@ -439,6 +442,7 @@ public abstract class AbstractIcebergCatalogTest extends
CatalogTests<IcebergCat
polarisContext, resolutionManifestFactory, securityContext,
catalogName);
TaskExecutor taskExecutor = Mockito.mock(TaskExecutor.class);
return new IcebergCatalog(
+ diagServices,
storageCredentialCache,
resolverFactory,
metaStoreManager,
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 51c1d08f5..d4edde2c4 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
@@ -162,7 +162,6 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
- diagServices,
configurationStore);
realmConfig = polarisContext.getRealmConfig();
@@ -179,6 +178,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
PolarisAdminService adminService =
new PolarisAdminService(
+ diagServices,
polarisContext,
resolutionManifestFactory,
metaStoreManager,
@@ -213,6 +213,7 @@ public abstract class AbstractIcebergCatalogViewTest
extends ViewCatalogTests<Ic
testPolarisEventListener = (TestPolarisEventListener) polarisEventListener;
this.catalog =
new IcebergCatalog(
+ diagServices,
storageCredentialCache,
resolverFactory,
metaStoreManager,
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 676a6d635..5211a514a 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
@@ -101,6 +101,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
PolarisPrincipal authenticatedPrincipal =
PolarisPrincipal.of(principalEntity, activatedPrincipalRoles);
return new IcebergCatalogHandler(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
@@ -240,6 +241,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
Set.of(PRINCIPAL_ROLE1, PRINCIPAL_ROLE2));
IcebergCatalogHandler wrapper =
new IcebergCatalogHandler(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
@@ -276,6 +278,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
PrincipalEntity.of(refreshPrincipal), Set.of(PRINCIPAL_ROLE1,
PRINCIPAL_ROLE2));
IcebergCatalogHandler refreshedWrapper =
new IcebergCatalogHandler(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
@@ -1765,6 +1768,7 @@ public class IcebergCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
PolarisCallContextCatalogFactory factory =
new PolarisCallContextCatalogFactory(
+ diagServices,
storageCredentialCache,
resolverFactory,
managerFactory,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalNoEntityCacheTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalNoEntityCacheTest.java
index bf8298e3c..1060b6a01 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalNoEntityCacheTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalNoEntityCacheTest.java
@@ -21,6 +21,7 @@ package org.apache.polaris.service.catalog.iceberg;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile;
import jakarta.annotation.Nullable;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.cache.InMemoryEntityCache;
@@ -32,7 +33,9 @@ public class IcebergCatalogRelationalNoEntityCacheTest
extends AbstractIcebergCa
@Nullable
@Override
protected InMemoryEntityCache createEntityCache(
- RealmConfig realmConfig, PolarisMetaStoreManager metaStoreManager) {
+ PolarisDiagnostics diagnostics,
+ RealmConfig realmConfig,
+ PolarisMetaStoreManager metaStoreManager) {
return null;
}
}
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalWithEntityCacheTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalWithEntityCacheTest.java
index 881f12eb5..c589e913e 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalWithEntityCacheTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogRelationalWithEntityCacheTest.java
@@ -21,6 +21,7 @@ package org.apache.polaris.service.catalog.iceberg;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile;
import jakarta.annotation.Nullable;
+import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.config.RealmConfig;
import org.apache.polaris.core.persistence.PolarisMetaStoreManager;
import org.apache.polaris.core.persistence.cache.InMemoryEntityCache;
@@ -32,7 +33,9 @@ public class IcebergCatalogRelationalWithEntityCacheTest
extends AbstractIceberg
@Nullable
@Override
protected InMemoryEntityCache createEntityCache(
- RealmConfig realmConfig, PolarisMetaStoreManager metaStoreManager) {
- return new InMemoryEntityCache(realmConfig, metaStoreManager);
+ PolarisDiagnostics diagnostics,
+ RealmConfig realmConfig,
+ PolarisMetaStoreManager metaStoreManager) {
+ return new InMemoryEntityCache(diagnostics, realmConfig, metaStoreManager);
}
}
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 5c72f1506..03fd51d46 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
@@ -225,6 +225,7 @@ public class FileIOFactoryTest {
CATALOG_NAME);
IcebergCatalog polarisCatalog =
new IcebergCatalog(
+ services.polarisDiagnostics(),
services.storageCredentialCache(),
services.resolverFactory(),
services.metaStoreManagerFactory().getOrCreateMetaStoreManager(realmContext),
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 bf514e127..e627f3cf5 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
@@ -173,7 +173,6 @@ public abstract class AbstractPolicyCatalogTest {
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
- diagServices,
configurationStore);
realmConfig = polarisContext.getRealmConfig();
@@ -190,6 +189,7 @@ public abstract class AbstractPolicyCatalogTest {
adminService =
new PolarisAdminService(
+ diagServices,
polarisContext,
resolutionManifestFactory,
metaStoreManager,
@@ -252,6 +252,7 @@ public abstract class AbstractPolicyCatalogTest {
this.policyCatalog = new PolicyCatalog(metaStoreManager, polarisContext,
passthroughView);
this.icebergCatalog =
new IcebergCatalog(
+ diagServices,
storageCredentialCache,
resolverFactory,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandlerAuthzTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandlerAuthzTest.java
index 3022ffdb0..990a9cff2 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandlerAuthzTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/catalog/policy/PolicyCatalogHandlerAuthzTest.java
@@ -51,6 +51,7 @@ public class PolicyCatalogHandlerAuthzTest extends
PolarisAuthzTestBase {
PolarisPrincipal authenticatedPrincipal =
PolarisPrincipal.of(principalEntity, activatedPrincipalRoles);
return new PolicyCatalogHandler(
+ diagServices,
callContext,
resolutionManifestFactory,
metaStoreManager,
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
index 2ab24c396..326664620 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/BatchFileCleanupTaskHandlerTest.java
@@ -43,7 +43,6 @@ import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.inmemory.InMemoryFileIO;
import org.apache.iceberg.io.FileIO;
import org.apache.polaris.core.PolarisCallContext;
-import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.AsyncTaskType;
import org.apache.polaris.core.entity.TaskEntity;
@@ -54,7 +53,6 @@ import org.junit.jupiter.api.Test;
@QuarkusTest
public class BatchFileCleanupTaskHandlerTest {
- @Inject PolarisDiagnostics diagnostics;
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
private final RealmContext realmContext = () -> "realmName";
@@ -64,7 +62,7 @@ public class BatchFileCleanupTaskHandlerTest {
private PolarisCallContext newCallContext() {
BasePersistence metaStore =
metaStoreManagerFactory.getOrCreateSession(realmContext);
- return new PolarisCallContext(realmContext, metaStore, diagnostics);
+ return new PolarisCallContext(realmContext, metaStore);
}
@Test
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
b/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
index 828991798..99eacdbe2 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/task/ManifestFileCleanupTaskHandlerTest.java
@@ -39,7 +39,6 @@ import org.apache.iceberg.io.FileIO;
import org.apache.iceberg.io.OutputFile;
import org.apache.iceberg.io.PositionOutputStream;
import org.apache.polaris.core.PolarisCallContext;
-import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.context.RealmContext;
import org.apache.polaris.core.entity.AsyncTaskType;
import org.apache.polaris.core.entity.TaskEntity;
@@ -50,7 +49,6 @@ import org.junit.jupiter.api.Test;
@QuarkusTest
class ManifestFileCleanupTaskHandlerTest {
- @Inject PolarisDiagnostics diagnostics;
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
private final RealmContext realmContext = () -> "realmName";
@@ -61,7 +59,7 @@ class ManifestFileCleanupTaskHandlerTest {
private PolarisCallContext newCallContext() {
BasePersistence metaStore =
metaStoreManagerFactory.getOrCreateSession(realmContext);
- return new PolarisCallContext(realmContext, metaStore, diagnostics);
+ return new PolarisCallContext(realmContext, metaStore);
}
@Test
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 daedcb534..bcccff266 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
@@ -38,7 +38,6 @@ import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.inmemory.InMemoryFileIO;
import org.apache.iceberg.io.FileIO;
import org.apache.polaris.core.PolarisCallContext;
-import org.apache.polaris.core.PolarisDiagnostics;
import org.apache.polaris.core.config.PolarisConfigurationStore;
import org.apache.polaris.core.context.CallContext;
import org.apache.polaris.core.context.RealmContext;
@@ -61,7 +60,6 @@ class TableCleanupTaskHandlerTest {
@Inject Clock clock;
@Inject MetaStoreManagerFactory metaStoreManagerFactory;
@Inject PolarisConfigurationStore configurationStore;
- @Inject PolarisDiagnostics diagServices;
private CallContext callContext;
@@ -81,7 +79,6 @@ class TableCleanupTaskHandlerTest {
new PolarisCallContext(
realmContext,
metaStoreManagerFactory.getOrCreateSession(realmContext),
- diagServices,
configurationStore);
}
diff --git
a/runtime/service/src/test/java/org/apache/polaris/service/test/PolarisIntegrationTestFixture.java
b/runtime/service/src/test/java/org/apache/polaris/service/test/PolarisIntegrationTestFixture.java
index eb5dd948d..b9e719122 100644
---
a/runtime/service/src/test/java/org/apache/polaris/service/test/PolarisIntegrationTestFixture.java
+++
b/runtime/service/src/test/java/org/apache/polaris/service/test/PolarisIntegrationTestFixture.java
@@ -109,8 +109,7 @@ public class PolarisIntegrationTestFixture {
BasePersistence metaStoreSession =
helper.metaStoreManagerFactory.getOrCreateSession(realmContext);
PolarisCallContext polarisContext =
- new PolarisCallContext(
- realmContext, metaStoreSession, helper.diagServices,
helper.configurationStore);
+ new PolarisCallContext(realmContext, metaStoreSession,
helper.configurationStore);
PolarisMetaStoreManager metaStoreManager =
helper.metaStoreManagerFactory.getOrCreateMetaStoreManager(realmContext);
PrincipalEntity principal =
metaStoreManager.findRootPrincipal(polarisContext).orElseThrow();
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 2cb9a483d..93bf2c538 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
@@ -124,7 +124,7 @@ public record TestServices(
public static class Builder {
private Clock clock = Clock.systemUTC();
- private PolarisDiagnostics polarisDiagnostics = new
PolarisDefaultDiagServiceImpl();
+ private PolarisDiagnostics diagnostics = new
PolarisDefaultDiagServiceImpl();
private RealmContext realmContext = TEST_REALM;
private Map<String, Object> config = Map.of();
private StsClient stsClient = Mockito.mock(StsClient.class);
@@ -164,19 +164,18 @@ public record TestServices(
() -> GoogleCredentials.create(new AccessToken(GCP_ACCESS_TOKEN,
new Date())));
InMemoryPolarisMetaStoreManagerFactory metaStoreManagerFactory =
new InMemoryPolarisMetaStoreManagerFactory(
- clock, polarisDiagnostics, storageIntegrationProvider);
+ clock, diagnostics, storageIntegrationProvider);
StorageCredentialCacheConfig storageCredentialCacheConfig = () -> 10_000;
StorageCredentialCache storageCredentialCache =
- new StorageCredentialCache(storageCredentialCacheConfig);
+ new StorageCredentialCache(diagnostics,
storageCredentialCacheConfig);
UserSecretsManagerFactory userSecretsManagerFactory =
new UnsafeInMemorySecretsManagerFactory();
BasePersistence metaStoreSession =
metaStoreManagerFactory.getOrCreateSession(realmContext);
CallContext callContext =
- new PolarisCallContext(
- realmContext, metaStoreSession, polarisDiagnostics,
configurationStore);
+ new PolarisCallContext(realmContext, metaStoreSession,
configurationStore);
RealmConfig realmConfig = callContext.getRealmConfig();
PolarisMetaStoreManager metaStoreManager =
@@ -187,6 +186,7 @@ public record TestServices(
ResolverFactory resolverFactory =
(_callContext, securityContext, referenceCatalogName) ->
new Resolver(
+ diagnostics,
_callContext.getPolarisCallContext(),
metaStoreManager,
securityContext,
@@ -194,7 +194,7 @@ public record TestServices(
referenceCatalogName);
ResolutionManifestFactory resolutionManifestFactory =
- new ResolutionManifestFactoryImpl(resolverFactory);
+ new ResolutionManifestFactoryImpl(diagnostics, resolverFactory);
UserSecretsManager userSecretsManager =
userSecretsManagerFactory.getOrCreateUserSecretsManager(realmContext);
@@ -206,6 +206,7 @@ public record TestServices(
PolarisEventListener polarisEventListener = new
TestPolarisEventListener();
CallContextCatalogFactory callContextFactory =
new PolarisCallContextCatalogFactory(
+ diagnostics,
storageCredentialCache,
resolverFactory,
metaStoreManagerFactory,
@@ -224,6 +225,7 @@ public record TestServices(
IcebergCatalogAdapter catalogService =
new IcebergCatalogAdapter(
+ diagnostics,
realmContext,
callContext,
callContextFactory,
@@ -278,6 +280,7 @@ public record TestServices(
PolarisCatalogsApi catalogsApi =
new PolarisCatalogsApi(
new PolarisServiceImpl(
+ diagnostics,
resolutionManifestFactory,
metaStoreManagerFactory,
userSecretsManagerFactory,
@@ -292,7 +295,7 @@ public record TestServices(
restConfigurationApi,
catalogService,
configurationStore,
- polarisDiagnostics,
+ diagnostics,
storageCredentialCache,
resolverFactory,
resolutionManifestFactory,
@@ -308,6 +311,6 @@ public record TestServices(
public PolarisCallContext newCallContext() {
BasePersistence metaStore =
metaStoreManagerFactory.getOrCreateSession(realmContext);
- return new PolarisCallContext(realmContext, metaStore, polarisDiagnostics,
configurationStore);
+ return new PolarisCallContext(realmContext, metaStore, configurationStore);
}
}