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 a07ea0126 Remove BaseMetaStoreManager.serializeProperties (#2374)
a07ea0126 is described below
commit a07ea01260687d70592bfee18bb4500dfe4bcb22
Author: Christopher Lambert <[email protected]>
AuthorDate: Tue Aug 19 17:43:55 2025 +0200
Remove BaseMetaStoreManager.serializeProperties (#2374)
similar to 7af85be7f45c933a377314a669e2a16633c93532 we should prefer
the existing helper methods on the entity instead
---
.../AtomicOperationMetaStoreManager.java | 26 ++++------------
.../core/persistence/BaseMetaStoreManager.java | 35 ----------------------
.../TransactionalMetaStoreManagerImpl.java | 26 ++++------------
3 files changed, 10 insertions(+), 77 deletions(-)
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
index c52e9273f..8af4c654d 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/AtomicOperationMetaStoreManager.java
@@ -252,7 +252,7 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
// if it is a principal, we also need to drop the secrets
if (entity.getType() == PolarisEntityType.PRINCIPAL) {
// get internal properties
- Map<String, String> properties =
this.deserializeProperties(entity.getInternalProperties());
+ Map<String, String> properties = entity.getInternalPropertiesAsMap();
// get client_id
String clientId =
properties.get(PolarisEntityConstants.getClientIdPropertyName());
@@ -432,7 +432,7 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
// validate input
callCtx.getDiagServices().checkNotNull(catalog, "unexpected_null_catalog");
- Map<String, String> internalProp = getInternalPropertyMap(catalog);
+ Map<String, String> internalProp = catalog.getInternalPropertiesAsMap();
String integrationIdentifierOrId =
internalProp.get(PolarisEntityConstants.getStorageIntegrationIdentifierPropertyName());
String storageConfigInfoStr =
@@ -751,8 +751,7 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
principal);
// get internal properties
- Map<String, String> properties =
- this.deserializeProperties(refreshPrincipal.getInternalProperties());
+ Map<String, String> properties =
refreshPrincipal.getInternalPropertiesAsMap();
// get client_id
String clientId =
properties.get(PolarisEntityConstants.getClientIdPropertyName());
@@ -798,14 +797,14 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
.generateNewPrincipalSecrets(callCtx, principal.getName(),
principal.getId());
// generate properties
- Map<String, String> internalProperties = getInternalPropertyMap(principal);
+ Map<String, String> internalProperties =
principal.getInternalPropertiesAsMap();
internalProperties.put(
PolarisEntityConstants.getClientIdPropertyName(),
principalSecrets.getPrincipalClientId());
// remember client id
PolarisBaseEntity updatedPrincipal =
new PolarisBaseEntity.Builder(principal)
- .internalProperties(this.serializeProperties(internalProperties))
+ .internalPropertiesAsMap(internalProperties)
.build();
// now create and persist new catalog entity
EntityResult lowLevelResult = this.persistNewEntity(callCtx, ms,
updatedPrincipal);
@@ -1616,21 +1615,6 @@ public class AtomicOperationMetaStoreManager extends
BaseMetaStoreManager {
}
}
- /**
- * Get the internal property map for an entity
- *
- * @param entity the target entity
- * @return a map of string representing the internal properties
- */
- public Map<String, String> getInternalPropertyMap(@Nonnull PolarisBaseEntity
entity) {
- String internalPropStr = entity.getInternalProperties();
- Map<String, String> res = new HashMap<>();
- if (internalPropStr == null) {
- return res;
- }
- return deserializeProperties(internalPropStr);
- }
-
/** {@inheritDoc} */
@Override
public @Nonnull ResolvedEntityResult loadResolvedEntityById(
diff --git
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/BaseMetaStoreManager.java
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/BaseMetaStoreManager.java
index a56eeda3d..6fb8448d1 100644
---
a/polaris-core/src/main/java/org/apache/polaris/core/persistence/BaseMetaStoreManager.java
+++
b/polaris-core/src/main/java/org/apache/polaris/core/persistence/BaseMetaStoreManager.java
@@ -18,9 +18,6 @@
*/
package org.apache.polaris.core.persistence;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.annotation.Nonnull;
import java.util.Map;
import org.apache.polaris.core.PolarisCallContext;
@@ -34,8 +31,6 @@ import
org.apache.polaris.core.storage.PolarisStorageConfigurationInfo;
/** Shared basic PolarisMetaStoreManager logic for transactional and
non-transactional impls. */
public abstract class BaseMetaStoreManager implements PolarisMetaStoreManager {
- /** mapper, allows to serialize/deserialize properties to/from JSON */
- private static final ObjectMapper MAPPER = new ObjectMapper();
public static PolarisStorageConfigurationInfo extractStorageConfiguration(
@Nonnull PolarisDiagnostics diagnostics, PolarisBaseEntity
reloadedEntity) {
@@ -52,36 +47,6 @@ public abstract class BaseMetaStoreManager implements
PolarisMetaStoreManager {
return PolarisStorageConfigurationInfo.deserialize(storageConfigInfoStr);
}
- /**
- * Given the internal property as a map of key/value pairs, serialize it to
a String
- *
- * @param properties a map of key/value pairs
- * @return a String, the JSON representation of the map
- */
- public String serializeProperties(Map<String, String> properties) {
- try {
- // Deserialize the JSON string to a Map<String, String>
- return MAPPER.writeValueAsString(properties);
- } catch (JsonProcessingException ex) {
- throw new RuntimeException("serializeProperties failed: " +
ex.getMessage(), ex);
- }
- }
-
- /**
- * Given the serialized properties, deserialize those to a {@code
Map<String, String>}
- *
- * @param properties a JSON string representing the set of properties
- * @return a Map of string
- */
- public Map<String, String> deserializeProperties(String properties) {
- try {
- // Deserialize the JSON string to a Map<String, String>
- return MAPPER.readValue(properties, new TypeReference<>() {});
- } catch (JsonProcessingException ex) {
- throw new RuntimeException("deserializeProperties failed: " +
ex.getMessage(), ex);
- }
- }
-
/**
* Performs basic validation of expected invariants on a new entity, then
returns the entity with
* fields filled out for which the persistence layer is responsible.
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 7e1a4ce45..ee202d3ca 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
@@ -240,7 +240,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// if it is a principal, we also need to drop the secrets
if (entity.getType() == PolarisEntityType.PRINCIPAL) {
// get internal properties
- Map<String, String> properties =
this.deserializeProperties(entity.getInternalProperties());
+ Map<String, String> properties = entity.getInternalPropertiesAsMap();
// get client_id
String clientId =
properties.get(PolarisEntityConstants.getClientIdPropertyName());
@@ -743,8 +743,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
principal);
// get internal properties
- Map<String, String> properties =
- this.deserializeProperties(refreshPrincipal.getInternalProperties());
+ Map<String, String> properties =
refreshPrincipal.getInternalPropertiesAsMap();
// get client_id
String clientId =
properties.get(PolarisEntityConstants.getClientIdPropertyName());
@@ -792,14 +791,14 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
ms.generateNewPrincipalSecretsInCurrentTxn(callCtx,
principal.getName(), principal.getId());
// generate properties
- Map<String, String> internalProperties = getInternalPropertyMap(principal);
+ Map<String, String> internalProperties =
principal.getInternalPropertiesAsMap();
internalProperties.put(
PolarisEntityConstants.getClientIdPropertyName(),
principalSecrets.getPrincipalClientId());
// remember client id
PolarisBaseEntity updatedPrincipal =
new PolarisBaseEntity.Builder(principal)
- .internalProperties(this.serializeProperties(internalProperties))
+ .internalPropertiesAsMap(internalProperties)
.build();
// now create and persist new catalog entity
@@ -926,7 +925,7 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
// get metastore we should be using
TransactionalPersistence ms = ((TransactionalPersistence)
callCtx.getMetaStore());
- Map<String, String> internalProp = getInternalPropertyMap(catalog);
+ Map<String, String> internalProp = catalog.getInternalPropertiesAsMap();
String integrationIdentifierOrId =
internalProp.get(PolarisEntityConstants.getStorageIntegrationIdentifierPropertyName());
String storageConfigInfoStr =
@@ -2017,21 +2016,6 @@ public class TransactionalMetaStoreManagerImpl extends
BaseMetaStoreManager {
}
}
- /**
- * Get the internal property map for an entity
- *
- * @param entity the target entity
- * @return a map of string representing the internal properties
- */
- public Map<String, String> getInternalPropertyMap(@Nonnull PolarisBaseEntity
entity) {
- String internalPropStr = entity.getInternalProperties();
- Map<String, String> res = new HashMap<>();
- if (internalPropStr == null) {
- return res;
- }
- return deserializeProperties(internalPropStr);
- }
-
/** {@link #loadResolvedEntityById(PolarisCallContext, long, long,
PolarisEntityType)} */
private @Nonnull ResolvedEntityResult loadResolvedEntityById(
@Nonnull PolarisCallContext callCtx,