This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
     new 27ad015bc5 NIFI-13724 Added additional Registry metadata to events for 
support branch (#9433)
27ad015bc5 is described below

commit 27ad015bc558657ba876eb8395f484758064610d
Author: Dye357 <[email protected]>
AuthorDate: Sat Oct 26 12:42:04 2024 -0400

    NIFI-13724 Added additional Registry metadata to events for support branch 
(#9433)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../apache/nifi/registry/event/EventFactory.java   | 52 +++++++-------
 .../nifi/registry/event/TestEventFactory.java      | 83 +++++++++++++++++++---
 .../nifi/registry/event/TestEventService.java      |  2 +
 .../apache/nifi/registry/hook/EventFieldName.java  |  7 ++
 .../org/apache/nifi/registry/hook/EventType.java   | 30 ++++++++
 5 files changed, 142 insertions(+), 32 deletions(-)

diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/event/EventFactory.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/event/EventFactory.java
index 1dcd59101d..a135e36074 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/event/EventFactory.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/event/EventFactory.java
@@ -28,58 +28,59 @@ import org.apache.nifi.registry.hook.EventFieldName;
 import org.apache.nifi.registry.hook.EventType;
 import org.apache.nifi.registry.security.authorization.user.NiFiUserUtils;
 
+import java.util.Optional;
+
 /**
  * Factory to create Events from domain objects.
  */
 public class EventFactory {
 
     public static Event bucketCreated(final Bucket bucket) {
-        return new StandardEvent.Builder()
-                .eventType(EventType.CREATE_BUCKET)
-                .addField(EventFieldName.BUCKET_ID, bucket.getIdentifier())
-                .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
-                .build();
+        return bucketEvent(bucket, EventType.CREATE_BUCKET);
     }
 
     public static Event bucketUpdated(final Bucket bucket) {
-        return new StandardEvent.Builder()
-                .eventType(EventType.UPDATE_BUCKET)
-                .addField(EventFieldName.BUCKET_ID, bucket.getIdentifier())
-                .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
-                .build();
+        return bucketEvent(bucket, EventType.UPDATE_BUCKET);
     }
 
     public static Event bucketDeleted(final Bucket bucket) {
+            return bucketEvent(bucket, EventType.DELETE_BUCKET);
+    }
+
+    private static Event bucketEvent(final Bucket bucket, EventType eventType) 
{
         return new StandardEvent.Builder()
-                .eventType(EventType.DELETE_BUCKET)
+                .eventType(eventType)
                 .addField(EventFieldName.BUCKET_ID, bucket.getIdentifier())
+                .addField(EventFieldName.BUCKET_NAME, bucket.getName())
+                .addField(EventFieldName.BUCKET_DESCRIPTION, 
Optional.ofNullable(bucket.getDescription()).orElse("")) //Empty string if Null
+                .addField(EventFieldName.CREATED_TIMESTAMP, 
String.valueOf(bucket.getCreatedTimestamp()))
+                .addField(EventFieldName.ALLOW_PUBLIC_READ, 
(bucket.isAllowPublicRead() == null) ? "" : 
String.valueOf(bucket.isAllowPublicRead())) //Empty string if Null
                 .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
                 .build();
     }
 
     public static Event flowCreated(final VersionedFlow versionedFlow) {
-        return new StandardEvent.Builder()
-                .eventType(EventType.CREATE_FLOW)
-                .addField(EventFieldName.BUCKET_ID, 
versionedFlow.getBucketIdentifier())
-                .addField(EventFieldName.FLOW_ID, 
versionedFlow.getIdentifier())
-                .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
-                .build();
+        return flowEvent(versionedFlow, EventType.CREATE_FLOW);
     }
 
     public static Event flowUpdated(final VersionedFlow versionedFlow) {
-        return new StandardEvent.Builder()
-                .eventType(EventType.UPDATE_FLOW)
-                .addField(EventFieldName.BUCKET_ID, 
versionedFlow.getBucketIdentifier())
-                .addField(EventFieldName.FLOW_ID, 
versionedFlow.getIdentifier())
-                .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
-                .build();
+        return flowEvent(versionedFlow, EventType.UPDATE_FLOW);
     }
 
     public static Event flowDeleted(final VersionedFlow versionedFlow) {
+        return flowEvent(versionedFlow, EventType.DELETE_FLOW);
+    }
+
+    private static Event flowEvent(final VersionedFlow versionedFlow, 
EventType eventType) {
         return new StandardEvent.Builder()
-                .eventType(EventType.DELETE_FLOW)
+                .eventType(eventType)
                 .addField(EventFieldName.BUCKET_ID, 
versionedFlow.getBucketIdentifier())
+                .addField(EventFieldName.BUCKET_NAME, 
Optional.ofNullable(versionedFlow.getBucketName()).orElse("")) //Empty string 
if Null
                 .addField(EventFieldName.FLOW_ID, 
versionedFlow.getIdentifier())
+                .addField(EventFieldName.FLOW_NAME, 
Optional.ofNullable(versionedFlow.getName()).orElse(""))
+                .addField(EventFieldName.FLOW_DESCRIPTION, 
Optional.ofNullable(versionedFlow.getDescription()).orElse(""))
+                .addField(EventFieldName.CREATED_TIMESTAMP, 
String.valueOf(versionedFlow.getCreatedTimestamp()))
+                .addField(EventFieldName.MODIFIED_TIMESTAMP, 
String.valueOf(versionedFlow.getModifiedTimestamp()))
                 .addField(EventFieldName.USER, 
NiFiUserUtils.getNiFiUserIdentity())
                 .build();
     }
@@ -91,8 +92,11 @@ public class EventFactory {
         return new StandardEvent.Builder()
                 .eventType(EventType.CREATE_FLOW_VERSION)
                 .addField(EventFieldName.BUCKET_ID, 
versionedFlowSnapshot.getSnapshotMetadata().getBucketIdentifier())
+                .addField(EventFieldName.BUCKET_NAME, 
(versionedFlowSnapshot.getBucket() == null) ? "" : 
Optional.ofNullable(versionedFlowSnapshot.getBucket().getName()).orElse(""))
                 .addField(EventFieldName.FLOW_ID, 
versionedFlowSnapshot.getSnapshotMetadata().getFlowIdentifier())
+                .addField(EventFieldName.FLOW_NAME, 
(versionedFlowSnapshot.getBucket() == null) ? "" : 
Optional.ofNullable(versionedFlowSnapshot.getFlow().getName()).orElse(""))
                 .addField(EventFieldName.VERSION, 
String.valueOf(versionedFlowSnapshot.getSnapshotMetadata().getVersion()))
+                .addField(EventFieldName.MODIFIED_TIMESTAMP, 
String.valueOf(versionedFlowSnapshot.getSnapshotMetadata().getTimestamp()))
                 .addField(EventFieldName.USER, 
versionedFlowSnapshot.getSnapshotMetadata().getAuthor())
                 .addField(EventFieldName.COMMENT, versionComments)
                 .build();
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventFactory.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventFactory.java
index dc08928808..7a96d470fa 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventFactory.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventFactory.java
@@ -16,6 +16,7 @@
  */
 package org.apache.nifi.registry.event;
 
+import org.apache.nifi.flow.VersionedProcessGroup;
 import org.apache.nifi.registry.authorization.User;
 import org.apache.nifi.registry.authorization.UserGroup;
 import org.apache.nifi.registry.bucket.Bucket;
@@ -26,10 +27,10 @@ import 
org.apache.nifi.registry.extension.bundle.BundleVersionMetadata;
 import org.apache.nifi.registry.flow.VersionedFlow;
 import org.apache.nifi.registry.flow.VersionedFlowSnapshot;
 import org.apache.nifi.registry.flow.VersionedFlowSnapshotMetadata;
-import org.apache.nifi.flow.VersionedProcessGroup;
 import org.apache.nifi.registry.hook.Event;
 import org.apache.nifi.registry.hook.EventFieldName;
 import org.apache.nifi.registry.hook.EventType;
+import org.apache.nifi.registry.revision.entity.RevisionInfo;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -46,6 +47,7 @@ public class TestEventFactory {
     private BundleVersion bundleVersion;
     private User user;
     private UserGroup userGroup;
+    private RevisionInfo revisionInfo;
 
     @BeforeEach
     public void setup() {
@@ -53,12 +55,20 @@ public class TestEventFactory {
         bucket.setName("Bucket1");
         bucket.setIdentifier(UUID.randomUUID().toString());
         bucket.setCreatedTimestamp(System.currentTimeMillis());
+        bucket.setDescription("Bucket 1 Description");
+
+        revisionInfo = new RevisionInfo();
+        revisionInfo.setVersion(1L);
 
         versionedFlow = new VersionedFlow();
         versionedFlow.setIdentifier(UUID.randomUUID().toString());
         versionedFlow.setName("Flow 1");
+        versionedFlow.setDescription("Flow 1 Description");
         versionedFlow.setBucketIdentifier(bucket.getIdentifier());
         versionedFlow.setBucketName(bucket.getName());
+        versionedFlow.setCreatedTimestamp(System.currentTimeMillis());
+        versionedFlow.setModifiedTimestamp(System.currentTimeMillis());
+        versionedFlow.setRevision(revisionInfo);
 
         VersionedFlowSnapshotMetadata metadata = new 
VersionedFlowSnapshotMetadata();
         metadata.setAuthor("user1");
@@ -70,6 +80,8 @@ public class TestEventFactory {
         versionedFlowSnapshot = new VersionedFlowSnapshot();
         versionedFlowSnapshot.setSnapshotMetadata(metadata);
         versionedFlowSnapshot.setFlowContents(new VersionedProcessGroup());
+        versionedFlowSnapshot.setFlow(versionedFlow);
+        versionedFlowSnapshot.setBucket(bucket);
 
         bundle = new Bundle();
         bundle.setIdentifier(UUID.randomUUID().toString());
@@ -105,19 +117,74 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.CREATE_BUCKET, event.getEventType());
-        assertEquals(2, event.getFields().size());
+        assertEquals(6, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals("unknown", 
event.getField(EventFieldName.USER).getValue());
     }
 
+    @Test
+    public void testBucketCreatedEventWithNulls() {
+        Bucket bucket = new Bucket();
+        bucket.setName("test-bucket");
+        bucket.setIdentifier(UUID.randomUUID().toString());
+        final Event event = EventFactory.bucketCreated(bucket);
+
+        assertEquals(EventType.CREATE_BUCKET, event.getEventType());
+        assertEquals(6, event.getFields().size());
+
+        //Assert null values are empty Strings.
+        assertEquals( "", 
event.getField(EventFieldName.BUCKET_DESCRIPTION).getValue());
+        assertEquals("", 
event.getField(EventFieldName.ALLOW_PUBLIC_READ).getValue());
+        assertEquals( "0", 
event.getField(EventFieldName.CREATED_TIMESTAMP).getValue());
+    }
+
+    @Test
+    public void testFlowCreatedEventWithNulls() {
+        VersionedFlow versionedFlow = new VersionedFlow();
+        versionedFlow.setIdentifier(UUID.randomUUID().toString());
+        versionedFlow.setBucketIdentifier(UUID.randomUUID().toString());
+        versionedFlow.setBucketIdentifier(UUID.randomUUID().toString());
+        final Event event = EventFactory.flowCreated(versionedFlow);
+
+        assertEquals(EventType.CREATE_FLOW, event.getEventType());
+        assertEquals(8, event.getFields().size());
+
+        //Assert null values are empty Strings.
+        assertEquals( "", 
event.getField(EventFieldName.BUCKET_NAME).getValue());
+        assertEquals( "", event.getField(EventFieldName.FLOW_NAME).getValue());
+        assertEquals( "0", 
event.getField(EventFieldName.CREATED_TIMESTAMP).getValue());
+        assertEquals( "0", 
event.getField(EventFieldName.MODIFIED_TIMESTAMP).getValue());
+    }
+
+    @Test
+    public void testFlowMetaDataCreatedEventWithNulls() {
+        VersionedFlowSnapshot flowSnapshot = new VersionedFlowSnapshot();
+        VersionedFlowSnapshotMetadata snapshotMetadata = new 
VersionedFlowSnapshotMetadata();
+        snapshotMetadata.setComments("");
+        snapshotMetadata.setFlowIdentifier(UUID.randomUUID().toString());
+        snapshotMetadata.setVersion(0);
+        snapshotMetadata.setBucketIdentifier(UUID.randomUUID().toString());
+        snapshotMetadata.setAuthor("");
+        flowSnapshot.setSnapshotMetadata(snapshotMetadata);
+        final Event event = EventFactory.flowVersionCreated(flowSnapshot);
+
+        assertEquals(EventType.CREATE_FLOW_VERSION, event.getEventType());
+        assertEquals(8, event.getFields().size());
+
+        //Assert null values are empty Strings.
+        assertEquals( "", 
event.getField(EventFieldName.BUCKET_NAME).getValue());
+        assertEquals( "", event.getField(EventFieldName.FLOW_NAME).getValue());
+        assertEquals( "0", 
event.getField(EventFieldName.MODIFIED_TIMESTAMP).getValue());
+    }
+
     @Test
     public void testBucketUpdatedEvent() {
         final Event event = EventFactory.bucketUpdated(bucket);
         event.validate();
 
         assertEquals(EventType.UPDATE_BUCKET, event.getEventType());
-        assertEquals(2, event.getFields().size());
+        assertEquals(6, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals("unknown", 
event.getField(EventFieldName.USER).getValue());
@@ -129,7 +196,7 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.DELETE_BUCKET, event.getEventType());
-        assertEquals(2, event.getFields().size());
+        assertEquals(6, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals("unknown", 
event.getField(EventFieldName.USER).getValue());
@@ -141,7 +208,7 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.CREATE_FLOW, event.getEventType());
-        assertEquals(3, event.getFields().size());
+        assertEquals(8, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals(versionedFlow.getIdentifier(), 
event.getField(EventFieldName.FLOW_ID).getValue());
@@ -154,7 +221,7 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.UPDATE_FLOW, event.getEventType());
-        assertEquals(3, event.getFields().size());
+        assertEquals(8, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals(versionedFlow.getIdentifier(), 
event.getField(EventFieldName.FLOW_ID).getValue());
@@ -167,7 +234,7 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.DELETE_FLOW, event.getEventType());
-        assertEquals(3, event.getFields().size());
+        assertEquals(8, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals(versionedFlow.getIdentifier(), 
event.getField(EventFieldName.FLOW_ID).getValue());
@@ -180,7 +247,7 @@ public class TestEventFactory {
         event.validate();
 
         assertEquals(EventType.CREATE_FLOW_VERSION, event.getEventType());
-        assertEquals(5, event.getFields().size());
+        assertEquals(8, event.getFields().size());
 
         assertEquals(bucket.getIdentifier(), 
event.getField(EventFieldName.BUCKET_ID).getValue());
         assertEquals(versionedFlow.getIdentifier(), 
event.getField(EventFieldName.FLOW_ID).getValue());
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventService.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventService.java
index cab38e97c5..f4e45c2fec 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventService.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/test/java/org/apache/nifi/registry/event/TestEventService.java
@@ -53,6 +53,8 @@ public class TestEventService {
     @Test
     public void testPublishConsume() throws InterruptedException {
         final Bucket bucket = new Bucket();
+        bucket.setName("bucket1");
+        bucket.setDescription("bucketDescription");
         bucket.setIdentifier(UUID.randomUUID().toString());
 
         final Event bucketCreatedEvent = EventFactory.bucketCreated(bucket);
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventFieldName.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventFieldName.java
index 3e35058be6..07256df6a8 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventFieldName.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventFieldName.java
@@ -21,8 +21,15 @@ package org.apache.nifi.registry.hook;
  */
 public enum EventFieldName {
 
+    ALLOW_PUBLIC_READ,
     BUCKET_ID,
+    BUCKET_NAME,
+    BUCKET_DESCRIPTION,
     FLOW_ID,
+    FLOW_NAME,
+    FLOW_DESCRIPTION,
+    CREATED_TIMESTAMP,
+    MODIFIED_TIMESTAMP,
     EXTENSION_BUNDLE_ID,
     VERSION,
     USER,
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventType.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventType.java
index 9c86d64b5e..059b2b29c7 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventType.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-provider-api/src/main/java/org/apache/nifi/registry/hook/EventType.java
@@ -30,15 +30,27 @@ public enum EventType {
 
     CREATE_BUCKET(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
+            EventFieldName.BUCKET_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.ALLOW_PUBLIC_READ,
             EventFieldName.USER),
     CREATE_FLOW(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
             EventFieldName.FLOW_ID,
+            EventFieldName.FLOW_NAME,
+            EventFieldName.FLOW_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.MODIFIED_TIMESTAMP,
             EventFieldName.USER),
     CREATE_FLOW_VERSION(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
             EventFieldName.FLOW_ID,
+            EventFieldName.FLOW_NAME,
             EventFieldName.VERSION,
+            EventFieldName.MODIFIED_TIMESTAMP,
             EventFieldName.USER,
             EventFieldName.COMMENT),
     CREATE_EXTENSION_BUNDLE(
@@ -55,17 +67,35 @@ public enum EventType {
     REGISTRY_START(),
     UPDATE_BUCKET(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
+            EventFieldName.BUCKET_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.ALLOW_PUBLIC_READ,
             EventFieldName.USER),
     UPDATE_FLOW(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
             EventFieldName.FLOW_ID,
+            EventFieldName.FLOW_NAME,
+            EventFieldName.FLOW_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.MODIFIED_TIMESTAMP,
             EventFieldName.USER),
     DELETE_BUCKET(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
+            EventFieldName.BUCKET_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.ALLOW_PUBLIC_READ,
             EventFieldName.USER),
     DELETE_FLOW(
             EventFieldName.BUCKET_ID,
+            EventFieldName.BUCKET_NAME,
             EventFieldName.FLOW_ID,
+            EventFieldName.FLOW_NAME,
+            EventFieldName.FLOW_DESCRIPTION,
+            EventFieldName.CREATED_TIMESTAMP,
+            EventFieldName.MODIFIED_TIMESTAMP,
             EventFieldName.USER),
     DELETE_EXTENSION_BUNDLE(
             EventFieldName.BUCKET_ID,

Reply via email to