Skip to content

Commit cdb58e5

Browse files
authored
Remove CallContext from IcebergPropertiesValidation (#2338)
it is sufficient to pass the `RealmConfig`. same applies to helpers in `PolarisEndpoints`.
1 parent 027d80b commit cdb58e5

File tree

4 files changed

+21
-21
lines changed

4 files changed

+21
-21
lines changed

polaris-core/src/main/java/org/apache/polaris/core/rest/PolarisEndpoints.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.util.Set;
2323
import org.apache.iceberg.rest.Endpoint;
2424
import org.apache.polaris.core.config.FeatureConfiguration;
25-
import org.apache.polaris.core.context.CallContext;
25+
import org.apache.polaris.core.config.RealmConfig;
2626

2727
public class PolarisEndpoints {
2828
// Generic table endpoints
@@ -77,10 +77,9 @@ public class PolarisEndpoints {
7777
* Get the generic table endpoints. Returns GENERIC_TABLE_ENDPOINTS if ENABLE_GENERIC_TABLES is
7878
* set to true, otherwise, returns an empty set.
7979
*/
80-
public static Set<Endpoint> getSupportedGenericTableEndpoints(CallContext callContext) {
80+
public static Set<Endpoint> getSupportedGenericTableEndpoints(RealmConfig realmConfig) {
8181
// add the generic table endpoints as supported endpoints if generic table feature is enabled.
82-
boolean genericTableEnabled =
83-
callContext.getRealmConfig().getConfig(FeatureConfiguration.ENABLE_GENERIC_TABLES);
82+
boolean genericTableEnabled = realmConfig.getConfig(FeatureConfiguration.ENABLE_GENERIC_TABLES);
8483

8584
return genericTableEnabled ? GENERIC_TABLE_ENDPOINTS : ImmutableSet.of();
8685
}
@@ -89,9 +88,8 @@ public static Set<Endpoint> getSupportedGenericTableEndpoints(CallContext callCo
8988
* Get the policy store endpoints. Returns POLICY_ENDPOINTS if ENABLE_POLICY_STORE is set to true,
9089
* otherwise, returns an empty set
9190
*/
92-
public static Set<Endpoint> getSupportedPolicyEndpoints(CallContext callContext) {
93-
boolean policyStoreEnabled =
94-
callContext.getRealmConfig().getConfig(FeatureConfiguration.ENABLE_POLICY_STORE);
91+
public static Set<Endpoint> getSupportedPolicyEndpoints(RealmConfig realmConfig) {
92+
boolean policyStoreEnabled = realmConfig.getConfig(FeatureConfiguration.ENABLE_POLICY_STORE);
9593
return policyStoreEnabled ? POLICY_STORE_ENDPOINTS : ImmutableSet.of();
9694
}
9795
}

runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public void initialize(String name, Map<String, String> properties) {
256256
var storageConfigurationInfo = catalogEntity.getStorageConfigurationInfo();
257257
ioImplClassName =
258258
IcebergPropertiesValidation.determineFileIOClassName(
259-
callContext, properties, storageConfigurationInfo);
259+
callContext.getRealmConfig(), properties, storageConfigurationInfo);
260260

261261
if (ioImplClassName == null) {
262262
LOGGER.warn(

runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import org.apache.iceberg.rest.responses.LoadTableResponse;
6262
import org.apache.polaris.core.auth.AuthenticatedPolarisPrincipal;
6363
import org.apache.polaris.core.auth.PolarisAuthorizer;
64+
import org.apache.polaris.core.config.RealmConfig;
6465
import org.apache.polaris.core.context.CallContext;
6566
import org.apache.polaris.core.context.RealmContext;
6667
import org.apache.polaris.core.entity.PolarisEntity;
@@ -135,6 +136,7 @@ public class IcebergCatalogAdapter
135136

136137
private final RealmContext realmContext;
137138
private final CallContext callContext;
139+
private final RealmConfig realmConfig;
138140
private final CallContextCatalogFactory catalogFactory;
139141
private final ResolutionManifestFactory resolutionManifestFactory;
140142
private final ResolverFactory resolverFactory;
@@ -160,6 +162,7 @@ public IcebergCatalogAdapter(
160162
CatalogHandlerUtils catalogHandlerUtils) {
161163
this.realmContext = realmContext;
162164
this.callContext = callContext;
165+
this.realmConfig = callContext.getRealmConfig();
163166
this.catalogFactory = catalogFactory;
164167
this.resolutionManifestFactory = resolutionManifestFactory;
165168
this.resolverFactory = resolverFactory;
@@ -214,7 +217,7 @@ public Response createNamespace(
214217
CreateNamespaceRequest createNamespaceRequest,
215218
RealmContext realmContext,
216219
SecurityContext securityContext) {
217-
validateIcebergProperties(callContext, createNamespaceRequest.properties());
220+
validateIcebergProperties(realmConfig, createNamespaceRequest.properties());
218221
return withCatalog(
219222
securityContext,
220223
prefix,
@@ -306,7 +309,7 @@ public Response updateProperties(
306309
UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest,
307310
RealmContext realmContext,
308311
SecurityContext securityContext) {
309-
validateIcebergProperties(callContext, updateNamespacePropertiesRequest.updates());
312+
validateIcebergProperties(realmConfig, updateNamespacePropertiesRequest.updates());
310313
Namespace ns = decodeNamespace(namespace);
311314
UpdateNamespacePropertiesRequest revisedRequest =
312315
UpdateNamespacePropertiesRequest.builder()
@@ -341,7 +344,7 @@ public Response createTable(
341344
String accessDelegationMode,
342345
RealmContext realmContext,
343346
SecurityContext securityContext) {
344-
validateIcebergProperties(callContext, createTableRequest.properties());
347+
validateIcebergProperties(realmConfig, createTableRequest.properties());
345348
EnumSet<AccessDelegationMode> delegationModes =
346349
parseAccessDelegationModes(accessDelegationMode);
347350
Namespace ns = decodeNamespace(namespace);
@@ -516,7 +519,7 @@ public Response updateTable(
516519
commitTableRequest.updates().stream()
517520
.filter(MetadataUpdate.SetProperties.class::isInstance)
518521
.map(MetadataUpdate.SetProperties.class::cast)
519-
.forEach(setProperties -> validateIcebergProperties(callContext, setProperties.updated()));
522+
.forEach(setProperties -> validateIcebergProperties(realmConfig, setProperties.updated()));
520523

521524
UpdateTableRequest revisedRequest =
522525
UpdateTableRequest.create(
@@ -547,7 +550,7 @@ public Response createView(
547550
CreateViewRequest createViewRequest,
548551
RealmContext realmContext,
549552
SecurityContext securityContext) {
550-
validateIcebergProperties(callContext, createViewRequest.properties());
553+
validateIcebergProperties(realmConfig, createViewRequest.properties());
551554

552555
CreateViewRequest revisedRequest =
553556
ImmutableCreateViewRequest.copyOf(createViewRequest)
@@ -695,7 +698,7 @@ public Response commitTransaction(
695698
.flatMap(updateTableRequest -> updateTableRequest.updates().stream())
696699
.filter(MetadataUpdate.SetProperties.class::isInstance)
697700
.map(MetadataUpdate.SetProperties.class::cast)
698-
.forEach(setProperties -> validateIcebergProperties(callContext, setProperties.updated()));
701+
.forEach(setProperties -> validateIcebergProperties(realmConfig, setProperties.updated()));
699702

700703
CommitTransactionRequest revisedRequest =
701704
new CommitTransactionRequest(
@@ -791,8 +794,8 @@ public Response getConfig(
791794
.addAll(DEFAULT_ENDPOINTS)
792795
.addAll(VIEW_ENDPOINTS)
793796
.addAll(COMMIT_ENDPOINT)
794-
.addAll(PolarisEndpoints.getSupportedGenericTableEndpoints(callContext))
795-
.addAll(PolarisEndpoints.getSupportedPolicyEndpoints(callContext))
797+
.addAll(PolarisEndpoints.getSupportedGenericTableEndpoints(realmConfig))
798+
.addAll(PolarisEndpoints.getSupportedPolicyEndpoints(realmConfig))
796799
.build())
797800
.build())
798801
.build();

runtime/service/src/main/java/org/apache/polaris/service/catalog/validation/IcebergPropertiesValidation.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import java.util.Map;
2828
import org.apache.iceberg.CatalogProperties;
2929
import org.apache.iceberg.exceptions.ValidationException;
30-
import org.apache.polaris.core.context.CallContext;
30+
import org.apache.polaris.core.config.RealmConfig;
3131
import org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
3232
import org.slf4j.Logger;
3333
import org.slf4j.LoggerFactory;
@@ -36,15 +36,14 @@ public class IcebergPropertiesValidation {
3636
private static final Logger LOGGER = LoggerFactory.getLogger(IcebergPropertiesValidation.class);
3737

3838
public static void validateIcebergProperties(
39-
@Nonnull CallContext callContext, @Nonnull Map<String, String> properties) {
40-
determineFileIOClassName(callContext, properties, null);
39+
@Nonnull RealmConfig realmConfig, @Nonnull Map<String, String> properties) {
40+
determineFileIOClassName(realmConfig, properties, null);
4141
}
4242

4343
public static String determineFileIOClassName(
44-
@Nonnull CallContext callContext,
44+
@Nonnull RealmConfig realmConfig,
4545
@Nonnull Map<String, String> properties,
4646
@Nullable PolarisStorageConfigurationInfo storageConfigurationInfo) {
47-
var realmConfig = callContext.getPolarisCallContext().getRealmConfig();
4847
var ioImpl = properties.get(CatalogProperties.FILE_IO_IMPL);
4948

5049
if (ioImpl != null) {

0 commit comments

Comments
 (0)