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

nsabonyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 59eebb9906 NIFI-8710: Pass details instead of source ID for Provenance 
per the interface doc
59eebb9906 is described below

commit 59eebb99065adc54343f9186896969aabeb45a02
Author: Matthew Burgess <[email protected]>
AuthorDate: Fri Jul 16 16:37:00 2021 -0400

    NIFI-8710: Pass details instead of source ID for Provenance per the 
interface doc
    
    This closes #5224
    
    Signed-off-by: Nandor Soma Abonyi <[email protected]>
---
 .../apache/nifi/util/MockProvenanceReporter.java   |  8 ++--
 .../repository/StandardProvenanceReporter.java     | 16 ++++---
 .../repository/StandardProvenanceReporterTest.java | 49 ++++++++++++++++++++++
 3 files changed, 63 insertions(+), 10 deletions(-)

diff --git 
a/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java 
b/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java
index ae808a4fe6..f5af5e3d10 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java
@@ -115,8 +115,8 @@ public class MockProvenanceReporter implements 
ProvenanceReporter {
     }
 
     @Override
-    public void receive(FlowFile flowFile, String transitUri, String 
sourceSystemFlowFileIdentifier) {
-        receive(flowFile, transitUri, sourceSystemFlowFileIdentifier, -1L);
+    public void receive(FlowFile flowFile, String transitUri, String details) {
+        receive(flowFile, transitUri, details, -1L);
     }
 
     @Override
@@ -125,8 +125,8 @@ public class MockProvenanceReporter implements 
ProvenanceReporter {
     }
 
     @Override
-    public void receive(final FlowFile flowFile, final String transitUri, 
final String sourceSystemFlowFileIdentifier, final long transmissionMillis) {
-        receive(flowFile, transitUri, sourceSystemFlowFileIdentifier, null, 
transmissionMillis);
+    public void receive(final FlowFile flowFile, final String transitUri, 
final String details, final long transmissionMillis) {
+        receive(flowFile, transitUri, null, details, transmissionMillis);
     }
 
     @Override
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java
index 179aac0d53..38b7ffe5f3 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java
@@ -151,8 +151,8 @@ public class StandardProvenanceReporter implements 
InternalProvenanceReporter {
     }
 
     @Override
-    public void receive(FlowFile flowFile, String transitUri, String 
sourceSystemFlowFileIdentifier) {
-        receive(flowFile, transitUri, sourceSystemFlowFileIdentifier, -1L);
+    public void receive(FlowFile flowFile, String transitUri, String details) {
+        receive(flowFile, transitUri, details, -1L);
     }
 
     @Override
@@ -161,8 +161,8 @@ public class StandardProvenanceReporter implements 
InternalProvenanceReporter {
     }
 
     @Override
-    public void receive(final FlowFile flowFile, final String transitUri, 
final String sourceSystemFlowFileIdentifier, final long transmissionMillis) {
-        receive(flowFile, transitUri, sourceSystemFlowFileIdentifier, null, 
transmissionMillis);
+    public void receive(final FlowFile flowFile, final String transitUri, 
final String details, final long transmissionMillis) {
+        receive(flowFile, transitUri, null, details, transmissionMillis);
     }
 
     @Override
@@ -170,8 +170,12 @@ public class StandardProvenanceReporter implements 
InternalProvenanceReporter {
         verifyFlowFileKnown(flowFile);
 
         try {
-            final ProvenanceEventRecord record = build(flowFile, 
ProvenanceEventType.RECEIVE)
-                
.setTransitUri(transitUri).setSourceSystemFlowFileIdentifier(sourceSystemFlowFileIdentifier).setEventDuration(transmissionMillis).setDetails(details).build();
+            final ProvenanceEventBuilder builder = build(flowFile, 
ProvenanceEventType.RECEIVE);
+            builder.setTransitUri(transitUri);
+            
builder.setSourceSystemFlowFileIdentifier(sourceSystemFlowFileIdentifier);
+            builder.setEventDuration(transmissionMillis);
+            builder.setDetails(details);
+            final ProvenanceEventRecord record = builder.build();
             events.add(record);
 
             bytesReceived += flowFile.getSize();
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/controller/repository/StandardProvenanceReporterTest.java
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/controller/repository/StandardProvenanceReporterTest.java
new file mode 100644
index 0000000000..3bb9a53e8e
--- /dev/null
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/test/java/org/apache/nifi/controller/repository/StandardProvenanceReporterTest.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.controller.repository;
+
+
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.provenance.ProvenanceEventRecord;
+import org.apache.nifi.provenance.ProvenanceEventRepository;
+import org.apache.nifi.provenance.StandardProvenanceEventRecord;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import java.util.Set;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+class StandardProvenanceReporterTest {
+
+    @Test
+    public void testDetailsRetainedWithDelegate() {
+        final ProvenanceEventRepository mockRepo = 
Mockito.mock(ProvenanceEventRepository.class);
+        final StandardProvenanceReporter reporter = new 
StandardProvenanceReporter(null, "1234", "TestProc", mockRepo, null);
+        Mockito.when(mockRepo.eventBuilder()).thenReturn(new 
StandardProvenanceEventRecord.Builder());
+
+        final FlowFile flowFile = new 
StandardFlowFileRecord.Builder().id(10L).addAttribute("uuid", "10").build();
+        reporter.receive(flowFile, "test://noop", "These are details", -1);
+        final Set<ProvenanceEventRecord> records = reporter.getEvents();
+        assertNotNull(records);
+        assertEquals(1, records.size());
+        final ProvenanceEventRecord record = records.iterator().next();
+        assertNotNull(record);
+        assertEquals("These are details", record.getDetails());
+    }
+}
\ No newline at end of file

Reply via email to