olsoloviov commented on code in PR #3293:
URL: https://github.com/apache/polaris/pull/3293#discussion_r2674445683
##########
runtime/service/src/main/java/org/apache/polaris/service/events/listeners/PolarisPersistenceEventListener.java:
##########
@@ -23,29 +23,45 @@
import java.util.Map;
import org.apache.iceberg.TableMetadata;
import org.apache.iceberg.TableMetadataParser;
+import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.catalog.TableIdentifier;
+import org.apache.iceberg.rest.responses.LoadTableResponse;
+import org.apache.polaris.core.admin.model.Catalog;
import org.apache.polaris.core.auth.PolarisPrincipal;
-import org.apache.polaris.core.entity.PolarisEvent;
-import org.apache.polaris.service.events.CatalogsServiceEvents;
-import org.apache.polaris.service.events.IcebergRestCatalogEvents;
+import org.apache.polaris.service.events.EventAttributes;
+import org.apache.polaris.service.events.PolarisEvent;
public abstract class PolarisPersistenceEventListener implements
PolarisEventListener {
- // TODO: Ensure all events (except RateLimiter ones) call `processEvent`
-
@Override
- public void
onAfterCreateTable(IcebergRestCatalogEvents.AfterCreateTableEvent event) {
- TableMetadata tableMetadata = event.loadTableResponse().tableMetadata();
- PolarisEvent polarisEvent =
- new PolarisEvent(
- event.catalogName(),
+ public void onEvent(PolarisEvent event) {
+ switch (event.type()) {
+ case AFTER_CREATE_TABLE -> handleAfterCreateTable(event);
+ case AFTER_CREATE_CATALOG -> handleAfterCreateCatalog(event);
+ default -> {
+ // Other events not handled by this listener
+ }
+ }
+ }
+
+ private void handleAfterCreateTable(PolarisEvent event) {
+ LoadTableResponse loadTableResponse =
+ event.requiredAttribute(EventAttributes.LOAD_TABLE_RESPONSE);
+ TableMetadata tableMetadata = loadTableResponse.tableMetadata();
+ String catalogName = event.requiredAttribute(EventAttributes.CATALOG_NAME);
+ Namespace namespace = event.requiredAttribute(EventAttributes.NAMESPACE);
+ String tableName = event.requiredAttribute(EventAttributes.TABLE_NAME);
+
+ org.apache.polaris.core.entity.PolarisEvent polarisEvent =
Review Comment:
Well, yeah. This is another PolarisEvent from polaris-core. It was imported
before, but now we had to import our
org.apache.polaris.service.events.PolarisEvent, so now we have to fully qualify
that one.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]