This is an automated email from the ASF dual-hosted git repository.
exceptionfactory 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 d208f940d4 NIFI-15106 Standardized property names in Media, MongoDB,
MQTT, Network bundles (#10445)
d208f940d4 is described below
commit d208f940d4210b20a2c4abee35b20679f1d8b354
Author: dan-s1 <[email protected]>
AuthorDate: Tue Oct 21 14:21:23 2025 -0400
NIFI-15106 Standardized property names in Media, MongoDB, MQTT, Network
bundles (#10445)
Signed-off-by: David Handermann <[email protected]>
---
.../apache/nifi/processors/image/ResizeImage.java | 9 +++++--
.../processors/mongodb/AbstractMongoProcessor.java | 29 ++++++++++++---------
.../mongodb/AbstractMongoQueryProcessor.java | 10 ++++++--
.../nifi/processors/mongodb/DeleteMongo.java | 14 +++++++---
.../apache/nifi/processors/mongodb/GetMongo.java | 16 ++++++++----
.../nifi/processors/mongodb/GetMongoRecord.java | 14 +++++++---
.../apache/nifi/processors/mongodb/PutMongo.java | 14 +++++++---
.../nifi/processors/mongodb/PutMongoRecord.java | 30 +++++++++++++---------
.../nifi/processors/mongodb/QueryHelper.java | 4 +--
.../processors/mongodb/RunMongoAggregation.java | 14 +++++++---
.../mongodb/gridfs/AbstractGridFSProcessor.java | 25 ++++++++++--------
.../processors/mongodb/gridfs/DeleteGridFS.java | 14 +++++++---
.../processors/mongodb/gridfs/FetchGridFS.java | 10 ++++++--
.../nifi/processors/mongodb/gridfs/PutGridFS.java | 26 +++++++++++--------
.../apache/nifi/mongodb/MongoDBLookupService.java | 26 +++++++++++--------
.../apache/nifi/processors/mqtt/ConsumeMQTT.java | 14 +++++++---
.../mqtt/common/AbstractMQTTProcessor.java | 17 +++++++-----
.../nifi/processors/network/ParseNetflowv5.java | 9 ++++++-
18 files changed, 197 insertions(+), 98 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-media-bundle/nifi-media-processors/src/main/java/org/apache/nifi/processors/image/ResizeImage.java
b/nifi-extension-bundles/nifi-media-bundle/nifi-media-processors/src/main/java/org/apache/nifi/processors/image/ResizeImage.java
index fd97008cc6..f60d6c1ef8 100644
---
a/nifi-extension-bundles/nifi-media-bundle/nifi-media-processors/src/main/java/org/apache/nifi/processors/image/ResizeImage.java
+++
b/nifi-extension-bundles/nifi-media-bundle/nifi-media-processors/src/main/java/org/apache/nifi/processors/image/ResizeImage.java
@@ -43,6 +43,7 @@ import org.apache.nifi.components.AllowableValue;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -85,8 +86,7 @@ public class ResizeImage extends AbstractProcessor {
.defaultValue(RESIZE_DEFAULT.getValue())
.build();
static final PropertyDescriptor KEEP_RATIO = new
PropertyDescriptor.Builder()
- .displayName("Maintain aspect ratio")
- .name("keep-ratio")
+ .name("Maintain Aspect Ratio")
.description("Specifies if the ratio of the input image should be
maintained")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.allowableValues("true", "false")
@@ -227,6 +227,11 @@ public class ResizeImage extends AbstractProcessor {
session.transfer(flowFile, REL_SUCCESS);
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("keep-ratio", KEEP_RATIO.getName());
+ }
+
public Dimension getScaledDimension(int originalWidth, int originalHeight,
int boundWidth, int boundHeight) {
double widthRatio = ((double) boundWidth) / originalWidth;
double heightRatio = ((double) boundHeight) / originalHeight;
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java
index 75763b53d8..9c602e4d3d 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java
@@ -33,6 +33,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
@@ -62,8 +63,7 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
"Generate a JSON document that conforms to typical JSON
conventions instead of Mongo-specific conventions.");
static final PropertyDescriptor CLIENT_SERVICE = new
PropertyDescriptor.Builder()
- .name("mongo-client-service")
- .displayName("Client Service")
+ .name("Client Service")
.description("If configured, this property will use the assigned
client service for connection pooling.")
.required(false)
.identifiesControllerService(MongoDBClientService.class)
@@ -88,8 +88,7 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
protected static final PropertyDescriptor JSON_TYPE = new
PropertyDescriptor.Builder()
.allowableValues(JSON_EXTENDED, JSON_STANDARD)
.defaultValue(JSON_TYPE_EXTENDED)
- .displayName("JSON Type")
- .name("json-type")
+ .name("JSON Type")
.description("By default, MongoDB's Java driver returns \"extended
JSON\". Some of the features of this variant of JSON" +
" may cause problems for other JSON parsers that expect
only standard JSON types and conventions. This configuration setting " +
" controls whether to use extended JSON or provide a clean
view that conforms to standard JSON.")
@@ -98,8 +97,7 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor RESULTS_PER_FLOWFILE = new
PropertyDescriptor.Builder()
- .name("results-per-flowfile")
- .displayName("Results Per FlowFile")
+ .name("Results Per FlowFile")
.description("How many results to put into a flowfile at once. The
whole body will be treated as a JSON array of results.")
.required(false)
.addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
@@ -115,16 +113,14 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor QUERY_ATTRIBUTE = new
PropertyDescriptor.Builder()
- .name("mongo-query-attribute")
- .displayName("Query Output Attribute")
+ .name("Query Output Attribute")
.description("If set, the query will be written to a specified
attribute on the output flowfiles.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.ATTRIBUTE_KEY_PROPERTY_NAME_VALIDATOR)
.required(false)
.build();
static final PropertyDescriptor CHARSET = new PropertyDescriptor.Builder()
- .name("mongo-charset")
- .displayName("Character Set")
+ .name("Character Set")
.description("Specifies the character set of the document data.")
.required(true)
.defaultValue("UTF-8")
@@ -133,8 +129,7 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor DATE_FORMAT = new
PropertyDescriptor.Builder()
- .name("mongo-date-format")
- .displayName("Date Format")
+ .name("Date Format")
.description("The date format string to use for formatting Date fields
that are returned from Mongo. It is only " +
"applied when the JSON output format is set to Standard JSON.")
.defaultValue("yyyy-MM-dd'T'HH:mm:ss'Z'")
@@ -205,6 +200,16 @@ public abstract class AbstractMongoProcessor extends
AbstractProcessor {
clientService =
context.getProperty(CLIENT_SERVICE).asControllerService(MongoDBClientService.class);
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("mongo-client-service",
CLIENT_SERVICE.getName());
+ config.renameProperty("json-type", JSON_TYPE.getName());
+ config.renameProperty("results-per-flowfile",
RESULTS_PER_FLOWFILE.getName());
+ config.renameProperty("mongo-query-attribute",
QUERY_ATTRIBUTE.getName());
+ config.renameProperty("mongo-charset", CHARSET.getName());
+ config.renameProperty("mongo-date-format", DATE_FORMAT.getName());
+ }
+
protected MongoClientSettings.Builder getClientSettings(final String uri,
final SSLContext sslContext) {
final MongoClientSettings.Builder builder =
MongoClientSettings.builder();
builder.applyConnectionString(new ConnectionString(uri));
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoQueryProcessor.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoQueryProcessor.java
index 7c66b1b4e2..b220e9a68e 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoQueryProcessor.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoQueryProcessor.java
@@ -24,6 +24,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -99,14 +100,19 @@ public abstract class AbstractMongoQueryProcessor extends
AbstractMongoProcessor
.build();
static final PropertyDescriptor RESULTS_PER_FLOWFILE = new
PropertyDescriptor.Builder()
- .name("results-per-flowfile")
- .displayName("Results Per FlowFile")
+ .name("Results Per FlowFile")
.description("How many results to put into a FlowFile at once. The
whole body will be treated as a JSON array of results.")
.required(false)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
.build();
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("results-per-flowfile",
RESULTS_PER_FLOWFILE.getName());
+ }
+
protected Document getQuery(ProcessContext context, ProcessSession
session, FlowFile input) {
Document query = null;
if (context.getProperty(QUERY).isSet()) {
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/DeleteMongo.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/DeleteMongo.java
index d224c99c2d..5f8cef52cb 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/DeleteMongo.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/DeleteMongo.java
@@ -30,6 +30,7 @@ import org.apache.nifi.components.AllowableValue;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.Validator;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -65,8 +66,7 @@ public class DeleteMongo extends AbstractMongoProcessor {
static final AllowableValue NO_FAIL = new AllowableValue("false",
"False", "Do not fail when nothing is deleted.");
static final PropertyDescriptor DELETE_MODE = new
PropertyDescriptor.Builder()
- .name("delete-mongo-delete-mode")
- .displayName("Delete Mode")
+ .name("Delete Mode")
.description("Choose between deleting one document by query or
many documents by query.")
.allowableValues(DELETE_ONE, DELETE_MANY, DELETE_ATTR)
.defaultValue("one")
@@ -74,8 +74,7 @@ public class DeleteMongo extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor FAIL_ON_NO_DELETE = new
PropertyDescriptor.Builder()
- .name("delete-mongo-fail-on-no-delete")
- .displayName("Fail When Nothing Is Deleted")
+ .name("Fail When Nothing Is Deleted")
.description("Determines whether to send the flowfile to the
success or failure relationship if nothing is successfully deleted.")
.allowableValues(YES_FAIL, NO_FAIL)
.defaultValue("true")
@@ -160,4 +159,11 @@ public class DeleteMongo extends AbstractMongoProcessor {
session.transfer(flowFile, REL_FAILURE);
}
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("delete-mongo-delete-mode",
DELETE_MODE.getName());
+ config.renameProperty("delete-mongo-fail-on-no-delete",
FAIL_ON_NO_DELETE.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
index f59b2da414..ee77f6a1ee 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
@@ -36,6 +36,7 @@ import org.apache.nifi.components.Validator;
import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -61,8 +62,7 @@ import java.util.stream.Stream;
})
public class GetMongo extends AbstractMongoQueryProcessor {
public static final PropertyDescriptor SEND_EMPTY_RESULTS = new
PropertyDescriptor.Builder()
- .name("get-mongo-send-empty")
- .displayName("Send Empty Result")
+ .name("Send Empty Result")
.description("If a query executes successfully, but returns no
results, send an empty JSON document " +
"signifying no result.")
.allowableValues("true", "false")
@@ -75,8 +75,7 @@ public class GetMongo extends AbstractMongoQueryProcessor {
static final AllowableValue NO_PP = new AllowableValue("false", "False");
static final PropertyDescriptor USE_PRETTY_PRINTING = new
PropertyDescriptor.Builder()
- .name("use-pretty-printing")
- .displayName("Pretty Print Results JSON")
+ .name("Pretty Print Results JSON")
.description("Choose whether or not to pretty print the JSON from
the results of the query. " +
"Choosing 'True' can greatly increase the space
requirements on disk depending on the complexity of the JSON document")
.required(true)
@@ -110,8 +109,8 @@ public class GetMongo extends AbstractMongoQueryProcessor {
).toList();
private ComponentLog logger;
-
private boolean sendEmpty;
+
@OnScheduled
public void onScheduled(PropertyContext context) {
sendEmpty = context.getProperty(SEND_EMPTY_RESULTS).asBoolean();
@@ -127,6 +126,13 @@ public class GetMongo extends AbstractMongoQueryProcessor {
return PROPERTY_DESCRIPTORS;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("get-mongo-send-empty",
SEND_EMPTY_RESULTS.getName());
+ config.renameProperty("use-pretty-printing",
USE_PRETTY_PRINTING.getName());
+ }
+
//Turn a list of Mongo result documents into a String representation of a
JSON array
private String buildBatch(List<Document> documents, String
jsonTypeSetting, String prettyPrintSetting) throws IOException {
StringBuilder builder = new StringBuilder();
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
index 9962966666..167ec8a8e4 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
@@ -31,6 +31,7 @@ import org.apache.nifi.annotation.lifecycle.OnScheduled;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -60,15 +61,13 @@ import java.util.Set;
})
public class GetMongoRecord extends AbstractMongoQueryProcessor {
public static final PropertyDescriptor WRITER_FACTORY = new
PropertyDescriptor.Builder()
- .name("get-mongo-record-writer-factory")
- .displayName("Record Writer")
+ .name("Record Writer")
.description("The record writer to use to write the result sets.")
.identifiesControllerService(RecordSetWriterFactory.class)
.required(true)
.build();
public static final PropertyDescriptor SCHEMA_NAME = new
PropertyDescriptor.Builder()
- .name("mongodb-schema-name")
- .displayName("Schema Name")
+ .name("Schema Name")
.description("The name of the schema in the configured schema registry
to use for the query results.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
@@ -189,4 +188,11 @@ public class GetMongoRecord extends
AbstractMongoQueryProcessor {
}
}
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("get-mongo-record-writer-factory",
WRITER_FACTORY.getName());
+ config.renameProperty("mongodb-schema-name", SCHEMA_NAME.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java
index 3f0edec4fc..46cf06216a 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java
@@ -37,6 +37,7 @@ import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -109,8 +110,7 @@ public class PutMongo extends AbstractMongoProcessor {
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
static final PropertyDescriptor UPDATE_QUERY = new
PropertyDescriptor.Builder()
- .name("putmongo-update-query")
- .displayName("Update Query")
+ .name("Update Query")
.description("Specify a full MongoDB query to be used for the lookup
query to do an update/upsert. NOTE: this field is ignored if the '%s' value is
not empty."
.formatted(UPDATE_QUERY_KEY.getDisplayName()))
.required(false)
@@ -120,8 +120,7 @@ public class PutMongo extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor UPDATE_OPERATION_MODE = new
PropertyDescriptor.Builder()
- .displayName("Update Mode")
- .name("put-mongo-update-mode")
+ .name("Update Mode")
.required(true)
.dependsOn(MODE, MODE_UPDATE)
.allowableValues(UPDATE_WITH_DOC, UPDATE_WITH_OPERATORS)
@@ -281,6 +280,13 @@ public class PutMongo extends AbstractMongoProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("putmongo-update-query", UPDATE_QUERY.getName());
+ config.renameProperty("put-mongo-update-mode",
UPDATE_OPERATION_MODE.getName());
+ }
+
private void removeUpdateKeys(String updateKeyParam, Map doc) {
String[] parts = updateKeyParam.split(",[\\s]*");
for (String part : parts) {
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongoRecord.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongoRecord.java
index 63a831bee3..729cb45594 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongoRecord.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongoRecord.java
@@ -32,6 +32,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.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -78,16 +79,14 @@ public class PutMongoRecord extends AbstractMongoProcessor {
.description("All FlowFiles that cannot be written to MongoDB are
routed to this relationship").build();
static final PropertyDescriptor RECORD_READER_FACTORY = new
PropertyDescriptor.Builder()
- .name("record-reader")
- .displayName("Record Reader")
+ .name("Record Reader")
.description("Specifies the Controller Service to use for parsing
incoming data and determining the data's schema")
.identifiesControllerService(RecordReaderFactory.class)
.required(true)
.build();
static final PropertyDescriptor INSERT_COUNT = new
PropertyDescriptor.Builder()
- .name("insert_count")
- .displayName("Batch Size")
+ .name("Batch Size")
.description("The number of records to group together for one
single insert/upsert operation against MongoDB.")
.defaultValue("100")
.required(true)
@@ -95,8 +94,7 @@ public class PutMongoRecord extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor ORDERED = new PropertyDescriptor.Builder()
- .name("ordered")
- .displayName("Ordered")
+ .name("Ordered")
.description("Perform ordered or unordered operations")
.allowableValues("True", "False")
.defaultValue("False")
@@ -105,8 +103,7 @@ public class PutMongoRecord extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor BYPASS_VALIDATION = new
PropertyDescriptor.Builder()
- .name("bypass-validation")
- .displayName("Bypass Validation")
+ .name("Bypass Validation")
.description("""
Enable or disable bypassing document schema validation
during insert or update operations.
Bypassing document validation is a Privilege Action in
MongoDB.
@@ -119,8 +116,7 @@ public class PutMongoRecord extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor UPDATE_KEY_FIELDS = new
PropertyDescriptor.Builder()
- .name("update-key-fields")
- .displayName("Update Key Fields")
+ .name("Update Key Fields")
.description("Comma separated list of fields based on which to
identify documents that need to be updated. " +
"If this property is set NiFi will attempt an upsert operation
on all documents. " +
"If this property is not set all documents will be inserted.")
@@ -129,8 +125,7 @@ public class PutMongoRecord extends AbstractMongoProcessor {
.build();
static final PropertyDescriptor UPDATE_MODE = new
PropertyDescriptor.Builder()
- .name("update-mode")
- .displayName("Update Mode")
+ .name("Update Mode")
.dependsOn(UPDATE_KEY_FIELDS)
.description("Choose between updating a single document or multiple
documents per incoming record.")
.allowableValues(UpdateMethod.class)
@@ -263,6 +258,17 @@ public class PutMongoRecord extends AbstractMongoProcessor
{
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("record-reader",
RECORD_READER_FACTORY.getName());
+ config.renameProperty("insert_count", INSERT_COUNT.getName());
+ config.renameProperty("ordered", ORDERED.getName());
+ config.renameProperty("bypass-validation",
BYPASS_VALIDATION.getName());
+ config.renameProperty("update-key-fields",
UPDATE_KEY_FIELDS.getName());
+ config.renameProperty("update-mode", UPDATE_MODE.getName());
+ }
+
private Document convertArrays(Document doc) {
Document retVal = new Document();
for (Map.Entry<String, Object> entry : doc.entrySet()) {
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/QueryHelper.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/QueryHelper.java
index c31b016a10..8e9cf1c115 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/QueryHelper.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/QueryHelper.java
@@ -34,10 +34,10 @@ public interface QueryHelper {
"Fetch the entire query result and then make it available to
downstream processors.");
AllowableValue MODE_MANY_COMMITS = new AllowableValue("streaming", "Stream
Query Results",
"As soon as the query start sending results to the downstream
processors at regular intervals.");
+ String OLD_OPERATION_MODE_PROPERTY_NAME = "mongo-operation-mode";
PropertyDescriptor OPERATION_MODE = new PropertyDescriptor.Builder()
- .name("mongo-operation-mode")
- .displayName("Operation Mode")
+ .name("Operation Mode")
.allowableValues(MODE_ONE_COMMIT, MODE_MANY_COMMITS)
.defaultValue(MODE_ONE_COMMIT.getValue())
.required(true)
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
index 6a5fac2d5a..30cea4b28d 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
@@ -30,6 +30,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -79,8 +80,7 @@ public class RunMongoAggregation extends
AbstractMongoProcessor {
}
static final PropertyDescriptor QUERY = new PropertyDescriptor.Builder()
- .name("mongo-agg-query")
- .displayName("Query")
+ .name("Query")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.description("The aggregation query to be executed.")
.required(true)
@@ -88,8 +88,7 @@ public class RunMongoAggregation extends
AbstractMongoProcessor {
.build();
static final PropertyDescriptor ALLOW_DISK_USE = new
PropertyDescriptor.Builder()
- .name("allow-disk-use")
- .displayName("Allow Disk Use")
+ .name("Allow Disk Use")
.description("Set this to true to enable writing data to temporary
files to prevent exceeding the " +
"maximum memory use limit during aggregation pipeline
staged when handling large datasets.")
.required(true)
@@ -208,4 +207,11 @@ public class RunMongoAggregation extends
AbstractMongoProcessor {
}
}
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("mongo-agg-query", QUERY.getName());
+ config.renameProperty("allow-disk-use", ALLOW_DISK_USE.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/AbstractGridFSProcessor.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/AbstractGridFSProcessor.java
index 0deca0da85..bdf43fe451 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/AbstractGridFSProcessor.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/AbstractGridFSProcessor.java
@@ -25,6 +25,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.Validator;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
@@ -38,8 +39,7 @@ import java.util.Set;
public abstract class AbstractGridFSProcessor extends AbstractProcessor {
static final PropertyDescriptor CLIENT_SERVICE = new
PropertyDescriptor.Builder()
- .name("gridfs-client-service")
- .displayName("Client Service")
+ .name("Client Service")
.description("The MongoDB client service to use for database
connections.")
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
.required(true)
@@ -47,8 +47,7 @@ public abstract class AbstractGridFSProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor DATABASE_NAME = new
PropertyDescriptor.Builder()
- .name("gridfs-database-name")
- .displayName("Mongo Database Name")
+ .name("Mongo Database Name")
.description("The name of the database to use")
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -56,8 +55,7 @@ public abstract class AbstractGridFSProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor BUCKET_NAME = new
PropertyDescriptor.Builder()
- .name("gridfs-bucket-name")
- .displayName("Bucket Name")
+ .name("Bucket Name")
.description("The GridFS bucket where the files will be stored. If
left blank, it will use the default value 'fs' " +
"that the MongoDB client driver uses.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -66,8 +64,7 @@ public abstract class AbstractGridFSProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor FILE_NAME = new
PropertyDescriptor.Builder()
- .name("gridfs-file-name")
- .displayName("File Name")
+ .name("File Name")
.description("The name of the file in the bucket that is the target of
this processor.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.required(false)
@@ -75,8 +72,7 @@ public abstract class AbstractGridFSProcessor extends
AbstractProcessor {
.build();
static final PropertyDescriptor QUERY_ATTRIBUTE = new
PropertyDescriptor.Builder()
- .name("mongo-query-attribute")
- .displayName("Query Output Attribute")
+ .name("Query Output Attribute")
.description("If set, the query will be written to a specified
attribute on the output flowfiles.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.ATTRIBUTE_KEY_PROPERTY_NAME_VALIDATOR)
@@ -106,6 +102,15 @@ public abstract class AbstractGridFSProcessor extends
AbstractProcessor {
protected volatile MongoDBClientService clientService;
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("gridfs-client-service",
CLIENT_SERVICE.getName());
+ config.renameProperty("gridfs-database-name", DATABASE_NAME.getName());
+ config.renameProperty("gridfs-bucket-name", BUCKET_NAME.getName());
+ config.renameProperty("gridfs-file-name", FILE_NAME.getName());
+ config.renameProperty("mongo-query-attribute",
QUERY_ATTRIBUTE.getName());
+ }
+
protected static List<PropertyDescriptor> getCommonPropertyDescriptors() {
return PROPERTY_DESCRIPTORS;
}
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/DeleteGridFS.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/DeleteGridFS.java
index 27cbdb0a6d..20f8644e8d 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/DeleteGridFS.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/DeleteGridFS.java
@@ -31,6 +31,7 @@ import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -52,8 +53,7 @@ import java.util.stream.Stream;
@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
public class DeleteGridFS extends AbstractGridFSProcessor {
static final PropertyDescriptor QUERY = new PropertyDescriptor.Builder()
- .name("delete-gridfs-query")
- .displayName("Query")
+ .name("Query")
.description("A valid MongoDB query to use to find and delete one or
more files from GridFS.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(JsonValidator.INSTANCE)
@@ -61,8 +61,7 @@ public class DeleteGridFS extends AbstractGridFSProcessor {
.build();
static final PropertyDescriptor FILE_NAME = new
PropertyDescriptor.Builder()
- .name("gridfs-file-name")
- .displayName("File Name")
+ .name("File Name")
.description("The name of the file in the bucket that is the target of
this processor. GridFS file names do not " +
"include path information because GridFS does not sort files
into folders within a bucket.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -89,6 +88,13 @@ public class DeleteGridFS extends AbstractGridFSProcessor {
return PROPERTY_DESCRIPTORS;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("delete-gridfs-query", QUERY.getName());
+ config.renameProperty("gridfs-file-name", FILE_NAME.getName());
+ }
+
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext validationContext) {
List<ValidationResult> problems = new ArrayList<>();
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/FetchGridFS.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/FetchGridFS.java
index 0a5838ae94..64d4eca9a3 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/FetchGridFS.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/FetchGridFS.java
@@ -31,6 +31,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -61,8 +62,7 @@ public class FetchGridFS extends AbstractGridFSProcessor
implements QueryHelper
static final String METADATA_ATTRIBUTE = "gridfs.file.metadata";
static final PropertyDescriptor QUERY = new PropertyDescriptor.Builder()
- .name("gridfs-query")
- .displayName("Query")
+ .name("Query")
.description("A valid MongoDB query to use to fetch one or more files
from GridFS.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(JsonValidator.INSTANCE)
@@ -101,6 +101,12 @@ public class FetchGridFS extends AbstractGridFSProcessor
implements QueryHelper
return PROPERTY_DESCRIPTORS;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty(OLD_OPERATION_MODE_PROPERTY_NAME,
OPERATION_MODE.getName());
+ config.renameProperty("gridfs-query", QUERY.getName());
+ }
+
private String getQuery(ProcessSession session, ProcessContext context,
FlowFile input) throws IOException {
String queryString;
if (context.getProperty(FILE_NAME).isSet()) {
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/PutGridFS.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/PutGridFS.java
index 72e4b64f47..83ac0c2129 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/PutGridFS.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/gridfs/PutGridFS.java
@@ -31,6 +31,7 @@ import org.apache.nifi.components.Validator;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.mongodb.MongoDBClientService;
import org.apache.nifi.processor.DataUnit;
import org.apache.nifi.processor.ProcessContext;
@@ -55,8 +56,7 @@ import java.util.stream.Stream;
public class PutGridFS extends AbstractGridFSProcessor {
static final PropertyDescriptor PROPERTIES_PREFIX = new
PropertyDescriptor.Builder()
- .name("putgridfs-properties-prefix")
- .displayName("File Properties Prefix")
+ .name("File Properties Prefix")
.description("Attributes that have this prefix will be added to the
file stored in GridFS as metadata.")
.required(false)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -72,8 +72,7 @@ public class PutGridFS extends AbstractGridFSProcessor {
"must be unique.");
static final PropertyDescriptor ENFORCE_UNIQUENESS = new
PropertyDescriptor.Builder()
- .name("putgridfs-enforce-uniqueness")
- .displayName("Enforce Uniqueness")
+ .name("Enforce Uniqueness")
.description("When enabled, this option will ensure that uniqueness is
enforced on the bucket. It will do so by creating a MongoDB index " +
"that matches your selection. It should ideally be configured
once when the bucket is created for the first time because " +
"it could take a long time to build on an existing bucket wit
a lot of data.")
@@ -82,8 +81,7 @@ public class PutGridFS extends AbstractGridFSProcessor {
.required(true)
.build();
static final PropertyDescriptor HASH_ATTRIBUTE = new
PropertyDescriptor.Builder()
- .name("putgridfs-hash-attribute")
- .displayName("Hash Attribute")
+ .name("Hash Attribute")
.description("If uniquness enforcement is enabled and the file hash is
part of the constraint, this must be set to an attribute that " +
"exists on all incoming flowfiles.")
.defaultValue("hash.value")
@@ -91,8 +89,7 @@ public class PutGridFS extends AbstractGridFSProcessor {
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.build();
static final PropertyDescriptor CHUNK_SIZE = new
PropertyDescriptor.Builder()
- .name("putgridfs-chunk-size")
- .displayName("Chunk Size")
+ .name("Chunk Size")
.description("Controls the maximum size of each chunk of a file
uploaded into GridFS.")
.defaultValue("256 KB")
.required(true)
@@ -101,8 +98,7 @@ public class PutGridFS extends AbstractGridFSProcessor {
.build();
static final PropertyDescriptor FILE_NAME = new
PropertyDescriptor.Builder()
- .name("gridfs-file-name")
- .displayName("File Name")
+ .name("File Name")
.description("The name of the file in the bucket that is the target of
this processor. GridFS file names do not " +
"include path information because GridFS does not sort files
into folders within a bucket.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -194,6 +190,16 @@ public class PutGridFS extends AbstractGridFSProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("putgridfs-properties-prefix",
PROPERTIES_PREFIX.getName());
+ config.renameProperty("putgridfs-enforce-uniqueness",
ENFORCE_UNIQUENESS.getName());
+ config.renameProperty("putgridfs-hash-attribute",
HASH_ATTRIBUTE.getName());
+ config.renameProperty("putgridfs-chunk-size", CHUNK_SIZE.getName());
+ config.renameProperty("gridfs-file-name", FILE_NAME.getName());
+ }
+
private boolean canUploadFile(ProcessContext context, FlowFile input,
String bucketName) {
boolean retVal;
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-services/src/main/java/org/apache/nifi/mongodb/MongoDBLookupService.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-services/src/main/java/org/apache/nifi/mongodb/MongoDBLookupService.java
index 3a8c8ee7f7..a3c5353b81 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-services/src/main/java/org/apache/nifi/mongodb/MongoDBLookupService.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-services/src/main/java/org/apache/nifi/mongodb/MongoDBLookupService.java
@@ -29,6 +29,7 @@ import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.lookup.LookupFailureException;
import org.apache.nifi.lookup.LookupService;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.util.JsonValidator;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.serialization.JsonInferenceSchemaRegistryService;
@@ -72,39 +73,34 @@ public class MongoDBLookupService extends
JsonInferenceSchemaRegistryService imp
.build();
public static final PropertyDescriptor CONTROLLER_SERVICE = new
PropertyDescriptor.Builder()
- .name("mongo-lookup-client-service")
- .displayName("Client Service")
+ .name("Client Service")
.description("A MongoDB controller service to use with this lookup
service.")
.required(true)
.identifiesControllerService(MongoDBClientService.class)
.build();
public static final PropertyDescriptor DATABASE_NAME = new
PropertyDescriptor.Builder()
- .name("mongo-db-name")
- .displayName("Mongo Database Name")
+ .name("Mongo Database Name")
.description("The name of the database to use")
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.build();
public static final PropertyDescriptor COLLECTION_NAME = new
PropertyDescriptor.Builder()
- .name("mongo-collection-name")
- .displayName("Mongo Collection Name")
+ .name("Mongo Collection Name")
.description("The name of the collection to use")
.required(true)
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.build();
public static final PropertyDescriptor LOOKUP_VALUE_FIELD = new
PropertyDescriptor.Builder()
- .name("mongo-lookup-value-field")
- .displayName("Lookup Value Field")
+ .name("Lookup Value Field")
.description("The field whose value will be returned when the lookup
key(s) match a record. If not specified then the entire " +
"MongoDB result document minus the _id field will be returned
as a record.")
.addValidator(Validator.VALID)
.required(false)
.build();
public static final PropertyDescriptor PROJECTION = new
PropertyDescriptor.Builder()
- .name("mongo-lookup-projection")
- .displayName("Projection")
+ .name("Projection")
.description("Specifies a projection for limiting which fields will be
returned.")
.required(false)
.addValidator(JsonValidator.INSTANCE)
@@ -191,6 +187,16 @@ public class MongoDBLookupService extends
JsonInferenceSchemaRegistryService imp
return Collections.emptySet();
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("mongo-lookup-client-service",
CONTROLLER_SERVICE.getName());
+ config.renameProperty("mongo-db-name", DATABASE_NAME.getName());
+ config.renameProperty("mongo-collection-name",
COLLECTION_NAME.getName());
+ config.renameProperty("mongo-lookup-value-field",
LOOKUP_VALUE_FIELD.getName());
+ config.renameProperty("mongo-lookup-projection", PROJECTION.getName());
+ }
+
@Override
protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
AllowableValue[] strategies = new AllowableValue[] {
diff --git
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/ConsumeMQTT.java
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/ConsumeMQTT.java
index b2cf836b6d..549712d140 100644
---
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/ConsumeMQTT.java
+++
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/ConsumeMQTT.java
@@ -36,6 +36,7 @@ import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.ProcessorInitializationContext;
@@ -140,8 +141,7 @@ public class ConsumeMQTT extends AbstractMQTTProcessor {
.build();
public static final PropertyDescriptor PROP_QOS = new
PropertyDescriptor.Builder()
- .name("Quality of Service(QoS)")
- .displayName("Quality of Service (QoS)")
+ .name("Quality of Service")
.description("The Quality of Service (QoS) to receive the message
with. Accepts values '0', '1' or '2'; '0' for 'at most once', '1' for 'at least
once', '2' for 'exactly once'.")
.required(true)
.defaultValue(ALLOWABLE_VALUE_QOS_0.getValue())
@@ -180,8 +180,7 @@ public class ConsumeMQTT extends AbstractMQTTProcessor {
.build();
public static final PropertyDescriptor ADD_ATTRIBUTES_AS_FIELDS = new
PropertyDescriptor.Builder()
- .name("add-attributes-as-fields")
- .displayName("Add attributes as fields")
+ .name("Add Attributes as Fields")
.description("If setting this property to true, default fields "
+ "are going to be added in each record: _topic, _qos,
_isDuplicate, _isRetained.")
.required(true)
@@ -378,6 +377,13 @@ public class ConsumeMQTT extends AbstractMQTTProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("Quality of Service(QoS)", PROP_QOS.getName());
+ config.renameProperty("add-attributes-as-fields",
ADD_ATTRIBUTES_AS_FIELDS.getName());
+ }
+
private void initializeClient(ProcessContext context) {
// NOTE: This method is called when isConnected returns false which
can happen when the client is null, or when it is
// non-null but not connected, so we need to handle each case and only
create a new client when it is null
diff --git
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
index 9a0773ca05..1e7cc4f64a 100644
---
a/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
+++
b/nifi-extension-bundles/nifi-mqtt-bundle/nifi-mqtt-processors/src/main/java/org/apache/nifi/processors/mqtt/common/AbstractMQTTProcessor.java
@@ -25,6 +25,7 @@ import org.apache.nifi.components.Validator;
import org.apache.nifi.expression.AttributeExpression;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.AbstractSessionFactoryProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -227,22 +228,19 @@ public abstract class AbstractMQTTProcessor extends
AbstractSessionFactoryProces
.build();
public static final PropertyDescriptor BASE_RECORD_READER = new
PropertyDescriptor.Builder()
- .name("record-reader")
- .displayName("Record Reader")
+ .name("Record Reader")
.identifiesControllerService(RecordReaderFactory.class)
.required(false)
.build();
public static final PropertyDescriptor BASE_RECORD_WRITER = new
PropertyDescriptor.Builder()
- .name("record-writer")
- .displayName("Record Writer")
+ .name("Record Writer")
.identifiesControllerService(RecordSetWriterFactory.class)
.required(false)
.build();
public static final PropertyDescriptor BASE_MESSAGE_DEMARCATOR = new
PropertyDescriptor.Builder()
- .name("message-demarcator")
- .displayName("Message Demarcator")
+ .name("Message Demarcator")
.required(false)
.addValidator(Validator.VALID)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -354,6 +352,13 @@ public abstract class AbstractMQTTProcessor extends
AbstractSessionFactoryProces
public abstract void onTrigger(final ProcessContext context, final
ProcessSession session) throws ProcessException;
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("record-reader", BASE_RECORD_READER.getName());
+ config.renameProperty("record-writer", BASE_RECORD_WRITER.getName());
+ config.renameProperty("message-demarcator",
BASE_MESSAGE_DEMARCATOR.getName());
+ }
+
protected boolean isConnected() {
return (mqttClient != null && mqttClient.isConnected());
}
diff --git
a/nifi-extension-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
b/nifi-extension-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
index 511796d838..c0ce4852ba 100644
---
a/nifi-extension-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
+++
b/nifi-extension-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
@@ -34,6 +34,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -75,7 +76,8 @@ public class ParseNetflowv5 extends AbstractProcessor {
"Parsed data routes as flowfile JSON content");
public static final AllowableValue DESTINATION_ATTRIBUTES = new
AllowableValue(FLOWFILE_ATTRIBUTE, FLOWFILE_ATTRIBUTE,
"Parsed data routes as flowfile attributes");
- public static final PropertyDescriptor FIELDS_DESTINATION = new
PropertyDescriptor.Builder().name("FIELDS_DESTINATION").displayName("Parsed
fields destination")
+ public static final PropertyDescriptor FIELDS_DESTINATION = new
PropertyDescriptor.Builder()
+ .name("Parsed Fields Destination")
.description("Indicates whether the results of the parser are
written " + "to the FlowFile content or a FlowFile attribute; if using " +
DESTINATION_ATTRIBUTES
+ ", fields will be populated as attributes. If set to " +
DESTINATION_CONTENT + ", the netflowv5 field will be converted into a flat JSON
object.")
.required(true).allowableValues(DESTINATION_CONTENT,
DESTINATION_ATTRIBUTES).defaultValue(DESTINATION_CONTENT.getDisplayName()).build();
@@ -162,6 +164,11 @@ public class ParseNetflowv5 extends AbstractProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("FIELDS_DESTINATION",
FIELDS_DESTINATION.getName());
+ }
+
private void generateJSON(final List<FlowFile> multipleRecords, final
ProcessSession session, final FlowFile flowFile, final Netflowv5Parser parser,
final int processedRecord)
throws JsonProcessingException {
int numberOfRecords = processedRecord;