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]

Reply via email to