This is an automated email from the ASF dual-hosted git repository.
pvillard 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 6355812a77 NIFI-13733 Migrated FTP and SFTP processors' Proxy
properties to ProxyConfigurationService
6355812a77 is described below
commit 6355812a779ab88a60779b2fa4faafb44cecd6be
Author: Peter Turcsanyi <[email protected]>
AuthorDate: Tue Sep 10 15:11:52 2024 +0200
NIFI-13733 Migrated FTP and SFTP processors' Proxy properties to
ProxyConfigurationService
Signed-off-by: Pierre Villard <[email protected]>
This closes #9252.
---
.../nifi/migration/ProxyServiceMigration.java | 45 ++++++++++++++-
.../nifi/migration/ProxyServiceMigrationTest.java | 43 +++++++++++++-
.../nifi-standard-processors/pom.xml | 5 ++
.../nifi/processors/standard/DeleteSFTP.java | 12 ++--
.../apache/nifi/processors/standard/FetchFTP.java | 12 ++--
.../apache/nifi/processors/standard/FetchSFTP.java | 12 ++--
.../apache/nifi/processors/standard/GetFTP.java | 12 ++--
.../apache/nifi/processors/standard/GetSFTP.java | 12 ++--
.../apache/nifi/processors/standard/ListFTP.java | 12 ++--
.../apache/nifi/processors/standard/ListSFTP.java | 12 ++--
.../apache/nifi/processors/standard/PutFTP.java | 12 ++--
.../apache/nifi/processors/standard/PutSFTP.java | 12 ++--
.../standard/ftp/StandardFTPClientProvider.java | 3 +-
.../standard/ssh/StandardSSHClientProvider.java | 3 +-
.../nifi/processors/standard/util/FTPTransfer.java | 66 +++++-----------------
15 files changed, 170 insertions(+), 103 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/main/java/org/apache/nifi/migration/ProxyServiceMigration.java
b/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/main/java/org/apache/nifi/migration/ProxyServiceMigration.java
index b9ede07db6..019318f099 100644
---
a/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/main/java/org/apache/nifi/migration/ProxyServiceMigration.java
+++
b/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/main/java/org/apache/nifi/migration/ProxyServiceMigration.java
@@ -35,7 +35,7 @@ public final class ProxyServiceMigration {
private ProxyServiceMigration() { }
/**
- * Migrates component level proxy properties to ProxyConfigurationService.
+ * Migrates component level proxy properties to ProxyConfigurationService
with HTTP proxy type.
*
* @param config the component's property config to be migrated
* @param proxyServiceProperty the component's property descriptor
referencing ProxyConfigurationService
@@ -47,9 +47,50 @@ public final class ProxyServiceMigration {
public static void migrateProxyProperties(final PropertyConfiguration
config, final PropertyDescriptor proxyServiceProperty,
final String proxyHostProperty,
final String proxyPortProperty,
final String
proxyUsernameProperty, final String proxyPasswordProperty) {
+ migrateProxyProperties(config,
+ proxyServiceProperty,
+ Proxy.Type.HTTP,
+ proxyHostProperty,
+ proxyPortProperty,
+ proxyUsernameProperty,
+ proxyPasswordProperty);
+ }
+
+ /**
+ * Migrates component level proxy properties to ProxyConfigurationService
with the specified proxy type.
+ *
+ * @param config the component's property config to be migrated
+ * @param proxyServiceProperty the component's property descriptor
referencing ProxyConfigurationService
+ * @param proxyTypeProperty the name of the component level Proxy Type
property
+ * @param proxyHostProperty the name of the component level Proxy Host
property
+ * @param proxyPortProperty the name of the component level Proxy Port
property
+ * @param proxyUsernameProperty the name of the component level Proxy
Username property
+ * @param proxyPasswordProperty the name of the component level Proxy
Password property
+ */
+ public static void migrateProxyProperties(final PropertyConfiguration
config, final PropertyDescriptor proxyServiceProperty,
+ final String proxyTypeProperty,
+ final String proxyHostProperty,
final String proxyPortProperty,
+ final String
proxyUsernameProperty, final String proxyPasswordProperty) {
+ final Proxy.Type proxyType =
Proxy.Type.valueOf(config.getRawPropertyValue(proxyTypeProperty).orElse(Proxy.Type.DIRECT.name()));
+
+ migrateProxyProperties(config,
+ proxyServiceProperty,
+ proxyType,
+ proxyHostProperty,
+ proxyPortProperty,
+ proxyUsernameProperty,
+ proxyPasswordProperty);
+
+ config.removeProperty(proxyTypeProperty);
+ }
+
+ private static void migrateProxyProperties(final PropertyConfiguration
config, final PropertyDescriptor proxyServiceProperty,
+ final Proxy.Type proxyType,
+ final String proxyHostProperty,
final String proxyPortProperty,
+ final String
proxyUsernameProperty, final String proxyPasswordProperty) {
if (config.isPropertySet(proxyHostProperty)) {
final Map<String, String> proxyProperties = new HashMap<>();
- proxyProperties.put(PROXY_SERVICE_TYPE, Proxy.Type.HTTP.name());
+ proxyProperties.put(PROXY_SERVICE_TYPE, proxyType.name());
proxyProperties.put(PROXY_SERVICE_HOST,
config.getRawPropertyValue(proxyHostProperty).get());
// Map any optional proxy configs
diff --git
a/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/test/java/org/apache/nifi/migration/ProxyServiceMigrationTest.java
b/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/test/java/org/apache/nifi/migration/ProxyServiceMigrationTest.java
index 05d3dee837..a9d7102469 100644
---
a/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/test/java/org/apache/nifi/migration/ProxyServiceMigrationTest.java
+++
b/nifi-extension-bundles/nifi-extension-utils/nifi-migration-utils/src/test/java/org/apache/nifi/migration/ProxyServiceMigrationTest.java
@@ -35,18 +35,20 @@ class ProxyServiceMigrationTest {
.name("proxy-service")
.build();
+ private static final String OBSOLETE_PROXY_TYPE = "proxy-type";
private static final String OBSOLETE_PROXY_HOST = "proxy-host";
private static final String OBSOLETE_PROXY_PORT = "proxy-port";
private static final String OBSOLETE_PROXY_USERNAME = "proxy-username";
private static final String OBSOLETE_PROXY_PASSWORD = "proxy-password";
+ private static final String PROXY_TYPE_VALUE = "SOCKS";
private static final String PROXY_HOST_VALUE = "localhost";
private static final String PROXY_PORT_VALUE = "8888";
private static final String PROXY_USERNAME_VALUE = "user";
private static final String PROXY_PASSWORD_VALUE = "pass";
@Test
- void testMigrateProxyProperties() {
+ void testMigrateProxyPropertiesWithDefaultProxyType() {
final Map<String, String> properties = Map.of(
OBSOLETE_PROXY_HOST, PROXY_HOST_VALUE,
OBSOLETE_PROXY_PORT, PROXY_PORT_VALUE,
@@ -81,4 +83,43 @@ class ProxyServiceMigrationTest {
),
createdService.serviceProperties());
}
+
+ @Test
+ void testMigrateProxyPropertiesWithCustomProxyType() {
+ final Map<String, String> properties = Map.of(
+ OBSOLETE_PROXY_TYPE, PROXY_TYPE_VALUE,
+ OBSOLETE_PROXY_HOST, PROXY_HOST_VALUE,
+ OBSOLETE_PROXY_PORT, PROXY_PORT_VALUE,
+ OBSOLETE_PROXY_USERNAME, PROXY_USERNAME_VALUE,
+ OBSOLETE_PROXY_PASSWORD, PROXY_PASSWORD_VALUE
+ );
+ final MockPropertyConfiguration config = new
MockPropertyConfiguration(properties);
+
+ ProxyServiceMigration.migrateProxyProperties(config, PROXY_SERVICE,
OBSOLETE_PROXY_TYPE, OBSOLETE_PROXY_HOST, OBSOLETE_PROXY_PORT,
OBSOLETE_PROXY_USERNAME, OBSOLETE_PROXY_PASSWORD);
+
+ assertFalse(config.hasProperty(OBSOLETE_PROXY_TYPE));
+ assertFalse(config.hasProperty(OBSOLETE_PROXY_HOST));
+ assertFalse(config.hasProperty(OBSOLETE_PROXY_PORT));
+ assertFalse(config.hasProperty(OBSOLETE_PROXY_USERNAME));
+ assertFalse(config.hasProperty(OBSOLETE_PROXY_PASSWORD));
+
+ assertTrue(config.isPropertySet(PROXY_SERVICE));
+
+ PropertyMigrationResult result = config.toPropertyMigrationResult();
+ assertEquals(1, result.getCreatedControllerServices().size());
+
+ final CreatedControllerService createdService =
result.getCreatedControllerServices().iterator().next();
+
+ assertEquals(config.getRawPropertyValue(PROXY_SERVICE).get(),
createdService.id());
+ assertEquals(ProxyServiceMigration.PROXY_SERVICE_CLASSNAME,
createdService.implementationClassName());
+
+ assertEquals(Map.of(
+ ProxyServiceMigration.PROXY_SERVICE_TYPE,
Proxy.Type.SOCKS.name(),
+ ProxyServiceMigration.PROXY_SERVICE_HOST,
PROXY_HOST_VALUE,
+ ProxyServiceMigration.PROXY_SERVICE_PORT,
PROXY_PORT_VALUE,
+ ProxyServiceMigration.PROXY_SERVICE_USERNAME,
PROXY_USERNAME_VALUE,
+ ProxyServiceMigration.PROXY_SERVICE_PASSWORD,
PROXY_PASSWORD_VALUE
+ ),
+ createdService.serviceProperties());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml
index c8e382e198..be454f9400 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml
@@ -557,6 +557,11 @@
<artifactId>nifi-json-schema-shared</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-migration-utils</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </dependency>
<!-- Test Dependencies for database processors -->
<dependency>
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DeleteSFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DeleteSFTP.java
index fa54f4f27e..05e358b56c 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DeleteSFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DeleteSFTP.java
@@ -29,6 +29,7 @@ import org.apache.nifi.expression.ExpressionLanguageScope;
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;
@@ -116,11 +117,6 @@ public class DeleteSFTP extends AbstractProcessor {
SFTPTransfer.USE_KEEPALIVE_ON_TIMEOUT,
SFTPTransfer.USE_COMPRESSION,
SFTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
SFTPTransfer.CIPHERS_ALLOWED,
SFTPTransfer.KEY_ALGORITHMS_ALLOWED,
SFTPTransfer.KEY_EXCHANGE_ALGORITHMS_ALLOWED,
@@ -137,6 +133,12 @@ public class DeleteSFTP extends AbstractProcessor {
return properties;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
public void onTrigger(ProcessContext context, ProcessSession session)
throws ProcessException {
FlowFile flowFile = session.get();
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFTP.java
index 12d4fb230f..b2e7b4019e 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchFTP.java
@@ -29,6 +29,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FetchFileTransfer;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
@@ -102,11 +103,6 @@ public class FetchFTP extends FetchFileTransfer {
FTPTransfer.CONNECTION_MODE,
FTPTransfer.TRANSFER_MODE,
FTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
FTPTransfer.BUFFER_SIZE,
FILE_NOT_FOUND_LOG_LEVEL,
FTPTransfer.UTF8_ENCODING
@@ -117,6 +113,12 @@ public class FetchFTP extends FetchFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected FileTransfer createFileTransfer(final ProcessContext context) {
return new FTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java
index 2ccca3a8be..5e45ed3e95 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchSFTP.java
@@ -29,6 +29,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FetchFileTransfer;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
@@ -115,11 +116,6 @@ public class FetchSFTP extends FetchFileTransfer {
SFTPTransfer.STRICT_HOST_KEY_CHECKING,
SFTPTransfer.USE_COMPRESSION,
SFTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
FILE_NOT_FOUND_LOG_LEVEL,
SFTPTransfer.CIPHERS_ALLOWED,
SFTPTransfer.KEY_ALGORITHMS_ALLOWED,
@@ -132,6 +128,12 @@ public class FetchSFTP extends FetchFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected FileTransfer createFileTransfer(final ProcessContext context) {
return new SFTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
index 522ce64f6e..b5143e7ad9 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
@@ -26,6 +26,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
import org.apache.nifi.processor.util.file.transfer.GetFileTransfer;
@@ -76,11 +77,6 @@ public class GetFTP extends GetFileTransfer {
FTPTransfer.REMOTE_POLL_BATCH_SIZE,
FTPTransfer.USE_NATURAL_ORDERING,
FTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
FTPTransfer.BUFFER_SIZE,
FTPTransfer.UTF8_ENCODING
);
@@ -90,6 +86,12 @@ public class GetFTP extends GetFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected FileTransfer getFileTransfer(final ProcessContext context) {
return new FTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
index f9073870cf..faa9caee88 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
@@ -26,6 +26,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
import org.apache.nifi.processor.util.file.transfer.GetFileTransfer;
@@ -79,11 +80,6 @@ public class GetSFTP extends GetFileTransfer {
SFTPTransfer.USE_COMPRESSION,
SFTPTransfer.USE_NATURAL_ORDERING,
SFTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
SFTPTransfer.CIPHERS_ALLOWED,
SFTPTransfer.KEY_ALGORITHMS_ALLOWED,
SFTPTransfer.KEY_EXCHANGE_ALGORITHMS_ALLOWED,
@@ -95,6 +91,12 @@ public class GetSFTP extends GetFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected Collection<ValidationResult> customValidate(final
ValidationContext context) {
final List<ValidationResult> results = new
ArrayList<>(super.customValidate(context));
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFTP.java
index 829392c429..e102ae390b 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFTP.java
@@ -33,6 +33,7 @@ import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.components.state.Scope;
import org.apache.nifi.context.PropertyContext;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
import org.apache.nifi.processor.util.file.transfer.ListFileTransfer;
@@ -92,11 +93,6 @@ public class ListFTP extends ListFileTransfer {
FTPTransfer.CONNECTION_MODE,
FTPTransfer.TRANSFER_MODE,
FTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
FTPTransfer.BUFFER_SIZE,
TARGET_SYSTEM_TIMESTAMP_PRECISION,
ListedEntityTracker.TRACKING_STATE_CACHE,
@@ -110,6 +106,12 @@ public class ListFTP extends ListFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected FileTransfer getFileTransfer(final ProcessContext context) {
return new FTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java
index db2adb2591..b56192fd24 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListSFTP.java
@@ -34,6 +34,7 @@ import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
import org.apache.nifi.components.state.Scope;
import org.apache.nifi.context.PropertyContext;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.DataUnit;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FileInfo;
@@ -103,11 +104,6 @@ public class ListSFTP extends ListFileTransfer {
TARGET_SYSTEM_TIMESTAMP_PRECISION,
SFTPTransfer.USE_COMPRESSION,
SFTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
ListedEntityTracker.TRACKING_STATE_CACHE,
ListedEntityTracker.TRACKING_TIME_WINDOW,
ListedEntityTracker.INITIAL_LISTING_TARGET,
@@ -128,6 +124,12 @@ public class ListSFTP extends ListFileTransfer {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected FileTransfer getFileTransfer(final ProcessContext context) {
return new SFTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
index bc92eec97c..3c3c21cb48 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
@@ -30,6 +30,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.processor.ProcessContext;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.processor.util.file.transfer.PutFileTransfer;
@@ -94,11 +95,6 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
FTPTransfer.PERMISSIONS,
FTPTransfer.USE_COMPRESSION,
FTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
FTPTransfer.BUFFER_SIZE,
FTPTransfer.UTF8_ENCODING
);
@@ -108,6 +104,12 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected void beforePut(final FlowFile flowFile, final ProcessContext
context, final FTPTransfer transfer) throws IOException {
transfer.sendCommands(getCommands(preSendDescriptorRef.get(), context,
flowFile), flowFile);
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
index 769c89cdc4..66506c9fde 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
@@ -25,6 +25,7 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.ValidationContext;
import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.util.file.transfer.FileTransfer;
import org.apache.nifi.processor.util.file.transfer.PutFileTransfer;
@@ -68,11 +69,6 @@ public class PutSFTP extends PutFileTransfer<SFTPTransfer> {
SFTPTransfer.USE_KEEPALIVE_ON_TIMEOUT,
FileTransfer.USE_COMPRESSION,
SFTPTransfer.PROXY_CONFIGURATION_SERVICE,
- FTPTransfer.PROXY_TYPE,
- FTPTransfer.PROXY_HOST,
- FTPTransfer.PROXY_PORT,
- FTPTransfer.HTTP_PROXY_USERNAME,
- FTPTransfer.HTTP_PROXY_PASSWORD,
SFTPTransfer.CIPHERS_ALLOWED,
SFTPTransfer.KEY_ALGORITHMS_ALLOWED,
SFTPTransfer.KEY_EXCHANGE_ALGORITHMS_ALLOWED,
@@ -84,6 +80,12 @@ public class PutSFTP extends PutFileTransfer<SFTPTransfer> {
return PROPERTIES;
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ FTPTransfer.migrateProxyProperties(config);
+ }
+
@Override
protected SFTPTransfer getFileTransfer(final ProcessContext context) {
return new SFTPTransfer(context, getLogger());
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ftp/StandardFTPClientProvider.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ftp/StandardFTPClientProvider.java
index d3fa48224f..abe0d81951 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ftp/StandardFTPClientProvider.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ftp/StandardFTPClientProvider.java
@@ -50,7 +50,6 @@ import static
org.apache.nifi.processors.standard.util.FTPTransfer.TRANSFER_MODE
import static
org.apache.nifi.processors.standard.util.FTPTransfer.TRANSFER_MODE_ASCII;
import static org.apache.nifi.processors.standard.util.FTPTransfer.USERNAME;
import static
org.apache.nifi.processors.standard.util.FTPTransfer.UTF8_ENCODING;
-import static
org.apache.nifi.processors.standard.util.FTPTransfer.createComponentProxyConfigSupplier;
/**
* Standard implementation of FTP Client Provider
@@ -168,7 +167,7 @@ public class StandardFTPClientProvider implements
FTPClientProvider {
}
private FTPClient createClient(final PropertyContext context) {
- final ProxyConfiguration proxyConfiguration =
ProxyConfiguration.getConfiguration(context,
createComponentProxyConfigSupplier(context));
+ final ProxyConfiguration proxyConfiguration =
ProxyConfiguration.getConfiguration(context);
final Proxy.Type proxyType = proxyConfiguration.getProxyType();
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
index d4fac98180..fae64eace3 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
@@ -53,7 +53,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
-import static
org.apache.nifi.processors.standard.util.FTPTransfer.createComponentProxyConfigSupplier;
import static
org.apache.nifi.processors.standard.util.SFTPTransfer.CONNECTION_TIMEOUT;
import static
org.apache.nifi.processors.standard.util.SFTPTransfer.DATA_TIMEOUT;
import static org.apache.nifi.processors.standard.util.SFTPTransfer.HOSTNAME;
@@ -179,7 +178,7 @@ public class StandardSSHClientProvider implements
SSHClientProvider {
}
}
- final ProxyConfiguration proxyConfiguration =
ProxyConfiguration.getConfiguration(context,
createComponentProxyConfigSupplier(context));
+ final ProxyConfiguration proxyConfiguration =
ProxyConfiguration.getConfiguration(context);
final Proxy.Type proxyType = proxyConfiguration.getProxyType();
if (SUPPORTED_PROXY_TYPES.contains(proxyType)) {
final SocketFactory socketFactory =
SOCKET_FACTORY_PROVIDER.getSocketFactory(proxyConfiguration);
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
index 0b2c5f3650..d2bbc94efa 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
@@ -20,7 +20,6 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.net.Proxy;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.OffsetDateTime;
@@ -32,7 +31,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
-import java.util.function.Supplier;
import java.util.regex.Pattern;
import org.apache.commons.net.ftp.FTPClient;
@@ -45,6 +43,8 @@ import org.apache.nifi.context.PropertyContext;
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.migration.ProxyServiceMigration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
@@ -65,9 +65,13 @@ public class FTPTransfer implements FileTransfer {
public static final String TRANSFER_MODE_ASCII = "ASCII";
public static final String TRANSFER_MODE_BINARY = "Binary";
public static final String FTP_TIMEVAL_FORMAT = "yyyyMMddHHmmss";
- public static final String PROXY_TYPE_DIRECT = Proxy.Type.DIRECT.name();
- public static final String PROXY_TYPE_HTTP = Proxy.Type.HTTP.name();
- public static final String PROXY_TYPE_SOCKS = Proxy.Type.SOCKS.name();
+
+ // Obsolete property names
+ private static final String OBSOLETE_PROXY_TYPE = "Proxy Type";
+ private static final String OBSOLETE_PROXY_HOST = "Proxy Host";
+ private static final String OBSOLETE_PROXY_PORT = "Proxy Port";
+ private static final String OBSOLETE_PROXY_USERNAME = "Http Proxy
Username";
+ private static final String OBSOLETE_PROXY_PASSWORD = "Http Proxy
Password";
public static final PropertyDescriptor CONNECTION_MODE = new
PropertyDescriptor.Builder()
.name("Connection Mode")
@@ -89,39 +93,6 @@ public class FTPTransfer implements FileTransfer {
.defaultValue("21")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- public static final PropertyDescriptor PROXY_TYPE = new
PropertyDescriptor.Builder()
- .name("Proxy Type")
- .description("Proxy type used for file transfers")
- .allowableValues(PROXY_TYPE_DIRECT, PROXY_TYPE_HTTP, PROXY_TYPE_SOCKS)
- .defaultValue(PROXY_TYPE_DIRECT)
- .build();
- public static final PropertyDescriptor PROXY_HOST = new
PropertyDescriptor.Builder()
- .name("Proxy Host")
- .description("The fully qualified hostname or IP address of the proxy
server")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .build();
- public static final PropertyDescriptor PROXY_PORT = new
PropertyDescriptor.Builder()
- .name("Proxy Port")
- .description("The port of the proxy server")
- .addValidator(StandardValidators.PORT_VALIDATOR)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .build();
- public static final PropertyDescriptor HTTP_PROXY_USERNAME = new
PropertyDescriptor.Builder()
- .name("Http Proxy Username")
- .description("Http Proxy Username")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .required(false)
- .build();
- public static final PropertyDescriptor HTTP_PROXY_PASSWORD = new
PropertyDescriptor.Builder()
- .name("Http Proxy Password")
- .description("Http Proxy Password")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .required(false)
- .sensitive(true)
- .build();
public static final PropertyDescriptor BUFFER_SIZE = new
PropertyDescriptor.Builder()
.name("Internal Buffer Size")
.description("Set the internal buffer size for buffered data streams")
@@ -146,7 +117,7 @@ public class FTPTransfer implements FileTransfer {
private static final ProxySpec[] PROXY_SPECS = {ProxySpec.HTTP_AUTH,
ProxySpec.SOCKS_AUTH};
public static final PropertyDescriptor PROXY_CONFIGURATION_SERVICE
- = ProxyConfiguration.createProxyConfigPropertyDescriptor(true,
PROXY_SPECS);
+ = ProxyConfiguration.createProxyConfigPropertyDescriptor(false,
PROXY_SPECS);
private final ComponentLog logger;
@@ -168,6 +139,11 @@ public class FTPTransfer implements FileTransfer {
ProxyConfiguration.validateProxySpec(context, results, PROXY_SPECS);
}
+ public static void migrateProxyProperties(final PropertyConfiguration
config) {
+ ProxyServiceMigration.migrateProxyProperties(config,
PROXY_CONFIGURATION_SERVICE,
+ OBSOLETE_PROXY_TYPE, OBSOLETE_PROXY_HOST, OBSOLETE_PROXY_PORT,
OBSOLETE_PROXY_USERNAME, OBSOLETE_PROXY_PASSWORD);
+ }
+
@Override
public String getProtocolName() {
return "ftp";
@@ -631,16 +607,4 @@ public class FTPTransfer implements FileTransfer {
}
return number;
}
-
- public static Supplier<ProxyConfiguration>
createComponentProxyConfigSupplier(final PropertyContext ctx) {
- return () -> {
- final ProxyConfiguration componentProxyConfig = new
ProxyConfiguration();
-
componentProxyConfig.setProxyType(Proxy.Type.valueOf(ctx.getProperty(PROXY_TYPE).getValue()));
-
componentProxyConfig.setProxyServerHost(ctx.getProperty(PROXY_HOST).evaluateAttributeExpressions().getValue());
-
componentProxyConfig.setProxyServerPort(ctx.getProperty(PROXY_PORT).evaluateAttributeExpressions().asInteger());
-
componentProxyConfig.setProxyUserName(ctx.getProperty(HTTP_PROXY_USERNAME).evaluateAttributeExpressions().getValue());
-
componentProxyConfig.setProxyUserPassword(ctx.getProperty(HTTP_PROXY_PASSWORD).evaluateAttributeExpressions().getValue());
- return componentProxyConfig;
- };
- }
}