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