From 40dd8a0a845ef5f4d4fde451f02376ab2fab9758 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Wed, 18 Nov 2015 17:24:49 -0500 Subject: [PATCH 1/7] NIFI-1174 Refactoring the HBase client API and adding a PutHBaseJSON which can write a whole row from a single json document - Adding Complex Field Strategy to PutHBaseJSON to allow more control of complex fields - Improving error messages to indicate what the problem was with an invalid row Signed-off-by: Bryan Bende --- .../nifi-hbase-processors/pom.xml | 4 + .../apache/nifi/hbase/AbstractPutHBase.java | 183 ++++++++ .../java/org/apache/nifi/hbase/GetHBase.java | 3 +- .../org/apache/nifi/hbase/PutHBaseCell.java | 151 +------ .../org/apache/nifi/hbase/PutHBaseJSON.java | 230 ++++++++++ .../org.apache.nifi.processor.Processor | 3 +- .../org/apache/nifi/hbase/HBaseTestUtil.java | 87 ++++ .../nifi/hbase/MockHBaseClientService.java | 14 +- .../apache/nifi/hbase/TestPutHBaseCell.java | 60 ++- .../apache/nifi/hbase/TestPutHBaseJSON.java | 423 ++++++++++++++++++ .../apache/nifi/hbase/HBaseClientService.java | 11 + .../org/apache/nifi/hbase/put/PutColumn.java} | 30 +- .../apache/nifi/hbase/put/PutFlowFile.java | 40 +- .../nifi/hbase/HBase_1_1_2_ClientService.java | 25 +- .../hbase/TestHBase_1_1_2_ClientService.java | 27 +- 15 files changed, 1099 insertions(+), 192 deletions(-) create mode 100644 nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractPutHBase.java create mode 100644 nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseJSON.java create mode 100644 nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/HBaseTestUtil.java create mode 100644 nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseJSON.java rename nifi-nar-bundles/{nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractHBaseProcessor.java => nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutColumn.java} (53%) diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/pom.xml b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/pom.xml index b474c6a90b..abbe4c925f 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/pom.xml +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/pom.xml @@ -50,6 +50,10 @@ commons-lang3 3.4 + + org.codehaus.jackson + jackson-mapper-asl + org.apache.nifi diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractPutHBase.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractPutHBase.java new file mode 100644 index 0000000000..87424f967f --- /dev/null +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractPutHBase.java @@ -0,0 +1,183 @@ +/* + * 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.hbase; + + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.hbase.put.PutFlowFile; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.util.StandardValidators; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * Base class for processors that put data to HBase. + */ +public abstract class AbstractPutHBase extends AbstractProcessor { + + protected static final PropertyDescriptor HBASE_CLIENT_SERVICE = new PropertyDescriptor.Builder() + .name("HBase Client Service") + .description("Specifies the Controller Service to use for accessing HBase.") + .required(true) + .identifiesControllerService(HBaseClientService.class) + .build(); + protected static final PropertyDescriptor TABLE_NAME = new PropertyDescriptor.Builder() + .name("Table Name") + .description("The name of the HBase Table to put data into") + .required(true) + .expressionLanguageSupported(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor ROW_ID = new PropertyDescriptor.Builder() + .name("Row Identifier") + .description("Specifies the Row ID to use when inserting data into HBase") + .required(false) // not all sub-classes will require this + .expressionLanguageSupported(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor COLUMN_FAMILY = new PropertyDescriptor.Builder() + .name("Column Family") + .description("The Column Family to use when inserting data into HBase") + .required(true) + .expressionLanguageSupported(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor COLUMN_QUALIFIER = new PropertyDescriptor.Builder() + .name("Column Qualifier") + .description("The Column Qualifier to use when inserting data into HBase") + .required(true) + .expressionLanguageSupported(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder() + .name("Batch Size") + .description("The maximum number of FlowFiles to process in a single execution. The FlowFiles will be " + + "grouped by table, and a single Put per table will be performed.") + .required(true) + .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR) + .defaultValue("25") + .build(); + + protected static final Relationship REL_SUCCESS = new Relationship.Builder() + .name("success") + .description("A FlowFile is routed to this relationship after it has been successfully stored in HBase") + .build(); + protected static final Relationship REL_FAILURE = new Relationship.Builder() + .name("failure") + .description("A FlowFile is routed to this relationship if it cannot be sent to HBase") + .build(); + + @Override + public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { + final int batchSize = context.getProperty(BATCH_SIZE).asInteger(); + List flowFiles = session.get(batchSize); + if (flowFiles == null || flowFiles.size() == 0) { + return; + } + + final Map> tablePuts = new HashMap<>(); + + // Group FlowFiles by HBase Table + for (final FlowFile flowFile : flowFiles) { + final PutFlowFile putFlowFile = createPut(session, context, flowFile); + + if (putFlowFile == null) { + // sub-classes should log appropriate error messages before returning null + session.transfer(flowFile, REL_FAILURE); + } else if (!putFlowFile.isValid()) { + if (StringUtils.isBlank(putFlowFile.getTableName())) { + getLogger().error("Missing table name for FlowFile {}; routing to failure", new Object[]{flowFile}); + } else if (StringUtils.isBlank(putFlowFile.getRow())) { + getLogger().error("Missing row id for FlowFile {}; routing to failure", new Object[]{flowFile}); + } else if (putFlowFile.getColumns() == null || putFlowFile.getColumns().isEmpty()) { + getLogger().error("No columns provided for FlowFile {}; routing to failure", new Object[]{flowFile}); + } else { + // really shouldn't get here, but just in case + getLogger().error("Failed to produce a put for FlowFile {}; routing to failure", new Object[]{flowFile}); + } + session.transfer(flowFile, REL_FAILURE); + } else { + List putFlowFiles = tablePuts.get(putFlowFile.getTableName()); + if (putFlowFiles == null) { + putFlowFiles = new ArrayList<>(); + tablePuts.put(putFlowFile.getTableName(), putFlowFiles); + } + putFlowFiles.add(putFlowFile); + } + } + + getLogger().debug("Sending {} FlowFiles to HBase in {} put operations", new Object[]{flowFiles.size(), tablePuts.size()}); + + final long start = System.nanoTime(); + final List successes = new ArrayList<>(); + final HBaseClientService hBaseClientService = context.getProperty(HBASE_CLIENT_SERVICE).asControllerService(HBaseClientService.class); + + for (Map.Entry> entry : tablePuts.entrySet()) { + try { + hBaseClientService.put(entry.getKey(), entry.getValue()); + successes.addAll(entry.getValue()); + } catch (Exception e) { + getLogger().error(e.getMessage(), e); + + for (PutFlowFile putFlowFile : entry.getValue()) { + getLogger().error("Failed to send {} to HBase due to {}; routing to failure", new Object[]{putFlowFile.getFlowFile(), e}); + final FlowFile failure = session.penalize(putFlowFile.getFlowFile()); + session.transfer(failure, REL_FAILURE); + } + } + } + + final long sendMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start); + getLogger().debug("Sent {} FlowFiles to HBase successfully in {} milliseconds", new Object[]{successes.size(), sendMillis}); + + for (PutFlowFile putFlowFile : successes) { + session.transfer(putFlowFile.getFlowFile(), REL_SUCCESS); + final String details = "Put " + putFlowFile.getColumns().size() + " cells to HBase"; + session.getProvenanceReporter().send(putFlowFile.getFlowFile(), getTransitUri(putFlowFile), details, sendMillis); + } + + } + + protected String getTransitUri(PutFlowFile putFlowFile) { + return "hbase://" + putFlowFile.getTableName() + "/" + putFlowFile.getRow(); + } + + /** + * Sub-classes provide the implementation to create a put from a FlowFile. + * + * @param session + * the current session + * @param context + * the current context + * @param flowFile + * the FlowFile to create a Put from + * + * @return a PutFlowFile instance for the given FlowFile + */ + protected abstract PutFlowFile createPut(final ProcessSession session, final ProcessContext context, final FlowFile flowFile); + +} diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/GetHBase.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/GetHBase.java index 5f08265daa..98a612cd31 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/GetHBase.java +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/GetHBase.java @@ -41,6 +41,7 @@ import org.apache.nifi.hbase.scan.ResultCell; import org.apache.nifi.hbase.scan.ResultHandler; import org.apache.nifi.hbase.util.ObjectSerDe; import org.apache.nifi.hbase.util.StringSerDe; +import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.Relationship; @@ -83,7 +84,7 @@ import java.util.regex.Pattern; @WritesAttribute(attribute = "hbase.table", description = "The name of the HBase table that the data was pulled from"), @WritesAttribute(attribute = "mime.type", description = "Set to application/json to indicate that output is JSON") }) -public class GetHBase extends AbstractHBaseProcessor { +public class GetHBase extends AbstractProcessor { static final Pattern COLUMNS_PATTERN = Pattern.compile("\\w+(:\\w+)?(?:,\\w+(:\\w+)?)*"); diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseCell.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseCell.java index 0a2b763688..759d91ef60 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseCell.java +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseCell.java @@ -16,7 +16,6 @@ */ package org.apache.nifi.hbase; -import org.apache.commons.lang3.StringUtils; import org.apache.nifi.annotation.behavior.EventDriven; import org.apache.nifi.annotation.behavior.InputRequirement; import org.apache.nifi.annotation.behavior.SupportsBatching; @@ -24,91 +23,36 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; -import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.Relationship; -import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.io.InputStreamCallback; -import org.apache.nifi.processor.util.StandardValidators; import org.apache.nifi.stream.io.StreamUtils; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.concurrent.TimeUnit; @EventDriven @SupportsBatching @InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED) @Tags({"hadoop", "hbase"}) @CapabilityDescription("Adds the Contents of a FlowFile to HBase as the value of a single cell") -public class PutHBaseCell extends AbstractProcessor { - - protected static final PropertyDescriptor HBASE_CLIENT_SERVICE = new PropertyDescriptor.Builder() - .name("HBase Client Service") - .description("Specifies the Controller Service to use for accessing HBase.") - .required(true) - .identifiesControllerService(HBaseClientService.class) - .build(); - protected static final PropertyDescriptor TABLE_NAME = new PropertyDescriptor.Builder() - .name("Table Name") - .description("The name of the HBase Table to put data into") - .required(true) - .expressionLanguageSupported(true) - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - static final PropertyDescriptor ROW = new PropertyDescriptor.Builder() - .name("Row Identifier") - .description("Specifies the Row ID to use when inserting data into HBase") - .required(true) - .expressionLanguageSupported(true) - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - static final PropertyDescriptor COLUMN_FAMILY = new PropertyDescriptor.Builder() - .name("Column Family") - .description("The Column Family to use when inserting data into HBase") - .required(true) - .expressionLanguageSupported(true) - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - static final PropertyDescriptor COLUMN_QUALIFIER = new PropertyDescriptor.Builder() - .name("Column Qualifier") - .description("The Column Qualifier to use when inserting data into HBase") - .required(true) - .expressionLanguageSupported(true) - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder() - .name("Batch Size") - .description("The maximum number of FlowFiles to process in a single execution. The FlowFiles will be " + - "grouped by table, and a single Put per table will be performed.") - .required(true) - .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR) - .defaultValue("25") - .build(); - - static final Relationship REL_SUCCESS = new Relationship.Builder() - .name("success") - .description("A FlowFile is routed to this relationship after it has been successfully stored in HBase") - .build(); - static final Relationship FAILURE = new Relationship.Builder() - .name("failure") - .description("A FlowFile is routed to this relationship if it cannot be sent to HBase") - .build(); +public class PutHBaseCell extends AbstractPutHBase { @Override protected List getSupportedPropertyDescriptors() { final List properties = new ArrayList<>(); properties.add(HBASE_CLIENT_SERVICE); properties.add(TABLE_NAME); - properties.add(ROW); + properties.add(ROW_ID); properties.add(COLUMN_FAMILY); properties.add(COLUMN_QUALIFIER); properties.add(BATCH_SIZE); @@ -119,84 +63,27 @@ public class PutHBaseCell extends AbstractProcessor { public Set getRelationships() { final Set rels = new HashSet<>(); rels.add(REL_SUCCESS); - rels.add(FAILURE); + rels.add(REL_FAILURE); return rels; } @Override - public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { - final int batchSize = context.getProperty(BATCH_SIZE).asInteger(); - List flowFiles = session.get(batchSize); - if (flowFiles == null || flowFiles.size() == 0) { - return; - } + protected PutFlowFile createPut(final ProcessSession session, final ProcessContext context, final FlowFile flowFile) { + final String tableName = context.getProperty(TABLE_NAME).evaluateAttributeExpressions(flowFile).getValue(); + final String row = context.getProperty(ROW_ID).evaluateAttributeExpressions(flowFile).getValue(); + final String columnFamily = context.getProperty(COLUMN_FAMILY).evaluateAttributeExpressions(flowFile).getValue(); + final String columnQualifier = context.getProperty(COLUMN_QUALIFIER).evaluateAttributeExpressions(flowFile).getValue(); - final Map> tablePuts = new HashMap<>(); - - // Group FlowFiles by HBase Table - for (final FlowFile flowFile : flowFiles) { - final String tableName = context.getProperty(TABLE_NAME).evaluateAttributeExpressions(flowFile).getValue(); - final String row = context.getProperty(ROW).evaluateAttributeExpressions(flowFile).getValue(); - final String columnFamily = context.getProperty(COLUMN_FAMILY).evaluateAttributeExpressions(flowFile).getValue(); - final String columnQualifier = context.getProperty(COLUMN_QUALIFIER).evaluateAttributeExpressions(flowFile).getValue(); - - if (StringUtils.isBlank(tableName) || StringUtils.isBlank(row) || StringUtils.isBlank(columnFamily) || StringUtils.isBlank(columnQualifier)) { - getLogger().error("Invalid FlowFile {} missing table, row, column familiy, or column qualifier; routing to failure", new Object[]{flowFile}); - session.transfer(flowFile, FAILURE); - } else { - final byte[] buffer = new byte[(int) flowFile.getSize()]; - session.read(flowFile, new InputStreamCallback() { - @Override - public void process(final InputStream in) throws IOException { - StreamUtils.fillBuffer(in, buffer); - } - }); - - final PutFlowFile putFlowFile = new PutFlowFile(tableName, row, columnFamily, columnQualifier, buffer, flowFile); - - List putFlowFiles = tablePuts.get(tableName); - if (putFlowFiles == null) { - putFlowFiles = new ArrayList<>(); - tablePuts.put(tableName, putFlowFiles); - } - putFlowFiles.add(putFlowFile); + final byte[] buffer = new byte[(int) flowFile.getSize()]; + session.read(flowFile, new InputStreamCallback() { + @Override + public void process(final InputStream in) throws IOException { + StreamUtils.fillBuffer(in, buffer); } - } + }); - getLogger().debug("Sending {} FlowFiles to HBase in {} put operations", new Object[] {flowFiles.size(), tablePuts.size()}); - - final long start = System.nanoTime(); - final List successes = new ArrayList<>(); - final HBaseClientService hBaseClientService = context.getProperty(HBASE_CLIENT_SERVICE).asControllerService(HBaseClientService.class); - - for (Map.Entry> entry : tablePuts.entrySet()) { - try { - hBaseClientService.put(entry.getKey(), entry.getValue()); - successes.addAll(entry.getValue()); - } catch (Exception e) { - getLogger().error(e.getMessage(), e); - - for (PutFlowFile putFlowFile : entry.getValue()) { - getLogger().error("Failed to send {} to HBase due to {}; routing to failure", new Object[]{putFlowFile.getFlowFile(), e}); - final FlowFile failure = session.penalize(putFlowFile.getFlowFile()); - session.transfer(failure, FAILURE); - } - } - } - - final long sendMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start); - getLogger().debug("Sent {} FlowFiles to HBase successfully in {} milliseconds", new Object[] {successes.size(), sendMillis}); - - for (PutFlowFile putFlowFile : successes) { - session.transfer(putFlowFile.getFlowFile(), REL_SUCCESS); - session.getProvenanceReporter().send(putFlowFile.getFlowFile(), getTransitUri(putFlowFile), sendMillis); - } - - } - - protected String getTransitUri(PutFlowFile putFlowFile) { - return "hbase://" + putFlowFile.getTableName() + "/" + putFlowFile.getRow() + "/" + putFlowFile.getColumnFamily() - + ":" + putFlowFile.getColumnQualifier(); + final Collection columns = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, buffer)); + return new PutFlowFile(tableName, row, columns, flowFile); } } diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseJSON.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseJSON.java new file mode 100644 index 0000000000..0dba7eecd4 --- /dev/null +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/PutHBaseJSON.java @@ -0,0 +1,230 @@ +/* + * 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.hbase; + + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.InputRequirement; +import org.apache.nifi.annotation.behavior.SupportsBatching; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.AllowableValue; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.hbase.put.PutColumn; +import org.apache.nifi.hbase.put.PutFlowFile; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.io.InputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.util.ObjectHolder; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.map.ObjectMapper; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +@EventDriven +@SupportsBatching +@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED) +@Tags({"hadoop", "hbase", "put", "json"}) +@CapabilityDescription("Adds rows to HBase based on the contents of incoming JSON documents. Each FlowFile must contain a single " + + "UTF-8 encoded JSON document, and any FlowFiles where the root element is not a single document will be routed to failure. " + + "Each JSON field name and value will become a column qualifier and value of the HBase row. Any fields with a null value " + + "will be skipped, and fields with a complex value will be handled according to the Complex Field Strategy. " + + "The row id can be specified either directly on the processor through the Row Identifier property, or can be extracted from the JSON " + + "document by specifying the Row Identifier Field Name property. This processor will hold the contents of all FlowFiles for the given batch " + + "in memory at one time.") +public class PutHBaseJSON extends AbstractPutHBase { + + protected static final PropertyDescriptor ROW_FIELD_NAME = new PropertyDescriptor.Builder() + .name("Row Identifier Field Name") + .description("Specifies the name of a JSON element whose value should be used as the row id for the given JSON document.") + .expressionLanguageSupported(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + + protected static final String FAIL_VALUE = "Fail"; + protected static final String WARN_VALUE = "Warn"; + protected static final String IGNORE_VALUE = "Ignore"; + protected static final String TEXT_VALUE = "Text"; + + protected static final AllowableValue COMPLEX_FIELD_FAIL = new AllowableValue(FAIL_VALUE, FAIL_VALUE, "Route entire FlowFile to failure if any elements contain complex values."); + protected static final AllowableValue COMPLEX_FIELD_WARN = new AllowableValue(WARN_VALUE, WARN_VALUE, "Provide a warning and do not include field in row sent to HBase."); + protected static final AllowableValue COMPLEX_FIELD_IGNORE = new AllowableValue(IGNORE_VALUE, IGNORE_VALUE, "Silently ignore and do not include in row sent to HBase."); + protected static final AllowableValue COMPLEX_FIELD_TEXT = new AllowableValue(TEXT_VALUE, TEXT_VALUE, "Use the string representation of the complex field as the value of the given column."); + + protected static final PropertyDescriptor COMPLEX_FIELD_STRATEGY = new PropertyDescriptor.Builder() + .name("Complex Field Strategy") + .description("Indicates how to handle complex fields, i.e. fields that do not have a single text value.") + .expressionLanguageSupported(false) + .required(true) + .allowableValues(COMPLEX_FIELD_FAIL, COMPLEX_FIELD_WARN, COMPLEX_FIELD_IGNORE, COMPLEX_FIELD_TEXT) + .defaultValue(COMPLEX_FIELD_TEXT.getValue()) + .build(); + + @Override + public final List getSupportedPropertyDescriptors() { + final List properties = new ArrayList<>(); + properties.add(HBASE_CLIENT_SERVICE); + properties.add(TABLE_NAME); + properties.add(ROW_ID); + properties.add(ROW_FIELD_NAME); + properties.add(COLUMN_FAMILY); + properties.add(BATCH_SIZE); + properties.add(COMPLEX_FIELD_STRATEGY); + return properties; + } + + @Override + public Set getRelationships() { + final Set rels = new HashSet<>(); + rels.add(REL_SUCCESS); + rels.add(REL_FAILURE); + return rels; + } + + @Override + protected Collection customValidate(ValidationContext validationContext) { + final Collection results = new ArrayList<>(); + + final String rowId = validationContext.getProperty(ROW_ID).getValue(); + final String rowFieldName = validationContext.getProperty(ROW_FIELD_NAME).getValue(); + + if (StringUtils.isBlank(rowId) && StringUtils.isBlank(rowFieldName)) { + results.add(new ValidationResult.Builder() + .subject(this.getClass().getSimpleName()) + .explanation("Row Identifier or Row Identifier Field Name is required") + .valid(false) + .build()); + } else if (!StringUtils.isBlank(rowId) && !StringUtils.isBlank(rowFieldName)) { + results.add(new ValidationResult.Builder() + .subject(this.getClass().getSimpleName()) + .explanation("Row Identifier and Row Identifier Field Name can not be used together") + .valid(false) + .build()); + } + + return results; + } + + @Override + protected PutFlowFile createPut(final ProcessSession session, final ProcessContext context, final FlowFile flowFile) { + final String tableName = context.getProperty(TABLE_NAME).evaluateAttributeExpressions(flowFile).getValue(); + final String rowId = context.getProperty(ROW_ID).evaluateAttributeExpressions(flowFile).getValue(); + final String rowFieldName = context.getProperty(ROW_FIELD_NAME).evaluateAttributeExpressions(flowFile).getValue(); + final String columnFamily = context.getProperty(COLUMN_FAMILY).evaluateAttributeExpressions(flowFile).getValue(); + final boolean extractRowId = !StringUtils.isBlank(rowFieldName); + final String complexFieldStrategy = context.getProperty(COMPLEX_FIELD_STRATEGY).getValue(); + + // Parse the JSON document + final ObjectMapper mapper = new ObjectMapper(); + final ObjectHolder rootNodeRef = new ObjectHolder<>(null); + try { + session.read(flowFile, new InputStreamCallback() { + @Override + public void process(final InputStream in) throws IOException { + try (final InputStream bufferedIn = new BufferedInputStream(in)) { + rootNodeRef.set(mapper.readTree(bufferedIn)); + } + } + }); + } catch (final ProcessException pe) { + getLogger().error("Failed to parse {} as JSON due to {}; routing to failure", new Object[]{flowFile, pe.toString()}, pe); + return null; + } + + final JsonNode rootNode = rootNodeRef.get(); + + if (rootNode.isArray()) { + getLogger().error("Root node of JSON must be a single document, found array for {}; routing to failure", new Object[]{flowFile}); + return null; + } + + final Collection columns = new ArrayList<>(); + final ObjectHolder rowIdHolder = new ObjectHolder<>(null); + + // convert each field/value to a column for the put, skip over nulls and arrays + final Iterator fieldNames = rootNode.getFieldNames(); + while (fieldNames.hasNext()) { + final String fieldName = fieldNames.next(); + final ObjectHolder fieldValueHolder = new ObjectHolder<>(null); + + final JsonNode fieldNode = rootNode.get(fieldName); + if (fieldNode.isNull()) { + getLogger().debug("Skipping {} because value was null", new Object[]{fieldName}); + } else if (fieldNode.isValueNode()) { + fieldValueHolder.set(fieldNode.asText()); + } else { + // for non-null, non-value nodes, determine what to do based on the handling strategy + switch (complexFieldStrategy) { + case FAIL_VALUE: + getLogger().error("Complex value found for {}; routing to failure", new Object[]{fieldName}); + return null; + case WARN_VALUE: + getLogger().warn("Complex value found for {}; skipping", new Object[]{fieldName}); + break; + case TEXT_VALUE: + // use toString() here because asText() is only guaranteed to be supported on value nodes + // some other types of nodes, like ArrayNode, provide toString implementations + fieldValueHolder.set(fieldNode.toString()); + break; + case IGNORE_VALUE: + // silently skip + break; + default: + break; + } + } + + // if we have a field value, then see if this is the row id field, if so store the value for later + // otherwise add a new column where the fieldName and fieldValue are the column qualifier and value + if (fieldValueHolder.get() != null) { + if (extractRowId && fieldName.equals(rowFieldName)) { + rowIdHolder.set(fieldValueHolder.get()); + } else { + columns.add(new PutColumn(columnFamily, fieldName, fieldValueHolder.get().getBytes(StandardCharsets.UTF_8))); + } + } + } + + // if we are expecting a field name to use for the row id and the incoming document doesn't have it + // log an error message so the user can see what the field names were and return null so it gets routed to failure + if (extractRowId && rowIdHolder.get() == null) { + final String fieldNameStr = StringUtils.join(rootNode.getFieldNames(), ","); + getLogger().error("Row ID field named '{}' not found in field names '{}'; routing to failure", new Object[] {rowFieldName, fieldNameStr}); + return null; + } + + final String putRowId = (extractRowId ? rowIdHolder.get() : rowId); + return new PutFlowFile(tableName, putRowId, columns, flowFile); + } + +} diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor index 613515d30a..6e2af81381 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor @@ -14,4 +14,5 @@ # limitations under the License. org.apache.nifi.hbase.GetHBase -org.apache.nifi.hbase.PutHBaseCell \ No newline at end of file +org.apache.nifi.hbase.PutHBaseCell +org.apache.nifi.hbase.PutHBaseJSON \ No newline at end of file diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/HBaseTestUtil.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/HBaseTestUtil.java new file mode 100644 index 0000000000..fc30f73948 --- /dev/null +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/HBaseTestUtil.java @@ -0,0 +1,87 @@ +/* + * 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.hbase; + +import org.apache.nifi.hbase.put.PutColumn; +import org.apache.nifi.hbase.put.PutFlowFile; +import org.apache.nifi.provenance.ProvenanceEventRecord; +import org.apache.nifi.provenance.ProvenanceEventType; + +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertTrue; + +public class HBaseTestUtil { + + public static void verifyPut(final String row, final String columnFamily, final Map columns, final List puts) { + boolean foundPut = false; + + for (final PutFlowFile put : puts) { + if (!row.equals(put.getRow())) { + continue; + } + + if (put.getColumns() == null || put.getColumns().size() != columns.size()) { + continue; + } + + // start off assuming we have all the columns + boolean foundAllColumns = true; + + for (Map.Entry entry : columns.entrySet()) { + // determine if we have the current expected column + boolean foundColumn = false; + for (PutColumn putColumn : put.getColumns()) { + final String colVal = new String(putColumn.getBuffer(), StandardCharsets.UTF_8); + if (columnFamily.equals(putColumn.getColumnFamily()) && entry.getKey().equals(putColumn.getColumnQualifier()) + && entry.getValue().equals(colVal)) { + foundColumn = true; + break; + } + } + + // if we didn't have the current expected column we know we don't have all expected columns + if (!foundColumn) { + foundAllColumns = false; + break; + } + } + + // if we found all the expected columns this was a match so we can break + if (foundAllColumns) { + foundPut = true; + break; + } + } + + assertTrue(foundPut); + } + + public static void verifyEvent(final List events, final String uri, final ProvenanceEventType eventType) { + boolean foundEvent = false; + for (final ProvenanceEventRecord event : events) { + if (event.getTransitUri().equals(uri) && event.getEventType().equals(eventType)) { + foundEvent = true; + break; + } + } + assertTrue(foundEvent); + } +} diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/MockHBaseClientService.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/MockHBaseClientService.java index a2abf7e2e0..bca8b4f983 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/MockHBaseClientService.java +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/MockHBaseClientService.java @@ -17,6 +17,7 @@ package org.apache.nifi.hbase; import org.apache.nifi.controller.AbstractControllerService; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; import org.apache.nifi.hbase.scan.Column; import org.apache.nifi.hbase.scan.ResultCell; @@ -33,7 +34,7 @@ import java.util.Map; public class MockHBaseClientService extends AbstractControllerService implements HBaseClientService { private Map results = new HashMap<>(); - private Map> puts = new HashMap<>(); + private Map> flowFilePuts = new HashMap<>(); private boolean throwException = false; @Override @@ -42,7 +43,12 @@ public class MockHBaseClientService extends AbstractControllerService implements throw new IOException("exception"); } - this.puts.put(tableName, new ArrayList<>(puts)); + this.flowFilePuts.put(tableName, new ArrayList<>(puts)); + } + + @Override + public void put(String tableName, String rowId, Collection columns) throws IOException { + throw new UnsupportedOperationException(); } @Override @@ -92,8 +98,8 @@ public class MockHBaseClientService extends AbstractControllerService implements results.put(rowKey, cellArray); } - public Map> getPuts() { - return puts; + public Map> getFlowFilePuts() { + return flowFilePuts; } public void setThrowException(boolean throwException) { diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseCell.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseCell.java index 62fa9a67cb..0cd8ff7a55 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseCell.java +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseCell.java @@ -16,6 +16,7 @@ */ package org.apache.nifi.hbase; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; import org.apache.nifi.reporting.InitializationException; import org.apache.nifi.util.MockFlowFile; @@ -43,7 +44,7 @@ public class TestPutHBaseCell { final TestRunner runner = TestRunners.newTestRunner(PutHBaseCell.class); runner.setProperty(PutHBaseCell.TABLE_NAME, tableName); - runner.setProperty(PutHBaseCell.ROW, row); + runner.setProperty(PutHBaseCell.ROW_ID, row); runner.setProperty(PutHBaseCell.COLUMN_FAMILY, columnFamily); runner.setProperty(PutHBaseCell.COLUMN_QUALIFIER, columnQualifier); runner.setProperty(PutHBaseCell.BATCH_SIZE, "1"); @@ -58,12 +59,14 @@ public class TestPutHBaseCell { final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); outFile.assertContentEquals(content); - assertNotNull(hBaseClient.getPuts()); - assertEquals(1, hBaseClient.getPuts().size()); + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); - List puts = hBaseClient.getPuts().get(tableName); + List puts = hBaseClient.getFlowFilePuts().get(tableName); assertEquals(1, puts.size()); verifyPut(row, columnFamily, columnQualifier, content, puts.get(0)); + + assertEquals(1, runner.getProvenanceEvents().size()); } @Test @@ -89,12 +92,14 @@ public class TestPutHBaseCell { final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); outFile.assertContentEquals(content); - assertNotNull(hBaseClient.getPuts()); - assertEquals(1, hBaseClient.getPuts().size()); + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); - List puts = hBaseClient.getPuts().get(tableName); + List puts = hBaseClient.getFlowFilePuts().get(tableName); assertEquals(1, puts.size()); verifyPut(row, columnFamily, columnQualifier, content, puts.get(0)); + + assertEquals(1, runner.getProvenanceEvents().size()); } @Test @@ -115,7 +120,9 @@ public class TestPutHBaseCell { runner.run(); runner.assertTransferCount(PutHBaseCell.REL_SUCCESS, 0); - runner.assertTransferCount(PutHBaseCell.FAILURE, 1); + runner.assertTransferCount(PutHBaseCell.REL_FAILURE, 1); + + assertEquals(0, runner.getProvenanceEvents().size()); } @Test @@ -142,7 +149,9 @@ public class TestPutHBaseCell { runner.run(); runner.assertTransferCount(PutHBaseCell.REL_SUCCESS, 1); - runner.assertTransferCount(PutHBaseCell.FAILURE, 1); + runner.assertTransferCount(PutHBaseCell.REL_FAILURE, 1); + + assertEquals(1, runner.getProvenanceEvents().size()); } @Test @@ -171,13 +180,15 @@ public class TestPutHBaseCell { final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); outFile.assertContentEquals(content1); - assertNotNull(hBaseClient.getPuts()); - assertEquals(1, hBaseClient.getPuts().size()); + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); - List puts = hBaseClient.getPuts().get(tableName); + List puts = hBaseClient.getFlowFilePuts().get(tableName); assertEquals(2, puts.size()); verifyPut(row1, columnFamily, columnQualifier, content1, puts.get(0)); verifyPut(row2, columnFamily, columnQualifier, content2, puts.get(1)); + + assertEquals(2, runner.getProvenanceEvents().size()); } @Test @@ -202,7 +213,9 @@ public class TestPutHBaseCell { runner.enqueue(content2.getBytes("UTF-8"), attributes2); runner.run(); - runner.assertAllFlowFilesTransferred(PutHBaseCell.FAILURE, 2); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 2); + + assertEquals(0, runner.getProvenanceEvents().size()); } @Test @@ -229,13 +242,15 @@ public class TestPutHBaseCell { final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); outFile.assertContentEquals(content1); - assertNotNull(hBaseClient.getPuts()); - assertEquals(1, hBaseClient.getPuts().size()); + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); - List puts = hBaseClient.getPuts().get(tableName); + List puts = hBaseClient.getFlowFilePuts().get(tableName); assertEquals(2, puts.size()); verifyPut(row, columnFamily, columnQualifier, content1, puts.get(0)); verifyPut(row, columnFamily, columnQualifier, content2, puts.get(1)); + + assertEquals(2, runner.getProvenanceEvents().size()); } private Map getAtrributeMapWithEL(String tableName, String row, String columnFamily, String columnQualifier) { @@ -250,7 +265,7 @@ public class TestPutHBaseCell { private TestRunner getTestRunnerWithEL(PutHBaseCell proc) { final TestRunner runner = TestRunners.newTestRunner(proc); runner.setProperty(PutHBaseCell.TABLE_NAME, "${hbase.tableName}"); - runner.setProperty(PutHBaseCell.ROW, "${hbase.row}"); + runner.setProperty(PutHBaseCell.ROW_ID, "${hbase.row}"); runner.setProperty(PutHBaseCell.COLUMN_FAMILY, "${hbase.columnFamily}"); runner.setProperty(PutHBaseCell.COLUMN_QUALIFIER, "${hbase.columnQualifier}"); return runner; @@ -266,9 +281,14 @@ public class TestPutHBaseCell { private void verifyPut(String row, String columnFamily, String columnQualifier, String content, PutFlowFile put) { assertEquals(row, put.getRow()); - assertEquals(columnFamily, put.getColumnFamily()); - assertEquals(columnQualifier, put.getColumnQualifier()); - assertEquals(content, new String(put.getBuffer(), StandardCharsets.UTF_8)); + + assertNotNull(put.getColumns()); + assertEquals(1, put.getColumns().size()); + + final PutColumn column = put.getColumns().iterator().next(); + assertEquals(columnFamily, column.getColumnFamily()); + assertEquals(columnQualifier, column.getColumnQualifier()); + assertEquals(content, new String(column.getBuffer(), StandardCharsets.UTF_8)); } } diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseJSON.java b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseJSON.java new file mode 100644 index 0000000000..7b5991986f --- /dev/null +++ b/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/test/java/org/apache/nifi/hbase/TestPutHBaseJSON.java @@ -0,0 +1,423 @@ +/* + * 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.hbase; + +import org.apache.nifi.hbase.put.PutFlowFile; +import org.apache.nifi.provenance.ProvenanceEventRecord; +import org.apache.nifi.provenance.ProvenanceEventType; +import org.apache.nifi.reporting.InitializationException; +import org.apache.nifi.util.MockFlowFile; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.junit.Test; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class TestPutHBaseJSON { + + public static final String DEFAULT_TABLE_NAME = "nifi"; + public static final String DEFAULT_ROW = "row1"; + public static final String DEFAULT_COLUMN_FAMILY = "family1"; + + @Test + public void testCustomValidate() throws InitializationException { + // missing row id and row id field name should be invalid + TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + getHBaseClientService(runner); + runner.assertNotValid(); + + // setting both properties should still be invalid + runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, "rowId"); + runner.setProperty(PutHBaseJSON.ROW_FIELD_NAME, "rowFieldName"); + runner.assertNotValid(); + + // only a row id field name should make it valid + runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_FIELD_NAME, "rowFieldName"); + runner.assertValid(); + + // only a row id should make it valid + runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, "rowId"); + runner.assertValid(); + } + + @Test + public void testSingleJsonDocAndProvidedRowId() throws IOException, InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + + final String content = "{ \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + runner.enqueue(content.getBytes("UTF-8")); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); + outFile.assertContentEquals(content); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field1", "value1"); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut(DEFAULT_ROW, DEFAULT_COLUMN_FAMILY, expectedColumns, puts); + + final List events = runner.getProvenanceEvents(); + assertEquals(1, events.size()); + + final ProvenanceEventRecord event = events.get(0); + assertEquals("hbase://" + DEFAULT_TABLE_NAME + "/" + DEFAULT_ROW, event.getTransitUri()); + } + + @Test + public void testSingJsonDocAndExtractedRowId() throws IOException, InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_FIELD_NAME, "rowField"); + + final String content = "{ \"rowField\" : \"myRowId\", \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); + outFile.assertContentEquals(content); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + // should be a put with row id of myRowId, and rowField shouldn't end up in the columns + final Map expectedColumns1 = new HashMap<>(); + expectedColumns1.put("field1", "value1"); + expectedColumns1.put("field2", "value2"); + HBaseTestUtil.verifyPut("myRowId", DEFAULT_COLUMN_FAMILY, expectedColumns1, puts); + + final List events = runner.getProvenanceEvents(); + assertEquals(1, events.size()); + HBaseTestUtil.verifyEvent(runner.getProvenanceEvents(), "hbase://" + DEFAULT_TABLE_NAME + "/myRowId", ProvenanceEventType.SEND); + } + + @Test + public void testSingJsonDocAndExtractedRowIdMissingField() throws IOException, InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_FIELD_NAME, "rowField"); + + final String content = "{ \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 1); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_FAILURE).get(0); + outFile.assertContentEquals(content); + + // should be no provenance events + assertEquals(0, runner.getProvenanceEvents().size()); + + // no puts should have made it to the client + assertEquals(0, hBaseClient.getFlowFilePuts().size()); + } + + @Test + public void testMultipleJsonDocsRouteToFailure() throws IOException, InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + + final String content1 = "{ \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + final String content2 = "{ \"field3\" : \"value3\", \"field4\" : \"value4\" }"; + final String content = "[ " + content1 + " , " + content2 + " ]"; + + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 1); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_FAILURE).get(0); + outFile.assertContentEquals(content); + + // should be no provenance events + assertEquals(0, runner.getProvenanceEvents().size()); + + // no puts should have made it to the client + assertEquals(0, hBaseClient.getFlowFilePuts().size()); + } + + @Test + public void testELWithProvidedRowId() throws IOException, InitializationException { + final TestRunner runner = getTestRunner("${hbase.table}", "${hbase.colFamily}", "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, "${hbase.rowId}"); + + final Map attributes = new HashMap<>(); + attributes.put("hbase.table", "myTable"); + attributes.put("hbase.colFamily", "myColFamily"); + attributes.put("hbase.rowId", "myRowId"); + + final String content = "{ \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + runner.enqueue(content.getBytes("UTF-8"), attributes); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); + outFile.assertContentEquals(content); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get("myTable"); + assertEquals(1, puts.size()); + + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field1", "value1"); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut("myRowId", "myColFamily", expectedColumns, puts); + + final List events = runner.getProvenanceEvents(); + assertEquals(1, events.size()); + HBaseTestUtil.verifyEvent(runner.getProvenanceEvents(), "hbase://myTable/myRowId", ProvenanceEventType.SEND); + } + + @Test + public void testELWithExtractedRowId() throws IOException, InitializationException { + final TestRunner runner = getTestRunner("${hbase.table}", "${hbase.colFamily}", "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_FIELD_NAME, "${hbase.rowField}"); + + final Map attributes = new HashMap<>(); + attributes.put("hbase.table", "myTable"); + attributes.put("hbase.colFamily", "myColFamily"); + attributes.put("hbase.rowField", "field1"); + + final String content = "{ \"field1\" : \"value1\", \"field2\" : \"value2\" }"; + runner.enqueue(content.getBytes("UTF-8"), attributes); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_SUCCESS).get(0); + outFile.assertContentEquals(content); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get("myTable"); + assertEquals(1, puts.size()); + + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut("value1", "myColFamily", expectedColumns, puts); + + final List events = runner.getProvenanceEvents(); + assertEquals(1, events.size()); + HBaseTestUtil.verifyEvent(runner.getProvenanceEvents(), "hbase://myTable/value1", ProvenanceEventType.SEND); + } + + @Test + public void testNullAndArrayElementsWithWarnStrategy() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_WARN.getValue()); + + // should route to success because there is at least one valid field + final String content = "{ \"field1\" : [{ \"child_field1\" : \"child_value1\" }], \"field2\" : \"value2\", \"field3\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + // should have skipped field1 and field3 + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut(DEFAULT_ROW, DEFAULT_COLUMN_FAMILY, expectedColumns, puts); + } + + @Test + public void testNullAndArrayElementsWithIgnoreStrategy() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_IGNORE.getValue()); + + // should route to success because there is at least one valid field + final String content = "{ \"field1\" : [{ \"child_field1\" : \"child_value1\" }], \"field2\" : \"value2\", \"field3\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + // should have skipped field1 and field3 + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut(DEFAULT_ROW, DEFAULT_COLUMN_FAMILY, expectedColumns, puts); + } + + @Test + public void testNullAndArrayElementsWithFailureStrategy() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_FAIL.getValue()); + + // should route to success because there is at least one valid field + final String content = "{ \"field1\" : [{ \"child_field1\" : \"child_value1\" }], \"field2\" : \"value2\", \"field3\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 1); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_FAILURE).get(0); + outFile.assertContentEquals(content); + + // should be no provenance events + assertEquals(0, runner.getProvenanceEvents().size()); + + // no puts should have made it to the client + assertEquals(0, hBaseClient.getFlowFilePuts().size()); + } + + @Test + public void testNullAndArrayElementsWithTextStrategy() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_TEXT.getValue()); + + // should route to success because there is at least one valid field + final String content = "{ \"field1\" : [{ \"child_field1\" : \"child_value1\" }], \"field2\" : \"value2\", \"field3\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + // should have skipped field1 and field3 + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field1", "[{\"child_field1\":\"child_value1\"}]"); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut(DEFAULT_ROW, DEFAULT_COLUMN_FAMILY, expectedColumns, puts); + } + + @Test + public void testNestedDocWithTextStrategy() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_TEXT.getValue()); + + // should route to success because there is at least one valid field + final String content = "{ \"field1\" : { \"child_field1\" : \"child_value1\" }, \"field2\" : \"value2\", \"field3\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_SUCCESS); + + assertNotNull(hBaseClient.getFlowFilePuts()); + assertEquals(1, hBaseClient.getFlowFilePuts().size()); + + final List puts = hBaseClient.getFlowFilePuts().get(DEFAULT_TABLE_NAME); + assertEquals(1, puts.size()); + + // should have skipped field1 and field3 + final Map expectedColumns = new HashMap<>(); + expectedColumns.put("field1", "{\"child_field1\":\"child_value1\"}"); + expectedColumns.put("field2", "value2"); + HBaseTestUtil.verifyPut(DEFAULT_ROW, DEFAULT_COLUMN_FAMILY, expectedColumns, puts); + } + + @Test + public void testAllElementsAreNullOrArrays() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + final MockHBaseClientService hBaseClient = getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + runner.setProperty(PutHBaseJSON.COMPLEX_FIELD_STRATEGY, PutHBaseJSON.COMPLEX_FIELD_WARN.getValue()); + + // should route to failure since it would produce a put with no columns + final String content = "{ \"field1\" : [{ \"child_field1\" : \"child_value1\" }], \"field2\" : null }"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 1); + + final MockFlowFile outFile = runner.getFlowFilesForRelationship(PutHBaseCell.REL_FAILURE).get(0); + outFile.assertContentEquals(content); + + // should be no provenance events + assertEquals(0, runner.getProvenanceEvents().size()); + + // no puts should have made it to the client + assertEquals(0, hBaseClient.getFlowFilePuts().size()); + } + + @Test + public void testInvalidJson() throws InitializationException { + final TestRunner runner = getTestRunner(DEFAULT_TABLE_NAME, DEFAULT_COLUMN_FAMILY, "1"); + getHBaseClientService(runner); + runner.setProperty(PutHBaseJSON.ROW_ID, DEFAULT_ROW); + + final String content = "NOT JSON"; + runner.enqueue(content.getBytes(StandardCharsets.UTF_8)); + runner.run(); + runner.assertAllFlowFilesTransferred(PutHBaseCell.REL_FAILURE, 1); + } + + private TestRunner getTestRunner(String table, String columnFamily, String batchSize) { + final TestRunner runner = TestRunners.newTestRunner(PutHBaseJSON.class); + runner.setProperty(PutHBaseJSON.TABLE_NAME, table); + runner.setProperty(PutHBaseJSON.COLUMN_FAMILY, columnFamily); + runner.setProperty(PutHBaseJSON.BATCH_SIZE, batchSize); + return runner; + } + + private MockHBaseClientService getHBaseClientService(final TestRunner runner) throws InitializationException { + final MockHBaseClientService hBaseClient = new MockHBaseClientService(); + runner.addControllerService("hbaseClient", hBaseClient); + runner.enableControllerService(hBaseClient); + runner.setProperty(PutHBaseCell.HBASE_CLIENT_SERVICE, "hbaseClient"); + return hBaseClient; + } + +} diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java index 9ff2c46776..79eef92a1b 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java @@ -20,6 +20,7 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.controller.ControllerService; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; import org.apache.nifi.hbase.scan.Column; import org.apache.nifi.hbase.scan.ResultHandler; @@ -73,6 +74,16 @@ public interface HBaseClientService extends ControllerService { */ void put(String tableName, Collection puts) throws IOException; + /** + * Puts the given row to HBase with the provided columns. + * + * @param tableName the name of an HBase table + * @param rowId the id of the row to put + * @param columns the columns of the row to put + * @throws IOException thrown when there are communication errors with HBase + */ + void put(String tableName, String rowId, Collection columns) throws IOException; + /** * Scans the given table using the optional filter criteria and passing each result to the provided handler. * diff --git a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractHBaseProcessor.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutColumn.java similarity index 53% rename from nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractHBaseProcessor.java rename to nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutColumn.java index 9cce35ef67..0971f94da5 100644 --- a/nifi-nar-bundles/nifi-hbase-bundle/nifi-hbase-processors/src/main/java/org/apache/nifi/hbase/AbstractHBaseProcessor.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutColumn.java @@ -14,10 +14,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.nifi.hbase; +package org.apache.nifi.hbase.put; -import org.apache.nifi.processor.AbstractProcessor; +/** + * Encapsulates the information for one column of a put operation. + */ +public class PutColumn { -public abstract class AbstractHBaseProcessor extends AbstractProcessor { + private final String columnFamily; + private final String columnQualifier; + private final byte[] buffer; + + + public PutColumn(final String columnFamily, final String columnQualifier, final byte[] buffer) { + this.columnFamily = columnFamily; + this.columnQualifier = columnQualifier; + this.buffer = buffer; + } + + public String getColumnFamily() { + return columnFamily; + } + + public String getColumnQualifier() { + return columnQualifier; + } + + public byte[] getBuffer() { + return buffer; + } } diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutFlowFile.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutFlowFile.java index ed6319ed57..a97e3a4a53 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutFlowFile.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/put/PutFlowFile.java @@ -16,8 +16,11 @@ */ package org.apache.nifi.hbase.put; +import org.apache.commons.lang3.StringUtils; import org.apache.nifi.flowfile.FlowFile; +import java.util.Collection; + /** * Wrapper to encapsulate all of the information for the Put along with the FlowFile. */ @@ -25,18 +28,13 @@ public class PutFlowFile { private final String tableName; private final String row; - private final String columnFamily; - private final String columnQualifier; - private final byte[] buffer; + private final Collection columns; private final FlowFile flowFile; - public PutFlowFile(String tableName, String row, String columnFamily, String columnQualifier, - byte[] buffer, FlowFile flowFile) { + public PutFlowFile(String tableName, String row, Collection columns, FlowFile flowFile) { this.tableName = tableName; this.row = row; - this.columnFamily = columnFamily; - this.columnQualifier = columnQualifier; - this.buffer = buffer; + this.columns = columns; this.flowFile = flowFile; } @@ -48,20 +46,26 @@ public class PutFlowFile { return row; } - public String getColumnFamily() { - return columnFamily; - } - - public String getColumnQualifier() { - return columnQualifier; - } - - public byte[] getBuffer() { - return buffer; + public Collection getColumns() { + return columns; } public FlowFile getFlowFile() { return flowFile; } + public boolean isValid() { + if (StringUtils.isBlank(tableName) || StringUtils.isBlank(row) || flowFile == null || columns == null || columns.isEmpty()) { + return false; + } + + for (PutColumn column : columns) { + if (StringUtils.isBlank(column.getColumnQualifier()) || StringUtils.isBlank(column.getColumnFamily()) || column.getBuffer() == null) { + return false; + } + } + + return true; + } + } diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java index 42590c269c..b20719118d 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java @@ -43,6 +43,7 @@ import org.apache.nifi.components.ValidationResult; import org.apache.nifi.controller.AbstractControllerService; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.controller.ControllerServiceInitializationContext; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; import org.apache.nifi.hbase.scan.Column; import org.apache.nifi.hbase.scan.ResultCell; @@ -195,15 +196,33 @@ public class HBase_1_1_2_ClientService extends AbstractControllerService impleme put = new Put(putFlowFile.getRow().getBytes(StandardCharsets.UTF_8)); rowPuts.put(putFlowFile.getRow(), put); } - put.addColumn(putFlowFile.getColumnFamily().getBytes(StandardCharsets.UTF_8), - putFlowFile.getColumnQualifier().getBytes(StandardCharsets.UTF_8), - putFlowFile.getBuffer()); + + for (final PutColumn column : putFlowFile.getColumns()) { + put.addColumn( + column.getColumnFamily().getBytes(StandardCharsets.UTF_8), + column.getColumnQualifier().getBytes(StandardCharsets.UTF_8), + column.getBuffer()); + } } table.put(new ArrayList<>(rowPuts.values())); } } + @Override + public void put(final String tableName, final String rowId, final Collection columns) throws IOException { + try (final Table table = connection.getTable(TableName.valueOf(tableName))) { + Put put = new Put(rowId.getBytes(StandardCharsets.UTF_8)); + for (final PutColumn column : columns) { + put.addColumn( + column.getColumnFamily().getBytes(StandardCharsets.UTF_8), + column.getColumnQualifier().getBytes(StandardCharsets.UTF_8), + column.getBuffer()); + } + table.put(put); + } + } + @Override public void scan(final String tableName, final Collection columns, final String filterExpression, final long minTime, final ResultHandler handler) throws IOException { diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java index 1575f3c53f..513ea9ccb2 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java @@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.filter.Filter; import org.apache.nifi.controller.ConfigurationContext; +import org.apache.nifi.hbase.put.PutColumn; import org.apache.nifi.hbase.put.PutFlowFile; import org.apache.nifi.hbase.scan.Column; import org.apache.nifi.hbase.scan.ResultCell; @@ -41,6 +42,7 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -130,8 +132,9 @@ public class TestHBase_1_1_2_ClientService { final String columnQualifier = "qualifier1"; final String content = "content1"; - final PutFlowFile putFlowFile = new PutFlowFile(tableName, row, columnFamily, columnQualifier, - content.getBytes(StandardCharsets.UTF_8), null); + final Collection columns = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, + content.getBytes(StandardCharsets.UTF_8))); + final PutFlowFile putFlowFile = new PutFlowFile(tableName, row, columns, null); final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class); @@ -168,11 +171,13 @@ public class TestHBase_1_1_2_ClientService { final String content1 = "content1"; final String content2 = "content2"; - final PutFlowFile putFlowFile1 = new PutFlowFile(tableName, row, columnFamily, columnQualifier, - content1.getBytes(StandardCharsets.UTF_8), null); + final Collection columns1 = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, + content1.getBytes(StandardCharsets.UTF_8))); + final PutFlowFile putFlowFile1 = new PutFlowFile(tableName, row, columns1, null); - final PutFlowFile putFlowFile2 = new PutFlowFile(tableName, row, columnFamily, columnQualifier, - content2.getBytes(StandardCharsets.UTF_8), null); + final Collection columns2 = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, + content2.getBytes(StandardCharsets.UTF_8))); + final PutFlowFile putFlowFile2 = new PutFlowFile(tableName, row, columns2, null); final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class); @@ -214,11 +219,13 @@ public class TestHBase_1_1_2_ClientService { final String content1 = "content1"; final String content2 = "content2"; - final PutFlowFile putFlowFile1 = new PutFlowFile(tableName, row1, columnFamily, columnQualifier, - content1.getBytes(StandardCharsets.UTF_8), null); + final Collection columns1 = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, + content1.getBytes(StandardCharsets.UTF_8))); + final PutFlowFile putFlowFile1 = new PutFlowFile(tableName, row1, columns1, null); - final PutFlowFile putFlowFile2 = new PutFlowFile(tableName, row2, columnFamily, columnQualifier, - content2.getBytes(StandardCharsets.UTF_8), null); + final Collection columns2 = Collections.singletonList(new PutColumn(columnFamily, columnQualifier, + content2.getBytes(StandardCharsets.UTF_8))); + final PutFlowFile putFlowFile2 = new PutFlowFile(tableName, row2, columns2, null); final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class); From 08d59e437462dfcec3e1f7347bcd6941ee47818a Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Thu, 19 Nov 2015 02:52:01 -0500 Subject: [PATCH 2/7] NIFI-1196 Providing handling of FETCH provenance events for their "unique" property, transit URI, within the framework and UI. Reviewed by Tony Kurc (tkurc@apache.org) --- .../org/apache/nifi/provenance/StandardLineageResult.java | 1 + .../nifi/provenance/StandardProvenanceEventRecord.java | 1 + .../nifi/controller/repository/StandardProcessSession.java | 4 +++- .../src/main/webapp/js/nf/provenance/nf-provenance-table.js | 5 +++++ .../org/apache/nifi/provenance/StandardRecordReader.java | 2 ++ .../org/apache/nifi/provenance/StandardRecordWriter.java | 2 ++ 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java index 63c53d0635..cf16fc0c93 100644 --- a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java +++ b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java @@ -288,6 +288,7 @@ public class StandardLineageResult implements ComputeLineageResult { } break; case RECEIVE: + case FETCH: case CREATE: { // for a receive event, we want to create a FlowFile Node that represents the FlowFile received // and create an edge from the Receive Event to the FlowFile Node diff --git a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java index 4eb7001a7a..b504b04af5 100644 --- a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java +++ b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java @@ -728,6 +728,7 @@ public final class StandardProvenanceEventRecord implements ProvenanceEventRecor } break; case RECEIVE: + case FETCH: case SEND: assertSet(transitUri, "Transit URI"); break; diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java index 2ab90cd642..d447ddd478 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java @@ -457,6 +457,7 @@ public final class StandardProcessSession implements ProcessSession, ProvenanceE bytesSent += event.getFileSize(); break; case RECEIVE: + case FETCH: flowFilesReceived++; bytesReceived += event.getFileSize(); break; @@ -616,7 +617,8 @@ public final class StandardProcessSession implements ProcessSession, ProvenanceE if (registeredTypes.contains(ProvenanceEventType.CREATE) || registeredTypes.contains(ProvenanceEventType.FORK) || registeredTypes.contains(ProvenanceEventType.JOIN) - || registeredTypes.contains(ProvenanceEventType.RECEIVE)) { + || registeredTypes.contains(ProvenanceEventType.RECEIVE) + || registeredTypes.contains(ProvenanceEventType.FETCH)) { creationEventRegistered = true; } } diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js index 1e5550c9e3..faa6adcad0 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js @@ -1203,6 +1203,11 @@ nf.ProvenanceTable = (function () { formatEventDetail('Relationship', event.relationship); } + // conditionally show FETCH details + if (event.eventType === 'FETCH') { + formatEventDetail('Transit Uri', event.transitUri); + } + // conditionally show the cluster node identifier if (nf.Common.isDefinedAndNotNull(event.clusterNodeId)) { // save the cluster node id diff --git a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java index 42bc8e99e6..a9d7bf7c91 100644 --- a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java +++ b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java @@ -347,6 +347,8 @@ public class StandardRecordReader implements RecordReader { } else if (eventType == ProvenanceEventType.RECEIVE) { builder.setTransitUri(readNullableString(dis)); builder.setSourceSystemFlowFileIdentifier(readNullableString(dis)); + } else if (eventType == ProvenanceEventType.FETCH) { + builder.setTransitUri(readNullableString(dis)); } else if (eventType == ProvenanceEventType.SEND) { builder.setTransitUri(readNullableString(dis)); } else if (eventType == ProvenanceEventType.ADDINFO) { diff --git a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java index ad3c6e2002..981301e6e7 100644 --- a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java +++ b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java @@ -235,6 +235,8 @@ public class StandardRecordWriter implements RecordWriter { } else if (recordType == ProvenanceEventType.RECEIVE) { writeNullableString(out, record.getTransitUri()); writeNullableString(out, record.getSourceSystemFlowFileIdentifier()); + } else if (recordType == ProvenanceEventType.FETCH) { + writeNullableString(out, record.getTransitUri()); } else if (recordType == ProvenanceEventType.SEND) { writeNullableString(out, record.getTransitUri()); } else if (recordType == ProvenanceEventType.ADDINFO) { From f1f67f6395e44775c70355688d04a46499176757 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Fri, 20 Nov 2015 10:45:21 -0500 Subject: [PATCH 3/7] Fixing one-character typo in syslog attribute name --- .../nifi/processors/standard/AbstractSyslogProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractSyslogProcessor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractSyslogProcessor.java index fea01bd3a5..70d3f22e4a 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractSyslogProcessor.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractSyslogProcessor.java @@ -66,7 +66,7 @@ public abstract class AbstractSyslogProcessor extends AbstractProcessor { BODY("syslog.body"), VALID("syslog.valid"), PROTOCOL("syslog.protocol"), - PORT("syslog.pprt"); + PORT("syslog.port"); private String key; From cdd2c4f22cf9d309aff6ea2fa57f9557bc243006 Mon Sep 17 00:00:00 2001 From: Joseph Percivall Date: Sat, 21 Nov 2015 16:04:13 -0500 Subject: [PATCH 4/7] NIFI-1086: Changed behavior on retrieval with no input file to RETRIEVE events, removed @TriggerWhenEmpty Reviewed by Tony Kurc (tkurc@apache.org) --- .../nifi/processors/standard/InvokeHTTP.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java index 2a9760d456..6d38bcebd5 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java @@ -67,7 +67,6 @@ import org.apache.nifi.annotation.behavior.DynamicProperty; import org.apache.nifi.annotation.behavior.InputRequirement; import org.apache.nifi.annotation.behavior.InputRequirement.Requirement; import org.apache.nifi.annotation.behavior.SupportsBatching; -import org.apache.nifi.annotation.behavior.TriggerWhenEmpty; import org.apache.nifi.annotation.behavior.WritesAttribute; import org.apache.nifi.annotation.behavior.WritesAttributes; import org.apache.nifi.annotation.documentation.CapabilityDescription; @@ -96,7 +95,6 @@ import org.joda.time.format.DateTimeFormatter; @SupportsBatching @Tags({"http", "https", "rest", "client"}) @InputRequirement(Requirement.INPUT_ALLOWED) -@TriggerWhenEmpty @CapabilityDescription("An HTTP client processor which converts FlowFile attributes to HTTP headers, with configurable HTTP method, url, etc.") @WritesAttributes({ @WritesAttribute(attribute = "invokehttp.status.code", description = "The status code that is returned"), @@ -610,7 +608,11 @@ public final class InvokeHTTP extends AbstractProcessor { // emit provenance event final long millis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos); - session.getProvenanceReporter().fetch(responseFlowFile, url.toExternalForm(), millis); + if(requestFlowFile != null) { + session.getProvenanceReporter().fetch(responseFlowFile, url.toExternalForm(), millis); + } else { + session.getProvenanceReporter().receive(responseFlowFile, url.toExternalForm(), millis); + } } } @@ -775,13 +777,9 @@ public final class InvokeHTTP extends AbstractProcessor { private void route(FlowFile request, FlowFile response, ProcessSession session, ProcessContext context, int statusCode){ - // check if we should penalize the request - if (!isSuccess(statusCode)) { - if (request == null) { - context.yield(); - } else { - request = session.penalize(request); - } + // check if we should yield the processor + if (!isSuccess(statusCode) && request == null) { + context.yield(); } // If the property to output the response flowfile regardless of status code is set then transfer it @@ -805,6 +803,7 @@ public final class InvokeHTTP extends AbstractProcessor { // 5xx -> RETRY } else if (statusCode / 100 == 5) { if (request != null) { + request = session.penalize(request); session.transfer(request, REL_RETRY); } From 1580edb558e96dc49a40b50e8f5fd7e31e61371d Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Sat, 21 Nov 2015 17:59:34 -0500 Subject: [PATCH 5/7] NIFI-1196 Correcting treatment of FETCH events as a continuation of a lineage trail and not the start of a new one. Reviewed by Tony Kurc (tkurc@apache.org) --- .../java/org/apache/nifi/provenance/StandardLineageResult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java index cf16fc0c93..02c089d627 100644 --- a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java +++ b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java @@ -259,6 +259,7 @@ public class StandardLineageResult implements ComputeLineageResult { case FORK: case JOIN: case REPLAY: + case FETCH: case CLONE: { // For events that create FlowFile nodes, we need to create the FlowFile Nodes and associated Edges, as appropriate for (final String childUuid : record.getChildUuids()) { @@ -288,7 +289,6 @@ public class StandardLineageResult implements ComputeLineageResult { } break; case RECEIVE: - case FETCH: case CREATE: { // for a receive event, we want to create a FlowFile Node that represents the FlowFile received // and create an edge from the Receive Event to the FlowFile Node From 327342916e353b6c7e7fdc787375b4b30c42fde3 Mon Sep 17 00:00:00 2001 From: Jenn Barnabee Date: Sat, 21 Nov 2015 10:35:32 -0500 Subject: [PATCH 6/7] NIFI-1210: Makes various changes to the User Guide for the 0.4.0 version release. Reviewed and amended (see ticket for details) by Tony Kurc (tkurc@apache.org) --- .../asciidoc/images/nifi-connection-menu.png | Bin 0 -> 31189 bytes .../main/asciidoc/images/nifi-connection.png | Bin 0 -> 166905 bytes .../images/nifi-process-group-menu.png | Bin 0 -> 98964 bytes .../asciidoc/images/nifi-processor-menu.png | Bin 0 -> 99962 bytes .../main/asciidoc/images/nifi-rpg-menu.png | Bin 0 -> 108291 bytes nifi-docs/src/main/asciidoc/user-guide.adoc | 105 ++++++++++++++++-- 6 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 nifi-docs/src/main/asciidoc/images/nifi-connection-menu.png create mode 100644 nifi-docs/src/main/asciidoc/images/nifi-connection.png create mode 100644 nifi-docs/src/main/asciidoc/images/nifi-process-group-menu.png create mode 100644 nifi-docs/src/main/asciidoc/images/nifi-processor-menu.png create mode 100644 nifi-docs/src/main/asciidoc/images/nifi-rpg-menu.png diff --git a/nifi-docs/src/main/asciidoc/images/nifi-connection-menu.png b/nifi-docs/src/main/asciidoc/images/nifi-connection-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..d78d99d94134290d0435de19f28c32598e6ef4a4 GIT binary patch literal 31189 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 literal 0 HcmV?d00001 diff --git a/nifi-docs/src/main/asciidoc/images/nifi-connection.png b/nifi-docs/src/main/asciidoc/images/nifi-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..061f72bf56890ac80e9d9a823d589ff1934e56d2 GIT binary patch literal 166905 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