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 562b8825b7 NIFI-15101 Standardized property names in JMS, Jolt, and
JSLT bundles (#10433)
562b8825b7 is described below
commit 562b8825b7a8285c14a65bfafc8c28664b850977
Author: dan-s1 <[email protected]>
AuthorDate: Fri Oct 17 17:05:37 2025 -0400
NIFI-15101 Standardized property names in JMS, Jolt, and JSLT bundles
(#10433)
Signed-off-by: David Handermann <[email protected]>
---
.../jms/cf/JMSConnectionFactoryProperties.java | 22 ++++++++-----------
.../nifi/jms/cf/JMSConnectionFactoryProvider.java | 10 +++++++++
.../jms/cf/JndiJmsConnectionFactoryProperties.java | 24 ++++++++++-----------
.../jms/cf/JndiJmsConnectionFactoryProvider.java | 12 +++++++++++
.../nifi/jms/processors/AbstractJMSProcessor.java | 22 +++++++++++++------
.../org/apache/nifi/jms/processors/ConsumeJMS.java | 12 +++++------
.../org/apache/nifi/jms/processors/PublishJMS.java | 18 ++++++++++------
.../nifi/processors/jolt/JoltTransformRecord.java | 13 +++++++----
.../nifi/processors/jslt/JSLTTransformJSON.java | 25 +++++++++++++---------
9 files changed, 101 insertions(+), 57 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProperties.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProperties.java
index ebf017c799..5e45eb5428 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProperties.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProperties.java
@@ -26,18 +26,17 @@ import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.ssl.SSLContextService;
-import java.util.Arrays;
import java.util.List;
public class JMSConnectionFactoryProperties {
- private static final String BROKER = "broker";
- private static final String CF_IMPL = "cf";
- private static final String CF_LIB = "cflib";
+ public static final String OLD_JMS_BROKER_URI_PROPERTY_NAME = "broker";
+ public static final String OLD_JMS_CONNECTION_FACTORY_IMPL_PROPERTY_NAME =
"cf";
+ public static final String OLD_JMS_CLIENT_LIBRARIES_PROPERTY_NAME =
"cflib";
+ public static final String OLD_JMS_SSL_CONTEXT_SERVICE_PROPERTY_NAME =
"SSL Context Service";
public static final PropertyDescriptor JMS_CONNECTION_FACTORY_IMPL = new
PropertyDescriptor.Builder()
- .name(CF_IMPL)
- .displayName("JMS Connection Factory Implementation Class")
+ .name("JMS Connection Factory Implementation Class")
.description("The fully qualified name of the JMS
ConnectionFactory implementation "
+ "class (eg.
org.apache.activemq.ActiveMQConnectionFactory).")
.required(true)
@@ -46,8 +45,7 @@ public class JMSConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JMS_CLIENT_LIBRARIES = new
PropertyDescriptor.Builder()
- .name(CF_LIB)
- .displayName("JMS Client Libraries")
+ .name("JMS Client Libraries")
.description("Path to the directory with additional resources (eg.
JARs, configuration files etc.) to be added "
+ "to the classpath (defined as a comma separated list of
values). Such resources typically represent target JMS client libraries "
+ "for the ConnectionFactory implementation.")
@@ -58,8 +56,7 @@ public class JMSConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JMS_BROKER_URI = new
PropertyDescriptor.Builder()
- .name(BROKER)
- .displayName("JMS Broker URI")
+ .name("JMS Broker URI")
.description("URI pointing to the network location of the JMS
Message broker. Example for ActiveMQ: "
+ "'tcp://myhost:61616'. Examples for IBM MQ:
'myhost(1414)' and 'myhost01(1414),myhost02(1414)'.")
.required(false)
@@ -68,14 +65,13 @@ public class JMSConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JMS_SSL_CONTEXT_SERVICE = new
PropertyDescriptor.Builder()
- .name("SSL Context Service")
- .displayName("JMS SSL Context Service")
+ .name("JMS SSL Context Service")
.description("The SSL Context Service used to provide client
certificate information for TLS/SSL connections.")
.required(false)
.identifiesControllerService(SSLContextService.class)
.build();
- private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
Arrays.asList(
+ private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
JMSConnectionFactoryProperties.JMS_CONNECTION_FACTORY_IMPL,
JMSConnectionFactoryProperties.JMS_CLIENT_LIBRARIES,
JMSConnectionFactoryProperties.JMS_BROKER_URI,
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
index 11d7ab3261..7dc599d45e 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
@@ -29,6 +29,8 @@ import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
import jakarta.jms.ConnectionFactory;
+import org.apache.nifi.migration.PropertyConfiguration;
+
import java.util.List;
/**
@@ -61,6 +63,14 @@ import java.util.List;
)
public class JMSConnectionFactoryProvider extends
AbstractJMSConnectionFactoryProvider {
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_CONNECTION_FACTORY_IMPL_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_CONNECTION_FACTORY_IMPL.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_CLIENT_LIBRARIES_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_CLIENT_LIBRARIES.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_BROKER_URI_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_BROKER_URI.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_SSL_CONTEXT_SERVICE_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_SSL_CONTEXT_SERVICE.getName());
+ }
+
@Override
protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
return JMSConnectionFactoryProperties.getPropertyDescriptors();
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProperties.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProperties.java
index 1c57499b51..1465e6b489 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProperties.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProperties.java
@@ -40,10 +40,15 @@ import static
org.apache.nifi.processor.util.StandardValidators.NON_EMPTY_VALIDA
public class JndiJmsConnectionFactoryProperties {
public static final String URL_SCHEMES_ALLOWED_PROPERTY =
"org.apache.nifi.jms.cf.jndi.provider.url.schemes.allowed";
+ public static final String OLD_JNDI_INITIAL_CONTEXT_FACTORY_PROPERTY_NAME
= "java.naming.factory.initial";
+ public static final String OLD_JNDI_PROVIDER_URL_PROPERTY_NAME =
"java.naming.provider.url";
+ public static final String OLD_JNDI_CONNECTION_FACTORY_NAME_PROPERTY_NAME
= "connection.factory.name";
+ public static final String OLD_JNDI_CLIENT_LIBRARIES_PROPERTY_NAME =
"naming.factory.libraries";
+ public static final String OLD_JNDI_PRINCIPAL_PROPERTY_NAME =
"java.naming.security.principal";
+ public static final String OLD_JNDI_CREDENTIALS_PROPERTY_NAME =
"java.naming.security.credentials";
public static final PropertyDescriptor JNDI_INITIAL_CONTEXT_FACTORY = new
Builder()
- .name("java.naming.factory.initial")
- .displayName("JNDI Initial Context Factory Class")
+ .name("JNDI Initial Context Factory Class")
.description("The fully qualified class name of the JNDI Initial
Context Factory Class (java.naming.factory.initial).")
.required(true)
.addValidator(NON_EMPTY_VALIDATOR)
@@ -51,8 +56,7 @@ public class JndiJmsConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JNDI_PROVIDER_URL = new Builder()
- .name("java.naming.provider.url")
- .displayName("JNDI Provider URL")
+ .name("JNDI Provider URL")
.description("The URL of the JNDI Provider to use as the value for
java.naming.provider.url. See additional details documentation for allowed URL
schemes.")
.required(true)
.addValidator(new JndiJmsProviderUrlValidator())
@@ -60,8 +64,7 @@ public class JndiJmsConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JNDI_CONNECTION_FACTORY_NAME = new
Builder()
- .name("connection.factory.name")
- .displayName("JNDI Name of the Connection Factory")
+ .name("JNDI Name of the Connection Factory")
.description("The name of the JNDI Object to lookup for the
Connection Factory.")
.required(true)
.addValidator(NON_EMPTY_VALIDATOR)
@@ -69,8 +72,7 @@ public class JndiJmsConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JNDI_CLIENT_LIBRARIES = new
Builder()
- .name("naming.factory.libraries")
- .displayName("JNDI / JMS Client Libraries")
+ .name("JNDI / JMS Client Libraries")
.description("Specifies jar files and/or directories to add to the
ClassPath " +
"in order to load the JNDI / JMS client libraries. This
should be a comma-separated list of files, directories, and/or URLs. If a
directory is given, any files in that directory" +
" will be included, but subdirectories will not be
included (i.e., it is not recursive).")
@@ -81,8 +83,7 @@ public class JndiJmsConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JNDI_PRINCIPAL = new Builder()
- .name("java.naming.security.principal")
- .displayName("JNDI Principal")
+ .name("JNDI Principal")
.description("The Principal to use when authenticating with JNDI
(java.naming.security.principal).")
.required(false)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -90,8 +91,7 @@ public class JndiJmsConnectionFactoryProperties {
.build();
public static final PropertyDescriptor JNDI_CREDENTIALS = new Builder()
- .name("java.naming.security.credentials")
- .displayName("JNDI Credentials")
+ .name("JNDI Credentials")
.description("The Credentials to use when authenticating with JNDI
(java.naming.security.credentials).")
.required(false)
.addValidator(Validator.VALID)
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProvider.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProvider.java
index 2440f56f98..e02684566f 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProvider.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/cf/JndiJmsConnectionFactoryProvider.java
@@ -28,6 +28,8 @@ import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
import jakarta.jms.ConnectionFactory;
+import org.apache.nifi.migration.PropertyConfiguration;
+
import java.util.List;
@Tags({"jms", "jndi", "messaging", "integration", "queue", "topic", "publish",
"subscribe"})
@@ -72,4 +74,14 @@ public class JndiJmsConnectionFactoryProvider extends
AbstractControllerService
public void resetConnectionFactory(ConnectionFactory cachedFactory) {
delegate.resetConnectionFactory(cachedFactory);
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_INITIAL_CONTEXT_FACTORY_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_INITIAL_CONTEXT_FACTORY.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_PROVIDER_URL_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_PROVIDER_URL.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CONNECTION_FACTORY_NAME_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CONNECTION_FACTORY_NAME.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CLIENT_LIBRARIES_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CLIENT_LIBRARIES.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_PRINCIPAL_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_PRINCIPAL.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CREDENTIALS_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CREDENTIALS.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/AbstractJMSProcessor.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/AbstractJMSProcessor.java
index d8284b294a..5aaf8a7ee6 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/AbstractJMSProcessor.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/AbstractJMSProcessor.java
@@ -115,8 +115,7 @@ public abstract class AbstractJMSProcessor<T extends
JMSWorker> extends Abstract
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
.build();
static final PropertyDescriptor CHARSET = new PropertyDescriptor.Builder()
- .name("character-set")
- .displayName("Character Set")
+ .name("Character Set")
.description("The name of the character set to use to construct or
interpret TextMessages")
.required(true)
.addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
@@ -159,15 +158,13 @@ public abstract class AbstractJMSProcessor<T extends
JMSWorker> extends Abstract
);
static final PropertyDescriptor BASE_RECORD_READER = new
PropertyDescriptor.Builder()
- .name("record-reader")
- .displayName("Record Reader")
+ .name("Record Reader")
.identifiesControllerService(RecordReaderFactory.class)
.required(false)
.build();
static final PropertyDescriptor BASE_RECORD_WRITER = new
PropertyDescriptor.Builder()
- .name("record-writer")
- .displayName("Record Writer")
+ .name("Record Writer")
.identifiesControllerService(RecordSetWriterFactory.class)
.dependsOn(BASE_RECORD_READER)
.required(true)
@@ -197,6 +194,19 @@ public abstract class AbstractJMSProcessor<T extends
JMSWorker> extends Abstract
@Override
public void migrateProperties(final PropertyConfiguration config) {
config.removeProperty("Session Cache size");
+ config.renameProperty("character-set", CHARSET.getName());
+ config.renameProperty("record-reader", BASE_RECORD_READER.getName());
+ config.renameProperty("record-writer", BASE_RECORD_WRITER.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_INITIAL_CONTEXT_FACTORY_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_INITIAL_CONTEXT_FACTORY.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_PROVIDER_URL_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_PROVIDER_URL.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CONNECTION_FACTORY_NAME_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CONNECTION_FACTORY_NAME.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CLIENT_LIBRARIES_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CLIENT_LIBRARIES.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_PRINCIPAL_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_PRINCIPAL.getName());
+
config.renameProperty(JndiJmsConnectionFactoryProperties.OLD_JNDI_CREDENTIALS_PROPERTY_NAME,
JndiJmsConnectionFactoryProperties.JNDI_CREDENTIALS.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_CONNECTION_FACTORY_IMPL_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_CONNECTION_FACTORY_IMPL.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_CLIENT_LIBRARIES_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_CLIENT_LIBRARIES.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_BROKER_URI_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_BROKER_URI.getName());
+
config.renameProperty(JMSConnectionFactoryProperties.OLD_JMS_SSL_CONTEXT_SERVICE_PROPERTY_NAME,
JMSConnectionFactoryProperties.JMS_SSL_CONTEXT_SERVICE.getName());
}
@Override
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/ConsumeJMS.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/ConsumeJMS.java
index b8cab98eb8..fc297a0b58 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/ConsumeJMS.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/ConsumeJMS.java
@@ -145,8 +145,7 @@ public class ConsumeJMS extends
AbstractJMSProcessor<JMSConsumer> {
.build();
static final PropertyDescriptor DURABLE_SUBSCRIBER = new
PropertyDescriptor.Builder()
- .name("Durable subscription")
- .displayName("Durable Subscription")
+ .name("Durable Subscription")
.description("If destination is Topic if present then make it the
consumer durable. " +
"@see
https://jakarta.ee/specifications/platform/9/apidocs/jakarta/jms/session#createDurableConsumer-jakarta.jms.Topic-java.lang.String-")
.required(false)
@@ -156,8 +155,7 @@ public class ConsumeJMS extends
AbstractJMSProcessor<JMSConsumer> {
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.build();
static final PropertyDescriptor SHARED_SUBSCRIBER = new
PropertyDescriptor.Builder()
- .name("Shared subscription")
- .displayName("Shared Subscription")
+ .name("Shared Subscription")
.description("If destination is Topic if present then make it the
consumer shared. " +
"@see
https://jakarta.ee/specifications/platform/9/apidocs/jakarta/jms/session#createSharedConsumer-jakarta.jms.Topic-java.lang.String-")
.required(false)
@@ -201,8 +199,7 @@ public class ConsumeJMS extends
AbstractJMSProcessor<JMSConsumer> {
.build();
static final PropertyDescriptor OUTPUT_STRATEGY = new
PropertyDescriptor.Builder()
- .name("output-strategy")
- .displayName("Output Strategy")
+ .name("Output Strategy")
.description("The format used to output the JMS message into a
FlowFile record.")
.dependsOn(RECORD_READER)
.required(true)
@@ -264,6 +261,9 @@ public class ConsumeJMS extends
AbstractJMSProcessor<JMSConsumer> {
@Override
public void migrateProperties(PropertyConfiguration config) {
super.migrateProperties(config);
+ config.renameProperty("Durable subscription",
DURABLE_SUBSCRIBER.getName());
+ config.renameProperty("Shared subscription",
SHARED_SUBSCRIBER.getName());
+ config.renameProperty("output-strategy", OUTPUT_STRATEGY.getName());
if (!config.hasProperty(MAX_BATCH_SIZE)) {
if (config.isPropertySet(BASE_RECORD_READER)) {
diff --git
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/PublishJMS.java
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/PublishJMS.java
index e67dbfe457..cfeef21619 100644
---
a/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/PublishJMS.java
+++
b/nifi-extension-bundles/nifi-jms-bundle/nifi-jms-processors/src/main/java/org/apache/nifi/jms/processors/PublishJMS.java
@@ -39,6 +39,7 @@ import
org.apache.nifi.jms.processors.ioconcept.reader.FlowFileReader;
import org.apache.nifi.jms.processors.ioconcept.reader.FlowFileReaderCallback;
import
org.apache.nifi.jms.processors.ioconcept.reader.StateTrackingFlowFileReader;
import org.apache.nifi.jms.processors.ioconcept.reader.record.RecordSupplier;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Processor;
@@ -115,16 +116,14 @@ import static
org.apache.nifi.jms.processors.ioconcept.reader.record.ProvenanceE
public class PublishJMS extends AbstractJMSProcessor<JMSPublisher> {
static final PropertyDescriptor MESSAGE_BODY = new
PropertyDescriptor.Builder()
- .name("message-body-type")
- .displayName("Message Body Type")
+ .name("Message Body Type")
.description("The type of JMS message body to construct.")
.required(true)
.defaultValue(BYTES_MESSAGE)
.allowableValues(BYTES_MESSAGE, TEXT_MESSAGE)
.build();
static final PropertyDescriptor ALLOW_ILLEGAL_HEADER_CHARS = new
PropertyDescriptor.Builder()
- .name("allow-illegal-chars-in-jms-header-names")
- .displayName("Allow Illegal Characters in Header Names")
+ .name("Allow Illegal Characters in Header Names")
.description("Specifies whether illegal characters in header names
should be sent to the JMS broker. " +
"Usually hyphens and full-stops.")
.required(true)
@@ -133,8 +132,7 @@ public class PublishJMS extends
AbstractJMSProcessor<JMSPublisher> {
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.build();
static final PropertyDescriptor ATTRIBUTES_AS_HEADERS_REGEX = new
PropertyDescriptor.Builder()
- .name("attributes-to-send-as-jms-headers-regex")
- .displayName("Attributes to Send as JMS Headers (Regex)")
+ .name("Attributes to Send as JMS Headers")
.description("Specifies the Regular Expression that determines the
names of FlowFile attributes that" +
" should be sent as JMS Headers")
.addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
@@ -205,6 +203,14 @@ public class PublishJMS extends
AbstractJMSProcessor<JMSPublisher> {
writerFactory = readerFactory == null ? null :
context.getProperty(RECORD_WRITER).asControllerService(RecordSetWriterFactory.class);
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("message-body-type", MESSAGE_BODY.getName());
+ config.renameProperty("allow-illegal-chars-in-jms-header-names",
ALLOW_ILLEGAL_HEADER_CHARS.getName());
+ config.renameProperty("attributes-to-send-as-jms-headers-regex",
ATTRIBUTES_AS_HEADERS_REGEX.getName());
+ }
+
/**
* Will construct JMS {@link Message} by extracting its body from the
* incoming {@link FlowFile}. {@link FlowFile} attributes that represent
diff --git
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
index 945faa7da4..3e51258b3e 100644
---
a/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
+++
b/nifi-extension-bundles/nifi-jolt-bundle/nifi-jolt-processors/src/main/java/org/apache/nifi/processors/jolt/JoltTransformRecord.java
@@ -31,6 +31,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.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -76,16 +77,14 @@ import java.util.stream.Stream;
public class JoltTransformRecord extends AbstractJoltTransform {
static final PropertyDescriptor RECORD_READER = new
PropertyDescriptor.Builder()
- .name("jolt-record-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 RECORD_WRITER = new
PropertyDescriptor.Builder()
- .name("jolt-record-record-writer")
- .displayName("Record Writer")
+ .name("Record Writer")
.description("Specifies the Controller Service to use for writing
out the records")
.identifiesControllerService(RecordSetWriterFactory.class)
.required(true)
@@ -247,6 +246,12 @@ public class JoltTransformRecord extends
AbstractJoltTransform {
session.transfer(original, REL_ORIGINAL);
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("jolt-record-record-reader",
RECORD_READER.getName());
+ config.renameProperty("jolt-record-record-writer",
RECORD_WRITER.getName());
+ }
+
private List<Record> transform(final Record record, final JoltTransform
transform) {
Map<String, Object> recordMap = (Map<String, Object>)
DataTypeUtils.convertRecordFieldtoObject(record,
RecordFieldType.RECORD.getRecordDataType(record.getSchema()));
diff --git
a/nifi-extension-bundles/nifi-jslt-bundle/nifi-jslt-processors/src/main/java/org/apache/nifi/processors/jslt/JSLTTransformJSON.java
b/nifi-extension-bundles/nifi-jslt-bundle/nifi-jslt-processors/src/main/java/org/apache/nifi/processors/jslt/JSLTTransformJSON.java
index 7f717281a1..c03fcab0e0 100644
---
a/nifi-extension-bundles/nifi-jslt-bundle/nifi-jslt-processors/src/main/java/org/apache/nifi/processors/jslt/JSLTTransformJSON.java
+++
b/nifi-extension-bundles/nifi-jslt-bundle/nifi-jslt-processors/src/main/java/org/apache/nifi/processors/jslt/JSLTTransformJSON.java
@@ -50,6 +50,7 @@ import org.apache.nifi.components.resource.ResourceType;
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.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -88,8 +89,7 @@ public class JSLTTransformJSON extends AbstractProcessor {
public static String JSLT_FILTER_DEFAULT = ". != null and . != {} and . !=
[]";
public static final PropertyDescriptor JSLT_TRANSFORM = new
PropertyDescriptor.Builder()
- .name("jslt-transform-transformation")
- .displayName("JSLT Transformation")
+ .name("JSLT Transformation")
.description("JSLT Transformation for transform of JSON data. Any
NiFi Expression Language present will be evaluated first to get the final
transform to be applied. " +
"The JSLT Tutorial provides an overview of supported
expressions: https://github.com/schibsted/jslt/blob/master/tutorial.md")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -99,8 +99,7 @@ public class JSLTTransformJSON extends AbstractProcessor {
.build();
public static final PropertyDescriptor TRANSFORMATION_STRATEGY = new
PropertyDescriptor.Builder()
- .name("jslt-transform-transformation-strategy")
- .displayName("Transformation Strategy")
+ .name("Transformation Strategy")
.description("Whether to apply the JSLT transformation to the
entire FlowFile contents or each JSON object in the root-level array")
.required(true)
.allowableValues(TransformationStrategy.class)
@@ -108,8 +107,7 @@ public class JSLTTransformJSON extends AbstractProcessor {
.build();
public static final PropertyDescriptor PRETTY_PRINT = new
PropertyDescriptor.Builder()
- .name("jslt-transform-pretty_print")
- .displayName("Pretty Print")
+ .name("Pretty Print")
.description("Apply pretty-print formatting to the output of the
JSLT transform")
.required(true)
.allowableValues("true", "false")
@@ -117,8 +115,7 @@ public class JSLTTransformJSON extends AbstractProcessor {
.build();
public static final PropertyDescriptor TRANSFORM_CACHE_SIZE = new
PropertyDescriptor.Builder()
- .name("jslt-transform-cache-size")
- .displayName("Transform Cache Size")
+ .name("Transform Cache Size")
.description("Compiling a JSLT Transform can be fairly expensive.
Ideally, this will be done only once. However, if the Expression Language is
used in the transform, we may need "
+ "a new Transform for each FlowFile. This value controls
how many of those Transforms we cache in memory in order to avoid having to
compile the Transform each time.")
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
@@ -128,8 +125,7 @@ public class JSLTTransformJSON extends AbstractProcessor {
.build();
public static final PropertyDescriptor RESULT_FILTER = new
PropertyDescriptor.Builder()
- .name("jslt-transform-result-filter")
- .displayName("Transform Result Filter")
+ .name("Transform Result Filter")
.description("A filter for output JSON results using a JSLT
expression. This property supports changing the default filter,"
+ " which removes JSON objects with null values, empty
objects and empty arrays from the output JSON."
+ " This JSLT must return true for each JSON object to be
included and false for each object to be removed."
@@ -175,6 +171,15 @@ public class JSLTTransformJSON extends AbstractProcessor {
return PROPERTY_DESCRIPTORS;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("jslt-transform-transformation",
JSLT_TRANSFORM.getName());
+ config.renameProperty("jslt-transform-transformation-strategy",
TRANSFORMATION_STRATEGY.getName());
+ config.renameProperty("jslt-transform-pretty_print",
PRETTY_PRINT.getName());
+ config.renameProperty("jslt-transform-cache-size",
TRANSFORM_CACHE_SIZE.getName());
+ config.renameProperty("jslt-transform-result-filter",
RESULT_FILTER.getName());
+ }
+
@Override
protected Collection<ValidationResult> customValidate(ValidationContext
validationContext) {
final List<ValidationResult> results = new
ArrayList<>(super.customValidate(validationContext));