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 a61b38d4f0 NIFI-14989 Migrated Property Names for Box, CDC, Cipher,
Confluent, and Dropbox Bundles (#10328)
a61b38d4f0 is described below
commit a61b38d4f0801687a9af666bc92bb343ecd81a5d
Author: dan-s1 <[email protected]>
AuthorDate: Mon Sep 22 15:57:10 2025 -0400
NIFI-14989 Migrated Property Names for Box, CDC, Cipher, Confluent, and
Dropbox Bundles (#10328)
Signed-off-by: David Handermann <[email protected]>
---
.../nifi/processors/box/AbstractBoxProcessor.java | 38 ++++++++++
.../processors/box/ConsumeBoxEnterpriseEvents.java | 7 +-
.../nifi/processors/box/ConsumeBoxEvents.java | 9 ++-
.../box/CreateBoxFileMetadataInstance.java | 7 +-
.../processors/box/CreateBoxMetadataTemplate.java | 7 +-
.../box/DeleteBoxFileMetadataInstance.java | 7 +-
.../box/ExtractStructuredBoxFileMetadata.java | 7 +-
.../apache/nifi/processors/box/FetchBoxFile.java | 19 +++--
.../nifi/processors/box/FetchBoxFileInfo.java | 7 +-
.../box/FetchBoxFileMetadataInstance.java | 7 +-
.../processors/box/FetchBoxFileRepresentation.java | 9 ++-
.../processors/box/GetBoxFileCollaborators.java | 7 +-
.../nifi/processors/box/GetBoxGroupMembers.java | 7 +-
.../apache/nifi/processors/box/ListBoxFile.java | 23 ++++---
.../nifi/processors/box/ListBoxFileInfo.java | 7 +-
.../box/ListBoxFileMetadataInstances.java | 7 +-
.../box/ListBoxFileMetadataTemplates.java | 7 +-
.../org/apache/nifi/processors/box/PutBoxFile.java | 37 +++++-----
.../box/UpdateBoxFileMetadataInstance.java | 7 +-
.../nifi/processors/box/AbstractBoxFileTest.java | 2 +-
.../processors/box/ListBoxFileListingTest.java | 2 +-
.../nifi/processors/box/ListBoxFileTest.java | 16 +++++
.../box/controllerservices/BoxClientService.java | 8 ---
.../JsonConfigBasedBoxClientService.java | 17 +++--
.../cdc/mysql/processors/CaptureChangeMySQL.java | 80 +++++++++++-----------
.../nifi/processors/cipher/VerifyContentMAC.java | 25 ++++---
.../schemaregistry/ConfluentSchemaRegistry.java | 37 +++++-----
.../nifi/processors/dropbox/DropboxTrait.java | 4 +-
.../nifi/processors/dropbox/FetchDropbox.java | 12 +++-
.../nifi/processors/dropbox/ListDropbox.java | 19 +++--
.../apache/nifi/processors/dropbox/PutDropbox.java | 27 +++++---
.../dropbox/StandardDropboxCredentialService.java | 21 +++---
32 files changed, 292 insertions(+), 204 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/AbstractBoxProcessor.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/AbstractBoxProcessor.java
new file mode 100644
index 0000000000..f9713e74c5
--- /dev/null
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/AbstractBoxProcessor.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.processors.box;
+
+import org.apache.nifi.box.controllerservices.BoxClientService;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.migration.PropertyConfiguration;
+import org.apache.nifi.processor.AbstractProcessor;
+
+abstract class AbstractBoxProcessor extends AbstractProcessor {
+ static final String OLD_BOX_CLIENT_SERVICE_PROPERTY_NAME =
"box-client-service";
+
+ static final PropertyDescriptor BOX_CLIENT_SERVICE = new
PropertyDescriptor.Builder()
+ .name("Box Client Service")
+ .description("Controller Service used to obtain a Box API
connection.")
+ .identifiesControllerService(BoxClientService.class)
+ .required(true)
+ .build();
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty(OLD_BOX_CLIENT_SERVICE_PROPERTY_NAME,
BOX_CLIENT_SERVICE.getName());
+ }
+}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEnterpriseEvents.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEnterpriseEvents.java
index 7ba3ddc090..786b57ef52 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEnterpriseEvents.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEnterpriseEvents.java
@@ -35,7 +35,6 @@ import org.apache.nifi.components.state.Scope;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -66,7 +65,7 @@ import static
org.apache.nifi.annotation.behavior.InputRequirement.Requirement.I
The last known position of the Box Event stream is stored in the
processor state and is used to
resume the stream from the last known position when the processor is
restarted.
""", scopes = { Scope.CLUSTER })
-public class ConsumeBoxEnterpriseEvents extends AbstractProcessor {
+public class ConsumeBoxEnterpriseEvents extends AbstractBoxProcessor {
private static final String POSITION_KEY = "position";
private static final String EARLIEST_POSITION = "0";
@@ -103,7 +102,7 @@ public class ConsumeBoxEnterpriseEvents extends
AbstractProcessor {
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
EVENT_TYPES,
START_EVENT_POSITION,
START_OFFSET
@@ -132,7 +131,7 @@ public class ConsumeBoxEnterpriseEvents extends
AbstractProcessor {
@OnScheduled
public void onEnabled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
eventTypes = context.getProperty(EVENT_TYPES).isSet()
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEvents.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEvents.java
index 873f7ecaa8..f6f84e9e62 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEvents.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ConsumeBoxEvents.java
@@ -38,7 +38,6 @@ import org.apache.nifi.components.state.Scope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.logging.ComponentLog;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -71,7 +70,7 @@ import java.util.concurrent.atomic.AtomicLong;
The last known position of the Box stream is stored in the processor
state and is used to
resume the stream from the last known position when the processor is
restarted.
""", scopes = { Scope.CLUSTER })
-public class ConsumeBoxEvents extends AbstractProcessor implements
VerifiableProcessor {
+public class ConsumeBoxEvents extends AbstractBoxProcessor implements
VerifiableProcessor {
private final static String POSITION_KEY = "position";
@@ -88,7 +87,7 @@ public class ConsumeBoxEvents extends AbstractProcessor
implements VerifiablePro
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
QUEUE_CAPACITY
);
@@ -116,7 +115,7 @@ public class ConsumeBoxEvents extends AbstractProcessor
implements VerifiablePro
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
try {
@@ -184,7 +183,7 @@ public class ConsumeBoxEvents extends AbstractProcessor
implements VerifiablePro
public List<ConfigVerificationResult> verify(ProcessContext context,
ComponentLog verificationLogger, Map<String, String> attributes) {
final List<ConfigVerificationResult> results = new ArrayList<>();
- BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
try {
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxFileMetadataInstance.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxFileMetadataInstance.java
index c686d34dc2..8419ce5550 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxFileMetadataInstance.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxFileMetadataInstance.java
@@ -31,7 +31,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -73,7 +72,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class CreateBoxFileMetadataInstance extends AbstractProcessor {
+public class CreateBoxFileMetadataInstance extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -127,7 +126,7 @@ public class CreateBoxFileMetadataInstance extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
TEMPLATE_KEY,
RECORD_READER
@@ -147,7 +146,7 @@ public class CreateBoxFileMetadataInstance extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxMetadataTemplate.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxMetadataTemplate.java
index d538e6a3ee..a6b9266795 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxMetadataTemplate.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/CreateBoxMetadataTemplate.java
@@ -30,7 +30,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -70,7 +69,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class CreateBoxMetadataTemplate extends AbstractProcessor {
+public class CreateBoxMetadataTemplate extends AbstractBoxProcessor {
public static final String SCOPE_ENTERPRISE = "enterprise";
@@ -124,7 +123,7 @@ public class CreateBoxMetadataTemplate extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
TEMPLATE_NAME,
TEMPLATE_KEY,
HIDDEN,
@@ -149,7 +148,7 @@ public class CreateBoxMetadataTemplate extends
AbstractProcessor {
}
protected BoxAPIConnection getBoxAPIConnection(final ProcessContext
context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
return boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/DeleteBoxFileMetadataInstance.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/DeleteBoxFileMetadataInstance.java
index 7f2686732b..e4dcd31811 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/DeleteBoxFileMetadataInstance.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/DeleteBoxFileMetadataInstance.java
@@ -30,7 +30,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -57,7 +56,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class DeleteBoxFileMetadataInstance extends AbstractProcessor {
+public class DeleteBoxFileMetadataInstance extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -104,7 +103,7 @@ public class DeleteBoxFileMetadataInstance extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
TEMPLATE_KEY
);
@@ -123,7 +122,7 @@ public class DeleteBoxFileMetadataInstance extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
index 418f9743fc..fd09fef76f 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
@@ -37,7 +37,6 @@ 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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -78,7 +77,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class ExtractStructuredBoxFileMetadata extends AbstractProcessor {
+public class ExtractStructuredBoxFileMetadata extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -144,7 +143,7 @@ public class ExtractStructuredBoxFileMetadata extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
EXTRACTION_METHOD,
TEMPLATE_KEY,
@@ -167,7 +166,7 @@ public class ExtractStructuredBoxFileMetadata extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFile.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFile.java
index 189ee5c204..88877ee01e 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFile.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFile.java
@@ -46,7 +46,7 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -70,11 +70,10 @@ import java.util.Set;
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class FetchBoxFile extends AbstractProcessor {
+public class FetchBoxFile extends AbstractBoxProcessor {
- public static final PropertyDescriptor FILE_ID = new PropertyDescriptor
- .Builder().name("box-file-id")
- .displayName("File ID")
+ public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
+ .name("File ID")
.description("The ID of the File to fetch")
.required(true)
.defaultValue("${box.id}")
@@ -100,7 +99,7 @@ public class FetchBoxFile extends AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID
);
@@ -118,7 +117,7 @@ public class FetchBoxFile extends AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
@@ -145,6 +144,12 @@ public class FetchBoxFile extends AbstractProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("box-file-id", FILE_ID.getName());
+ }
+
BoxFile getBoxFile(String fileId) {
return new BoxFile(boxAPIConnection, fileId);
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileInfo.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileInfo.java
index dcf90f6f70..d7116868bf 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileInfo.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileInfo.java
@@ -32,7 +32,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -86,7 +85,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.TIMESTAMP_DESC;
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class FetchBoxFileInfo extends AbstractProcessor {
+public class FetchBoxFileInfo extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -119,7 +118,7 @@ public class FetchBoxFileInfo extends AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID
);
@@ -137,7 +136,7 @@ public class FetchBoxFileInfo extends AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileMetadataInstance.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileMetadataInstance.java
index aff6e82182..3e2cfcb934 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileMetadataInstance.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileMetadataInstance.java
@@ -32,7 +32,6 @@ 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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -65,7 +64,7 @@ import static
org.apache.nifi.processors.box.utils.BoxMetadataUtils.processBoxMe
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class FetchBoxFileMetadataInstance extends AbstractProcessor {
+public class FetchBoxFileMetadataInstance extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -121,7 +120,7 @@ public class FetchBoxFileMetadataInstance extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
TEMPLATE_KEY,
TEMPLATE_SCOPE
@@ -141,7 +140,7 @@ public class FetchBoxFileMetadataInstance extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileRepresentation.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileRepresentation.java
index 447f957441..dd5f659263 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileRepresentation.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/FetchBoxFileRepresentation.java
@@ -36,7 +36,6 @@ import org.apache.nifi.components.PropertyDescriptor.Builder;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.logging.ComponentLog;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -66,7 +65,7 @@ import static
org.apache.nifi.components.ConfigVerificationResult.Outcome;
@WritesAttribute(attribute = "box.error.code", description = "The
error code returned by Box if the operation fails.")
})
@SeeAlso({FetchBoxFile.class, ListBoxFile.class})
-public class FetchBoxFileRepresentation extends AbstractProcessor implements
VerifiableProcessor {
+public class FetchBoxFileRepresentation extends AbstractBoxProcessor
implements VerifiableProcessor {
private static final String BOX_FILE_URI =
"https://api.box.com/2.0/files/%s/content?representation=%s";
@@ -108,7 +107,7 @@ public class FetchBoxFileRepresentation extends
AbstractProcessor implements Ver
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
REPRESENTATION_TYPE
);
@@ -141,7 +140,7 @@ public class FetchBoxFileRepresentation extends
AbstractProcessor implements Ver
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
@@ -219,7 +218,7 @@ public class FetchBoxFileRepresentation extends
AbstractProcessor implements Ver
final ComponentLog
verificationLogger,
final Map<String, String>
attributes) {
final List<ConfigVerificationResult> results = new ArrayList<>();
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
final BoxAPIConnection boxAPIConnection =
boxClientService.getBoxApiConnection();
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxFileCollaborators.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxFileCollaborators.java
index 861173b978..bbd68a4129 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxFileCollaborators.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxFileCollaborators.java
@@ -33,7 +33,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -79,7 +78,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ID_DESC;
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class GetBoxFileCollaborators extends AbstractProcessor {
+public class GetBoxFileCollaborators extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -130,7 +129,7 @@ public class GetBoxFileCollaborators extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
ROLES,
STATUSES
@@ -150,7 +149,7 @@ public class GetBoxFileCollaborators extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxGroupMembers.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxGroupMembers.java
index ce16f7116a..c579059a69 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxGroupMembers.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/GetBoxGroupMembers.java
@@ -34,7 +34,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -66,7 +65,7 @@ import static
org.apache.nifi.processors.box.BoxGroupAttributes.GROUP_USER_LOGIN
@WritesAttribute(attribute = ERROR_CODE, description = "An http error
code returned by Box."),
@WritesAttribute(attribute = ERROR_MESSAGE, description = "An error
message returned by Box."),
})
-public class GetBoxGroupMembers extends AbstractProcessor {
+public class GetBoxGroupMembers extends AbstractBoxProcessor {
static final PropertyDescriptor GROUP_ID = new PropertyDescriptor.Builder()
.name("Group ID")
@@ -78,7 +77,7 @@ public class GetBoxGroupMembers extends AbstractProcessor {
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
GROUP_ID
);
@@ -117,7 +116,7 @@ public class GetBoxGroupMembers extends AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFile.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFile.java
index 71ca40600c..053f832dc0 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFile.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFile.java
@@ -53,6 +53,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.state.Scope;
import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
+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.list.AbstractListProcessor;
@@ -81,8 +82,7 @@ import org.apache.nifi.serialization.record.RecordSchema;
@DefaultSchedule(strategy = SchedulingStrategy.TIMER_DRIVEN, period = "1 min")
public class ListBoxFile extends AbstractListProcessor<BoxFileInfo> {
public static final PropertyDescriptor FOLDER_ID = new
PropertyDescriptor.Builder()
- .name("box-folder-id")
- .displayName("Folder ID")
+ .name("Folder ID")
.description("The ID of the folder from which to pull list of files.")
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -90,8 +90,7 @@ public class ListBoxFile extends
AbstractListProcessor<BoxFileInfo> {
.build();
public static final PropertyDescriptor RECURSIVE_SEARCH = new
PropertyDescriptor.Builder()
- .name("recursive-search")
- .displayName("Search Recursively")
+ .name("Search Recursively")
.description("When 'true', will include list of files from
sub-folders." +
" Otherwise, will return only files that are within the folder
defined by the 'Folder ID' property.")
.required(true)
@@ -100,8 +99,7 @@ public class ListBoxFile extends
AbstractListProcessor<BoxFileInfo> {
.build();
public static final PropertyDescriptor MIN_AGE = new
PropertyDescriptor.Builder()
- .name("min-age")
- .displayName("Minimum File Age")
+ .name("Minimum File Age")
.description("The minimum age a file must be in order to be
considered; any files younger than this will be ignored.")
.required(true)
.addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
@@ -129,7 +127,7 @@ public class ListBoxFile extends
AbstractListProcessor<BoxFileInfo> {
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ AbstractBoxProcessor.BOX_CLIENT_SERVICE,
FOLDER_ID,
RECURSIVE_SEARCH,
MIN_AGE,
@@ -164,11 +162,20 @@ public class ListBoxFile extends
AbstractListProcessor<BoxFileInfo> {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ BoxClientService boxClientService =
context.getProperty(AbstractBoxProcessor.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+
config.renameProperty(AbstractBoxProcessor.OLD_BOX_CLIENT_SERVICE_PROPERTY_NAME,
AbstractBoxProcessor.BOX_CLIENT_SERVICE.getName());
+ config.renameProperty("box-folder-id", FOLDER_ID.getName());
+ config.renameProperty("recursive-search", RECURSIVE_SEARCH.getName());
+ config.renameProperty("min-age", MIN_AGE.getName());
+ }
+
@Override
protected String getListingContainerName(final ProcessContext context) {
return String.format("Box Folder [%s]", getPath(context));
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileInfo.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileInfo.java
index 1e61dedd17..e1df62b953 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileInfo.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileInfo.java
@@ -33,7 +33,6 @@ 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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -78,7 +77,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class ListBoxFileInfo extends AbstractProcessor {
+public class ListBoxFileInfo extends AbstractBoxProcessor {
public static final PropertyDescriptor FOLDER_ID = new
PropertyDescriptor.Builder()
.name("Folder ID")
@@ -135,7 +134,7 @@ public class ListBoxFileInfo extends AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FOLDER_ID,
RECURSIVE_SEARCH,
MIN_AGE,
@@ -164,7 +163,7 @@ public class ListBoxFileInfo extends AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataInstances.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataInstances.java
index ea95e2af78..a76f675566 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataInstances.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataInstances.java
@@ -32,7 +32,6 @@ 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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -69,7 +68,7 @@ import static
org.apache.nifi.processors.box.utils.BoxMetadataUtils.processBoxMe
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class ListBoxFileMetadataInstances extends AbstractProcessor {
+public class ListBoxFileMetadataInstances extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -102,7 +101,7 @@ public class ListBoxFileMetadataInstances extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID
);
@@ -120,7 +119,7 @@ public class ListBoxFileMetadataInstances extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataTemplates.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataTemplates.java
index 559a6d859b..b3585a0685 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataTemplates.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ListBoxFileMetadataTemplates.java
@@ -32,7 +32,6 @@ 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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -68,7 +67,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class ListBoxFileMetadataTemplates extends AbstractProcessor {
+public class ListBoxFileMetadataTemplates extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -101,7 +100,7 @@ public class ListBoxFileMetadataTemplates extends
AbstractProcessor {
);
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID
);
@@ -119,7 +118,7 @@ public class ListBoxFileMetadataTemplates extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/PutBoxFile.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/PutBoxFile.java
index 62a7164c5f..4943240673 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/PutBoxFile.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/PutBoxFile.java
@@ -36,7 +36,7 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.DataUnit;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -91,7 +91,7 @@ import static
org.apache.nifi.processors.conflict.resolution.ConflictResolutionS
@WritesAttribute(attribute = TIMESTAMP, description = TIMESTAMP_DESC),
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)})
-public class PutBoxFile extends AbstractProcessor {
+public class PutBoxFile extends AbstractBoxProcessor {
public static final int CHUNKED_UPLOAD_LOWER_LIMIT_IN_BYTES = 20 * 1024 *
1024;
public static final int CHUNKED_UPLOAD_UPPER_LIMIT_IN_BYTES = 50 * 1024 *
1024;
@@ -99,8 +99,7 @@ public class PutBoxFile extends AbstractProcessor {
public static final int WAIT_TIME_MS = 1000;
public static final PropertyDescriptor FOLDER_ID = new
PropertyDescriptor.Builder()
- .name("box-folder-id")
- .displayName("Folder ID")
+ .name("Folder ID")
.description("The ID of the folder where the file is uploaded." +
" Please see Additional Details to obtain Folder ID.")
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -109,8 +108,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final PropertyDescriptor FILE_NAME = new
PropertyDescriptor.Builder()
- .name("file-name")
- .displayName("Filename")
+ .name("Filename")
.description("The name of the file to upload to the specified Box
folder.")
.required(true)
.defaultValue("${filename}")
@@ -119,8 +117,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final PropertyDescriptor SUBFOLDER_NAME = new
PropertyDescriptor.Builder()
- .name("subfolder-name")
- .displayName("Subfolder Name")
+ .name("Subfolder Name")
.description("The name (path) of the subfolder where files are
uploaded. The subfolder name is relative to the folder specified by 'Folder
ID'."
+ " Example: subFolder, subFolder1/subfolder2")
.addValidator(createRegexMatchingValidator(Pattern.compile("^(?!/).+(?<!/)$"),
false,
@@ -130,8 +127,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final PropertyDescriptor CREATE_SUBFOLDER = new
PropertyDescriptor.Builder()
- .name("create-folder")
- .displayName("Create Subfolder")
+ .name("Create Subfolder")
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
.required(true)
.addValidator(StandardValidators.BOOLEAN_VALIDATOR)
@@ -143,8 +139,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final PropertyDescriptor CONFLICT_RESOLUTION = new
PropertyDescriptor.Builder()
- .name("conflict-resolution-strategy")
- .displayName("Conflict Resolution Strategy")
+ .name("Conflict Resolution Strategy")
.description("Indicates what should happen when a file with the
same name already exists in the specified Box folder.")
.required(true)
.defaultValue(ConflictResolutionStrategy.FAIL.getValue())
@@ -152,8 +147,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final PropertyDescriptor CHUNKED_UPLOAD_THRESHOLD = new
PropertyDescriptor.Builder()
- .name("chunked-upload-threshold")
- .displayName("Chunked Upload Threshold")
+ .name("Chunked Upload Threshold")
.description("The maximum size of the content which is uploaded at
once. FlowFiles larger than this threshold are uploaded in chunks."
+ " Chunked upload is allowed for files larger than 20 MB.
It is recommended to use chunked upload for files exceeding 50 MB.")
.defaultValue("20 MB")
@@ -162,7 +156,7 @@ public class PutBoxFile extends AbstractProcessor {
.build();
public static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FOLDER_ID,
SUBFOLDER_NAME,
CREATE_SUBFOLDER,
@@ -205,7 +199,7 @@ public class PutBoxFile extends AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE).asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
@@ -267,6 +261,17 @@ public class PutBoxFile extends AbstractProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty("box-folder-id", FOLDER_ID.getName());
+ config.renameProperty("file-name", FILE_NAME.getName());
+ config.renameProperty("subfolder-name", SUBFOLDER_NAME.getName());
+ config.renameProperty("create-folder", CREATE_SUBFOLDER.getName());
+ config.renameProperty("conflict-resolution-strategy",
CONFLICT_RESOLUTION.getName());
+ config.renameProperty("chunked-upload-threshold",
CHUNKED_UPLOAD_THRESHOLD.getName());
+ }
+
BoxFolder getFolder(String folderId) {
return new BoxFolder(boxAPIConnection, folderId);
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/UpdateBoxFileMetadataInstance.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/UpdateBoxFileMetadataInstance.java
index c8ea194ba6..00bfb9aa16 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/UpdateBoxFileMetadataInstance.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/UpdateBoxFileMetadataInstance.java
@@ -31,7 +31,6 @@ import
org.apache.nifi.box.controllerservices.BoxClientService;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.Relationship;
@@ -75,7 +74,7 @@ import static
org.apache.nifi.processors.box.BoxFileAttributes.ERROR_MESSAGE_DES
@WritesAttribute(attribute = ERROR_CODE, description =
ERROR_CODE_DESC),
@WritesAttribute(attribute = ERROR_MESSAGE, description =
ERROR_MESSAGE_DESC)
})
-public class UpdateBoxFileMetadataInstance extends AbstractProcessor {
+public class UpdateBoxFileMetadataInstance extends AbstractBoxProcessor {
public static final PropertyDescriptor FILE_ID = new
PropertyDescriptor.Builder()
.name("File ID")
@@ -123,7 +122,7 @@ public class UpdateBoxFileMetadataInstance extends
AbstractProcessor {
.build();
private static final List<PropertyDescriptor> PROPERTY_DESCRIPTORS =
List.of(
- BoxClientService.BOX_CLIENT_SERVICE,
+ BOX_CLIENT_SERVICE,
FILE_ID,
TEMPLATE_KEY,
RECORD_READER
@@ -150,7 +149,7 @@ public class UpdateBoxFileMetadataInstance extends
AbstractProcessor {
@OnScheduled
public void onScheduled(final ProcessContext context) {
- final BoxClientService boxClientService =
context.getProperty(BoxClientService.BOX_CLIENT_SERVICE)
+ final BoxClientService boxClientService =
context.getProperty(BOX_CLIENT_SERVICE)
.asControllerService(BoxClientService.class);
boxAPIConnection = boxClientService.getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/AbstractBoxFileTest.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/AbstractBoxFileTest.java
index 57eeaec79c..2f31f4f4ad 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/AbstractBoxFileTest.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/AbstractBoxFileTest.java
@@ -81,7 +81,7 @@ public class AbstractBoxFileTest {
testRunner.addControllerService(mockBoxClientService.getIdentifier(),
mockBoxClientService);
testRunner.enableControllerService(mockBoxClientService);
- testRunner.setProperty(BoxClientService.BOX_CLIENT_SERVICE,
mockBoxClientService.getIdentifier());
+ testRunner.setProperty(AbstractBoxProcessor.BOX_CLIENT_SERVICE,
mockBoxClientService.getIdentifier());
}
protected BoxFile.Info createFileInfo(String path, Long createdTime) {
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileListingTest.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileListingTest.java
index e58dedc71d..dd5ac95148 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileListingTest.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileListingTest.java
@@ -61,7 +61,7 @@ public class ListBoxFileListingTest implements
FileListingTestTrait {
}
};
-
doReturn(mockBoxClientServicePropertyValue).when(mockProcessContext).getProperty(BoxClientService.BOX_CLIENT_SERVICE);
+
doReturn(mockBoxClientServicePropertyValue).when(mockProcessContext).getProperty(AbstractBoxProcessor.BOX_CLIENT_SERVICE);
doReturn(mockBoxClientService).when(mockBoxClientServicePropertyValue).asControllerService(BoxClientService.class);
doReturn(mockBoxAPIConnection).when(mockBoxClientService).getBoxApiConnection();
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileTest.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileTest.java
index ab35846f35..a1ce8bfe5c 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileTest.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/test/java/org/apache/nifi/processors/box/ListBoxFileTest.java
@@ -21,15 +21,20 @@ import static java.util.Collections.singletonList;
import static org.apache.nifi.processors.box.BoxFileAttributes.ID;
import static org.apache.nifi.processors.box.BoxFileAttributes.SIZE;
import static org.apache.nifi.processors.box.BoxFileAttributes.TIMESTAMP;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import com.box.sdk.BoxFolder;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
+
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.json.JsonRecordSetWriter;
import org.apache.nifi.reporting.InitializationException;
import org.apache.nifi.serialization.RecordSetWriterFactory;
import org.apache.nifi.util.MockFlowFile;
+import org.apache.nifi.util.PropertyMigrationResult;
+import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -97,6 +102,17 @@ public class ListBoxFileTest extends AbstractBoxFileTest
implements FileListingT
testRunner.assertContents(ListBoxFile.REL_SUCCESS, expectedContents);
}
+ @Test
+ void testMigration() {
+ TestRunner runner = TestRunners.newTestRunner(ListBoxFile.class);
+ final PropertyMigrationResult propertyMigrationResult =
runner.migrateProperties();
+ // NOTE: Only ensuring migration of property defined outside of this
class.
+ final Map<String, String> expectedRenamed =
+
Map.of(AbstractBoxProcessor.OLD_BOX_CLIENT_SERVICE_PROPERTY_NAME,
AbstractBoxProcessor.BOX_CLIENT_SERVICE.getName());
+
+ expectedRenamed.forEach((key, value) -> assertEquals(value,
propertyMigrationResult.getPropertiesRenamed().get(key)));
+ }
+
private void addJsonRecordWriterFactory() throws InitializationException {
final RecordSetWriterFactory recordSetWriter = new
JsonRecordSetWriter();
testRunner.addControllerService("record_writer", recordSetWriter);
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-services-api/src/main/java/org/apache/nifi/box/controllerservices/BoxClientService.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-services-api/src/main/java/org/apache/nifi/box/controllerservices/BoxClientService.java
index e369e80910..86c6db7ffa 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-services-api/src/main/java/org/apache/nifi/box/controllerservices/BoxClientService.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-services-api/src/main/java/org/apache/nifi/box/controllerservices/BoxClientService.java
@@ -17,20 +17,12 @@
package org.apache.nifi.box.controllerservices;
import com.box.sdk.BoxAPIConnection;
-import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.controller.ControllerService;
/**
* Provides Box client objects through which Box API calls can be used.
*/
public interface BoxClientService extends ControllerService {
- PropertyDescriptor BOX_CLIENT_SERVICE = new PropertyDescriptor.Builder()
- .name("box-client-service")
- .displayName("Box Client Service")
- .description("Controller Service used to obtain a Box API connection.")
- .identifiesControllerService(BoxClientService.class)
- .required(true)
- .build();
BoxAPIConnection getBoxApiConnection();
}
diff --git
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-services/src/main/java/org/apache/nifi/box/controllerservices/JsonConfigBasedBoxClientService.java
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-services/src/main/java/org/apache/nifi/box/controllerservices/JsonConfigBasedBoxClientService.java
index 9cd3fa9328..aaeed267c4 100644
---
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-services/src/main/java/org/apache/nifi/box/controllerservices/JsonConfigBasedBoxClientService.java
+++
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-services/src/main/java/org/apache/nifi/box/controllerservices/JsonConfigBasedBoxClientService.java
@@ -44,6 +44,7 @@ import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.controller.VerifiableControllerService;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.logging.ComponentLog;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.processor.util.JsonValidator;
import org.apache.nifi.processor.util.StandardValidators;
@@ -69,8 +70,7 @@ public class JsonConfigBasedBoxClientService extends
AbstractControllerService i
.build();
public static final PropertyDescriptor ACCOUNT_ID = new
PropertyDescriptor.Builder()
- .name("box-account-id")
- .displayName("Account ID")
+ .name("Account ID")
.description("The ID of the Box account which the app will act on
behalf of.")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -79,8 +79,7 @@ public class JsonConfigBasedBoxClientService extends
AbstractControllerService i
.build();
public static final PropertyDescriptor APP_CONFIG_FILE = new
PropertyDescriptor.Builder()
- .name("app-config-file")
- .displayName("App Config File")
+ .name("App Config File")
.description("Full path of an App config JSON file. See Additional
Details for more information.")
.required(false)
.identifiesExternalResource(ResourceCardinality.SINGLE,
ResourceType.FILE)
@@ -88,8 +87,7 @@ public class JsonConfigBasedBoxClientService extends
AbstractControllerService i
.build();
public static final PropertyDescriptor APP_CONFIG_JSON = new
PropertyDescriptor.Builder()
- .name("app-config-json")
- .displayName("App Config JSON")
+ .name("App Config JSON")
.description("The raw JSON containing an App config. See Additional
Details for more information.")
.required(false)
.sensitive(true)
@@ -251,4 +249,11 @@ public class JsonConfigBasedBoxClientService extends
AbstractControllerService i
return api;
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("box-account-id", ACCOUNT_ID.getName());
+ config.renameProperty("app-config-file", APP_CONFIG_FILE.getName());
+ config.renameProperty("app-config-json", APP_CONFIG_JSON.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
b/nifi-extension-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
index 302e06ca2f..ef06458a09 100644
---
a/nifi-extension-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
+++
b/nifi-extension-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
@@ -200,8 +200,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
// Properties
public static final PropertyDescriptor DATABASE_NAME_PATTERN = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-db-name-pattern")
- .displayName("Database/Schema Name Pattern")
+ .name("Database/Schema Name Pattern")
.description("A regular expression (regex) for matching databases
(or schemas, depending on your RDBMS' terminology) against the list of CDC
events. The regex must match "
+ "the database name as it is stored in the RDBMS. If the
property is not set, the database name will not be used to filter the CDC
events. "
+ "NOTE: DDL events, even if they affect different
databases, are associated with the database used by the session to execute the
DDL. "
@@ -212,8 +211,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor TABLE_NAME_PATTERN = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-name-pattern")
- .displayName("Table Name Pattern")
+ .name("Table Name Pattern")
.description("A regular expression (regex) for matching CDC events
affecting matching tables. The regex must match the table name as it is stored
in the database. "
+ "If the property is not set, no events will be filtered
based on table name.")
.required(false)
@@ -221,8 +219,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor CONNECT_TIMEOUT = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-max-wait-time")
- .displayName("Max Wait Time")
+ .name("Max Wait Time")
.description("The maximum amount of time allowed for a connection
to be established, zero means there is effectively no limit.")
.defaultValue("30 seconds")
.required(true)
@@ -231,8 +228,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor HOSTS = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-hosts")
- .displayName("MySQL Nodes")
+ .name("MySQL Nodes")
.description("A list of hostname (and optional port) entries
corresponding to nodes in a MySQL cluster. The entries should be comma
separated "
+ "using a colon (if the port is to be specified) such as
host1:port,host2:port,.... For example mysql.myhost.com:3306. The port need
not be specified, "
+ "when omitted the default MySQL port value of 3306 will
be used. This processor will attempt to connect to "
@@ -244,8 +240,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor DRIVER_NAME = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-driver-class")
- .displayName("MySQL Driver Class Name")
+ .name("MySQL Driver Class Name")
.description("The class name of the MySQL database driver class")
.defaultValue("com.mysql.jdbc.Driver")
.required(true)
@@ -254,8 +249,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor DRIVER_LOCATION = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-driver-locations")
- .displayName("MySQL Driver Location(s)")
+ .name("MySQL Driver Location(s)")
.description("Comma-separated list of files/folders and/or URLs
containing the MySQL driver JAR and its dependencies (if any). "
+ "For example
'/var/tmp/mysql-connector-java-5.1.38-bin.jar'")
.required(false)
@@ -265,8 +259,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor USERNAME = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-username")
- .displayName("Username")
+ .name("Username")
.description("Username to access the MySQL cluster")
.required(false)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -274,8 +267,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor PASSWORD = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-password")
- .displayName("Password")
+ .name("Password")
.description("Password to access the MySQL cluster")
.required(false)
.sensitive(true)
@@ -284,8 +276,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor EVENTS_PER_FLOWFILE_STRATEGY = new
PropertyDescriptor.Builder()
- .name("events-per-flowfile-strategy")
- .displayName("Event Processing Strategy")
+ .name("Event Processing Strategy")
.description("Specifies the strategy to use when writing events to
FlowFile(s), such as '" + MAX_EVENTS_PER_FLOWFILE.getDisplayName() + "'")
.required(true)
.sensitive(false)
@@ -296,8 +287,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor NUMBER_OF_EVENTS_PER_FLOWFILE = new
PropertyDescriptor.Builder()
- .name("number-of-events-per-flowfile")
- .displayName("Events Per FlowFile")
+ .name("Events Per FlowFile")
.description("Specifies how many events should be written to a
single FlowFile. If the processor is stopped before the specified number of
events has been written,"
+ "the events will still be written as a FlowFile before
stopping.")
.required(true)
@@ -309,8 +299,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor SERVER_ID = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-server-id")
- .displayName("Server ID")
+ .name("Server ID")
.description("The client connecting to the MySQL replication group
is actually a simplified replica (server), and the Server ID value must be
unique across the whole replication "
+ "group (i.e. different from any other Server ID being
used by any primary or replica). Thus, each instance of CaptureChangeMySQL must
have a Server ID unique across "
+ "the replication group. If the Server ID is not
specified, it defaults to 65535.")
@@ -320,16 +309,14 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor DIST_CACHE_CLIENT = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-dist-map-cache-client")
- .displayName("Distributed Map Cache Client - unused")
+ .name("Distributed Map Cache Client - unused")
.description("This is a legacy property that is no longer used to
store table information, the processor will handle the table information
(column names, types, etc.)")
.identifiesControllerService(DistributedMapCacheClient.class)
.required(false)
.build();
public static final PropertyDescriptor RETRIEVE_ALL_RECORDS = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-retrieve-all-records")
- .displayName("Retrieve All Records")
+ .name("Retrieve All Records")
.description("Specifies whether to get all available CDC events,
regardless of the current binlog filename and/or position. If binlog filename
and position values are present "
+ "in the processor's State, this property's value is
ignored. This allows for 4 different configurations: 1) If binlog data is
available in processor State, that is used "
+ "to determine the start location and the value of
Retrieve All Records is ignored. 2) If no binlog data is in processor State,
then Retrieve All Records set to true "
@@ -344,8 +331,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INCLUDE_BEGIN_COMMIT = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-include-begin-commit")
- .displayName("Include Begin/Commit Events")
+ .name("Include Begin/Commit Events")
.description("Specifies whether to emit events corresponding to a
BEGIN or COMMIT event in the binary log. Set to true if the BEGIN/COMMIT events
are necessary in the downstream flow, "
+ "otherwise set to false, which suppresses generation of
these events and can increase flow performance.")
.required(true)
@@ -355,8 +341,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INCLUDE_DDL_EVENTS = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-include-ddl-events")
- .displayName("Include DDL Events")
+ .name("Include DDL Events")
.description("Specifies whether to emit events corresponding to
Data Definition Language (DDL) events such as ALTER TABLE, TRUNCATE TABLE, e.g.
in the binary log. Set to true "
+ "if the DDL events are desired/necessary in the
downstream flow, otherwise set to false, which suppresses generation of these
events and can increase flow performance.")
.required(true)
@@ -366,8 +351,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INIT_SEQUENCE_ID = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-init-seq-id")
- .displayName("Initial Sequence ID")
+ .name("Initial Sequence ID")
.description("Specifies an initial sequence identifier to use if
this processor's State does not have a current "
+ "sequence identifier. If a sequence identifier is
present in the processor's State, this property is ignored. Sequence
identifiers are "
+ "monotonically increasing integers that record the order
of flow files generated by the processor. They can be used with the
EnforceOrder "
@@ -378,8 +362,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INIT_BINLOG_FILENAME = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-init-binlog-filename")
- .displayName("Initial Binlog Filename")
+ .name("Initial Binlog Filename")
.description("Specifies an initial binlog filename to use if this
processor's State does not have a current binlog filename. If a filename is
present "
+ "in the processor's State or \"Use GTID\" property is
set to false, this property is ignored. "
+ "This can be used along with Initial Binlog Position to
\"skip ahead\" if previous events are not desired. "
@@ -391,8 +374,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INIT_BINLOG_POSITION = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-init-binlog-position")
- .displayName("Initial Binlog Position")
+ .name("Initial Binlog Position")
.description("Specifies an initial offset into a binlog (specified
by Initial Binlog Filename) to use if this processor's State does not have a
current "
+ "binlog filename. If a filename is present in the
processor's State or \"Use GTID\" property is false, this property is ignored. "
+ "This can be used along with Initial Binlog Filename to
\"skip ahead\" if previous events are not desired. Note that NiFi Expression
Language "
@@ -404,8 +386,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor USE_BINLOG_GTID = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-use-gtid")
- .displayName("Use Binlog GTID")
+ .name("Use Binlog GTID")
.description("Specifies whether to use Global Transaction ID
(GTID) for binlog tracking. If set to true, processor's state of binlog file
name and position is ignored. "
+ "The main benefit of using GTID is to have much reliable
failover than using binlog filename/position.")
.required(true)
@@ -415,8 +396,7 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
.build();
public static final PropertyDescriptor INIT_BINLOG_GTID = new
PropertyDescriptor.Builder()
- .name("capture-change-mysql-init-gtid")
- .displayName("Initial Binlog GTID")
+ .name("Initial Binlog GTID")
.description("Specifies an initial GTID to use if this processor's
State does not have a current GTID. "
+ "If a GTID is present in the processor's State or \"Use
GTID\" property is set to false, this property is ignored. "
+ "This can be used to \"skip ahead\" if previous events
are not desired. "
@@ -519,6 +499,26 @@ public class CaptureChangeMySQL extends
AbstractSessionFactoryProcessor {
@Override
public void migrateProperties(PropertyConfiguration config) {
config.removeProperty("capture-change-mysql-state-update-interval");
+ config.renameProperty("capture-change-mysql-db-name-pattern",
DATABASE_NAME_PATTERN.getName());
+ config.renameProperty("capture-change-mysql-name-pattern",
TABLE_NAME_PATTERN.getName());
+ config.renameProperty("capture-change-mysql-max-wait-time",
CONNECT_TIMEOUT.getName());
+ config.renameProperty("capture-change-mysql-hosts", HOSTS.getName());
+ config.renameProperty("capture-change-mysql-driver-class",
DRIVER_NAME.getName());
+ config.renameProperty("capture-change-mysql-driver-locations",
DRIVER_LOCATION.getName());
+ config.renameProperty("capture-change-mysql-username",
USERNAME.getName());
+ config.renameProperty("capture-change-mysql-password",
PASSWORD.getName());
+ config.renameProperty("events-per-flowfile-strategy",
EVENTS_PER_FLOWFILE_STRATEGY.getName());
+ config.renameProperty("number-of-events-per-flowfile",
NUMBER_OF_EVENTS_PER_FLOWFILE.getName());
+ config.renameProperty("capture-change-mysql-server-id",
SERVER_ID.getName());
+ config.renameProperty("capture-change-mysql-dist-map-cache-client",
DIST_CACHE_CLIENT.getName());
+ config.renameProperty("capture-change-mysql-retrieve-all-records",
RETRIEVE_ALL_RECORDS.getName());
+ config.renameProperty("capture-change-mysql-include-begin-commit",
INCLUDE_BEGIN_COMMIT.getName());
+ config.renameProperty("capture-change-mysql-include-ddl-events",
INCLUDE_DDL_EVENTS.getName());
+ config.renameProperty("capture-change-mysql-init-seq-id",
INIT_SEQUENCE_ID.getName());
+ config.renameProperty("capture-change-mysql-init-binlog-filename",
INIT_BINLOG_FILENAME.getName());
+ config.renameProperty("capture-change-mysql-init-binlog-position",
INIT_BINLOG_POSITION.getName());
+ config.renameProperty("capture-change-mysql-use-gtid",
USE_BINLOG_GTID.getName());
+ config.renameProperty("capture-change-mysql-init-gtid",
INIT_BINLOG_GTID.getName());
}
@Override
diff --git
a/nifi-extension-bundles/nifi-cipher-bundle/nifi-cipher-processors/src/main/java/org/apache/nifi/processors/cipher/VerifyContentMAC.java
b/nifi-extension-bundles/nifi-cipher-bundle/nifi-cipher-processors/src/main/java/org/apache/nifi/processors/cipher/VerifyContentMAC.java
index 3588804a71..cad06cd098 100644
---
a/nifi-extension-bundles/nifi-cipher-bundle/nifi-cipher-processors/src/main/java/org/apache/nifi/processors/cipher/VerifyContentMAC.java
+++
b/nifi-extension-bundles/nifi-cipher-bundle/nifi-cipher-processors/src/main/java/org/apache/nifi/processors/cipher/VerifyContentMAC.java
@@ -51,6 +51,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.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -73,8 +74,7 @@ public class VerifyContentMAC extends AbstractProcessor {
protected static final String HMAC_SHA512 = "HmacSHA512";
protected static final PropertyDescriptor MAC_ALGORITHM = new
PropertyDescriptor.Builder()
- .name("mac-algorithm")
- .displayName("Message Authentication Code Algorithm")
+ .name("Message Authentication Code Algorithm")
.description("Hashed Message Authentication Code Function")
.allowableValues(HMAC_SHA256, HMAC_SHA512)
.required(true)
@@ -82,8 +82,7 @@ public class VerifyContentMAC extends AbstractProcessor {
.build();
protected static final PropertyDescriptor MAC_ENCODING = new
PropertyDescriptor.Builder()
- .name("message-authentication-code-encoding")
- .displayName("Message Authentication Code Encoding")
+ .name("Message Authentication Code Encoding")
.description("Encoding of the Message Authentication Code")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -92,8 +91,7 @@ public class VerifyContentMAC extends AbstractProcessor {
.build();
protected static final PropertyDescriptor MAC = new
PropertyDescriptor.Builder()
- .name("message-authentication-code")
- .displayName("Message Authentication Code")
+ .name("Message Authentication Code")
.description("The MAC to compare with the calculated value")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -101,8 +99,7 @@ public class VerifyContentMAC extends AbstractProcessor {
.build();
protected static final PropertyDescriptor SECRET_KEY_ENCODING = new
PropertyDescriptor.Builder()
- .name("secret-key-encoding")
- .displayName("Secret Key Encoding")
+ .name("Secret Key Encoding")
.description("Encoding of the Secret Key")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -111,8 +108,7 @@ public class VerifyContentMAC extends AbstractProcessor {
.build();
protected static final PropertyDescriptor SECRET_KEY = new
PropertyDescriptor.Builder()
- .name("secret-key")
- .displayName("Secret Key")
+ .name("Secret Key")
.description("Secret key to calculate the hash")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
@@ -196,6 +192,15 @@ public class VerifyContentMAC extends AbstractProcessor {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("mac-algorithm", MAC_ALGORITHM.getName());
+ config.renameProperty("message-authentication-code-encoding",
MAC_ENCODING.getName());
+ config.renameProperty("message-authentication-code", MAC.getName());
+ config.renameProperty("secret-key-encoding",
SECRET_KEY_ENCODING.getName());
+ config.renameProperty("secret-key", SECRET_KEY.getName());
+ }
+
@Override
protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
return PROPERTY_DESCRIPTORS;
diff --git
a/nifi-extension-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
b/nifi-extension-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
index 372f655b17..dffd445b1f 100644
---
a/nifi-extension-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
+++
b/nifi-extension-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
@@ -50,6 +50,7 @@ import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.controller.AbstractControllerService;
import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.schema.access.SchemaField;
import org.apache.nifi.schema.access.SchemaNotFoundException;
@@ -74,8 +75,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
static final PropertyDescriptor SCHEMA_REGISTRY_URLS = new
PropertyDescriptor.Builder()
- .name("url")
- .displayName("Schema Registry URLs")
+ .name("Schema Registry URLs")
.description("A comma-separated list of URLs of the Schema Registry to
interact with")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
.defaultValue("http://localhost:8081")
@@ -84,16 +84,14 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor SSL_CONTEXT = new
PropertyDescriptor.Builder()
- .name("ssl-context")
- .displayName("SSL Context Service")
+ .name("SSL Context Service")
.description("Specifies the SSL Context Service to use for interacting
with the Confluent Schema Registry")
.identifiesControllerService(SSLContextProvider.class)
.required(false)
.build();
static final PropertyDescriptor CACHE_SIZE = new
PropertyDescriptor.Builder()
- .name("cache-size")
- .displayName("Cache Size")
+ .name("Cache Size")
.description("Specifies how many Schemas should be cached from the
Schema Registry")
.addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
.defaultValue("1000")
@@ -101,8 +99,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor CACHE_EXPIRATION = new
PropertyDescriptor.Builder()
- .name("cache-expiration")
- .displayName("Cache Expiration")
+ .name("Cache Expiration")
.description("Specifies how long a Schema that is cached should remain
in the cache. Once this time period elapses, a "
+ "cached version of a schema will no longer be used, and the
service will have to communicate with the "
+ "Schema Registry again in order to obtain the schema.")
@@ -112,8 +109,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder()
- .name("timeout")
- .displayName("Communications Timeout")
+ .name("Communications Timeout")
.description("Specifies how long to wait to receive data from the
Schema Registry before considering the communications a failure")
.addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
.expressionLanguageSupported(ExpressionLanguageScope.NONE)
@@ -122,8 +118,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor AUTHENTICATION_TYPE = new
PropertyDescriptor.Builder()
- .name("authentication-type")
- .displayName("Authentication Type")
+ .name("Authentication Type")
.description("HTTP Client Authentication Type for Confluent Schema
Registry")
.required(false)
.allowableValues(AuthenticationType.values())
@@ -131,8 +126,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder()
- .name("username")
- .displayName("Username")
+ .name("Username")
.description("Username for authentication to Confluent Schema
Registry")
.addValidator(StandardValidators.createRegexMatchingValidator(Pattern.compile("^[\\x20-\\x39\\x3b-\\x7e\\x80-\\xff]+$")))
.required(false)
@@ -140,8 +134,7 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
.build();
static final PropertyDescriptor PASSWORD = new PropertyDescriptor.Builder()
- .name("password")
- .displayName("Password")
+ .name("Password")
.description("Password for authentication to Confluent Schema
Registry")
.addValidator(StandardValidators.createRegexMatchingValidator(Pattern.compile("^[\\x20-\\x7e\\x80-\\xff]+$")))
.required(false)
@@ -326,4 +319,16 @@ public class ConfluentSchemaRegistry extends
AbstractControllerService implement
public SchemaDefinition retrieveSchemaDefinition(final SchemaIdentifier
schemaIdentifier) throws IOException, SchemaNotFoundException {
return client.getSchemaDefinition(schemaIdentifier);
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("url", SCHEMA_REGISTRY_URLS.getName());
+ config.renameProperty("ssl-context", SSL_CONTEXT.getName());
+ config.renameProperty("cache-size", CACHE_SIZE.getName());
+ config.renameProperty("cache-expiration", CACHE_EXPIRATION.getName());
+ config.renameProperty("timeout", TIMEOUT.getName());
+ config.renameProperty("authentication-type",
AUTHENTICATION_TYPE.getName());
+ config.renameProperty("username", USERNAME.getName());
+ config.renameProperty("password", PASSWORD.getName());
+ }
}
diff --git
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/DropboxTrait.java
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/DropboxTrait.java
index 32d779c3bf..5ec1c2340c 100644
---
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/DropboxTrait.java
+++
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/DropboxTrait.java
@@ -39,10 +39,10 @@ import org.apache.nifi.proxy.ProxyConfiguration;
public interface DropboxTrait {
String DROPBOX_HOME_URL = "https://www.dropbox.com/home";
+ String OLD_CREDENTIAL_SERVICE_PROPERTY_NAME = "dropbox-credential-service";
PropertyDescriptor CREDENTIAL_SERVICE = new PropertyDescriptor.Builder()
- .name("dropbox-credential-service")
- .displayName("Dropbox Credential Service")
+ .name("Dropbox Credential Service")
.description("Controller Service used to obtain Dropbox
credentials (App Key, App Secret, Access Token, Refresh Token)." +
" See controller service's Additional Details for more
information.")
.identifiesControllerService(DropboxCredentialService.class)
diff --git
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/FetchDropbox.java
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/FetchDropbox.java
index 1ceb7d50bc..a066eaca6c 100644
---
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/FetchDropbox.java
+++
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/FetchDropbox.java
@@ -51,6 +51,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.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
@@ -75,9 +76,8 @@ import org.apache.nifi.proxy.ProxySpec;
)
public class FetchDropbox extends AbstractProcessor implements DropboxTrait {
- public static final PropertyDescriptor FILE = new PropertyDescriptor
- .Builder().name("file")
- .displayName("File")
+ public static final PropertyDescriptor FILE = new
PropertyDescriptor.Builder()
+ .name("File")
.description("The Dropbox identifier or path of the Dropbox file
to fetch." +
" The 'File' should match the following regular expression
pattern: /.*|id:.* ." +
" When ListDropbox is used for input, either
'${dropbox.id}' (identifying files by Dropbox id)" +
@@ -155,6 +155,12 @@ public class FetchDropbox extends AbstractProcessor
implements DropboxTrait {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty(OLD_CREDENTIAL_SERVICE_PROPERTY_NAME,
CREDENTIAL_SERVICE.getName());
+ config.renameProperty("file", FILE.getName());
+ }
+
private FileMetadata fetchFile(String fileId, ProcessSession session,
FlowFile outFlowFile) throws DbxException {
try (DbxDownloader<FileMetadata> downloader =
dropboxApiClient.files().download(fileId)) {
final InputStream dropboxInputStream = downloader.getInputStream();
diff --git
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/ListDropbox.java
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/ListDropbox.java
index ee40921f3a..2f9ddee37f 100644
---
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/ListDropbox.java
+++
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/ListDropbox.java
@@ -61,6 +61,7 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.state.Scope;
import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.expression.ExpressionLanguageScope;
+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.list.AbstractListProcessor;
@@ -93,8 +94,7 @@ import org.apache.nifi.serialization.record.RecordSchema;
public class ListDropbox extends AbstractListProcessor<DropboxFileInfo>
implements DropboxTrait {
public static final PropertyDescriptor FOLDER = new
PropertyDescriptor.Builder()
- .name("folder")
- .displayName("Folder")
+ .name("Folder")
.description("The Dropbox identifier or path of the folder from
which to pull list of files." +
" 'Folder' should match the following regular expression
pattern: /.*|id:.* ." +
" Example for folder identifier:
id:odTlUvbpIEAAAAAAAAAGGQ." +
@@ -106,8 +106,7 @@ public class ListDropbox extends
AbstractListProcessor<DropboxFileInfo> implemen
.build();
public static final PropertyDescriptor RECURSIVE_SEARCH = new
PropertyDescriptor.Builder()
- .name("recursive-search")
- .displayName("Search Recursively")
+ .name("Search Recursively")
.description("Indicates whether to list files from subfolders of
the Dropbox folder.")
.required(true)
.defaultValue("true")
@@ -115,8 +114,7 @@ public class ListDropbox extends
AbstractListProcessor<DropboxFileInfo> implemen
.build();
public static final PropertyDescriptor MIN_AGE = new
PropertyDescriptor.Builder()
- .name("min-age")
- .displayName("Minimum File Age")
+ .name("Minimum File Age")
.description("The minimum age a file must be in order to be
considered; any files newer than this will be ignored.")
.required(true)
.addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
@@ -163,6 +161,15 @@ public class ListDropbox extends
AbstractListProcessor<DropboxFileInfo> implemen
dropboxApiClient = getDropboxApiClient(context, getIdentifier());
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ super.migrateProperties(config);
+ config.renameProperty(OLD_CREDENTIAL_SERVICE_PROPERTY_NAME,
CREDENTIAL_SERVICE.getName());
+ config.renameProperty("folder", FOLDER.getName());
+ config.renameProperty("recursive-search", RECURSIVE_SEARCH.getName());
+ config.renameProperty("min-age", MIN_AGE.getName());
+ }
+
@Override
protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
return PROPERTY_DESCRIPTORS;
diff --git
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/PutDropbox.java
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/PutDropbox.java
index fb47b9aa4d..8741a08e58 100644
---
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/PutDropbox.java
+++
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-processors/src/main/java/org/apache/nifi/processors/dropbox/PutDropbox.java
@@ -58,6 +58,8 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
+
+import org.apache.nifi.migration.PropertyConfiguration;
import
org.apache.nifi.processors.conflict.resolution.ConflictResolutionStrategy;
import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
@@ -112,8 +114,7 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
.build();
public static final PropertyDescriptor FOLDER = new
PropertyDescriptor.Builder()
- .name("folder")
- .displayName("Folder")
+ .name("Folder")
.description("The path of the Dropbox folder to upload files to. "
+ "The folder will be created if it does not exist yet.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -123,8 +124,7 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
.build();
public static final PropertyDescriptor FILE_NAME = new
PropertyDescriptor.Builder()
- .name("file-name")
- .displayName("Filename")
+ .name("Filename")
.description("The full name of the file to upload.")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.defaultValue("${filename}")
@@ -133,8 +133,7 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
.build();
public static final PropertyDescriptor CONFLICT_RESOLUTION = new
PropertyDescriptor.Builder()
- .name("conflict-resolution-strategy")
- .displayName("Conflict Resolution Strategy")
+ .name("Conflict Resolution Strategy")
.description("Indicates what should happen when a file with the
same name already exists in the specified Dropbox folder.")
.required(true)
.defaultValue(FAIL.getValue())
@@ -142,8 +141,7 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
.build();
public static final PropertyDescriptor CHUNKED_UPLOAD_SIZE = new
PropertyDescriptor.Builder()
- .name("chunked-upload-size")
- .displayName("Chunked Upload Size")
+ .name("Chunked Upload Size")
.description("Defines the size of a chunk. Used when a FlowFile's
size exceeds 'Chunked Upload Threshold' and content is uploaded in smaller
chunks. "
+ "It is recommended to specify chunked upload size
smaller than 'Chunked Upload Threshold' and as multiples of 4 MB. "
+ "Maximum allowed value is 150 MB.")
@@ -153,8 +151,7 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
.build();
public static final PropertyDescriptor CHUNKED_UPLOAD_THRESHOLD = new
PropertyDescriptor.Builder()
- .name("chunked-upload-threshold")
- .displayName("Chunked Upload Threshold")
+ .name("Chunked Upload Threshold")
.description("The maximum size of the content which is uploaded at
once. FlowFiles larger than this threshold are uploaded in chunks. "
+ "Maximum allowed value is 150 MB.")
.defaultValue("150 MB")
@@ -253,6 +250,16 @@ public class PutDropbox extends AbstractProcessor
implements DropboxTrait {
}
}
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty(OLD_CREDENTIAL_SERVICE_PROPERTY_NAME,
CREDENTIAL_SERVICE.getName());
+ config.renameProperty("folder", FOLDER.getName());
+ config.renameProperty("file-name", FILE_NAME.getName());
+ config.renameProperty("conflict-resolution-strategy",
CONFLICT_RESOLUTION.getName());
+ config.renameProperty("chunked-upload-size",
CHUNKED_UPLOAD_SIZE.getName());
+ config.renameProperty("chunked-upload-threshold",
CHUNKED_UPLOAD_THRESHOLD.getName());
+ }
+
private void handleUploadError(final ConflictResolutionStrategy
conflictResolution, final String uploadPath, final UploadErrorException e) {
if (e.errorValue.isPath() &&
e.errorValue.getPathValue().getReason().isConflict()) {
handleConflict(conflictResolution, uploadPath, e);
diff --git
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-services/src/main/java/org/apache/nifi/services/dropbox/StandardDropboxCredentialService.java
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-services/src/main/java/org/apache/nifi/services/dropbox/StandardDropboxCredentialService.java
index c8d25e3bfa..9941f23d89 100644
---
a/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-services/src/main/java/org/apache/nifi/services/dropbox/StandardDropboxCredentialService.java
+++
b/nifi-extension-bundles/nifi-dropbox-bundle/nifi-dropbox-services/src/main/java/org/apache/nifi/services/dropbox/StandardDropboxCredentialService.java
@@ -26,6 +26,7 @@ import org.apache.nifi.controller.ConfigurationContext;
import org.apache.nifi.dropbox.credentials.service.DropboxCredentialDetails;
import org.apache.nifi.dropbox.credentials.service.DropboxCredentialService;
import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.migration.PropertyConfiguration;
import org.apache.nifi.processor.util.StandardValidators;
@CapabilityDescription("Defines credentials for Dropbox processors.")
@@ -33,8 +34,7 @@ import org.apache.nifi.processor.util.StandardValidators;
public class StandardDropboxCredentialService extends
AbstractControllerService implements DropboxCredentialService {
public static final PropertyDescriptor APP_KEY = new
PropertyDescriptor.Builder()
- .name("app-key")
- .displayName("App Key")
+ .name("App Key")
.description("App Key of the user's Dropbox app." +
" See Additional Details for more information.")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -43,8 +43,7 @@ public class StandardDropboxCredentialService extends
AbstractControllerService
.build();
public static final PropertyDescriptor APP_SECRET = new
PropertyDescriptor.Builder()
- .name("app-secret")
- .displayName("App Secret")
+ .name("App Secret")
.description("App Secret of the user's Dropbox app." +
" See Additional Details for more information.")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -54,8 +53,7 @@ public class StandardDropboxCredentialService extends
AbstractControllerService
.build();
public static final PropertyDescriptor ACCESS_TOKEN = new
PropertyDescriptor.Builder()
- .name("access-token")
- .displayName("Access Token")
+ .name("Access Token")
.description("Access Token of the user's Dropbox app." +
" See Additional Details for more information about Access
Token generation.")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -65,8 +63,7 @@ public class StandardDropboxCredentialService extends
AbstractControllerService
.build();
public static final PropertyDescriptor REFRESH_TOKEN = new
PropertyDescriptor.Builder()
- .name("refresh-token")
- .displayName("Refresh Token")
+ .name("Refresh Token")
.description("Refresh Token of the user's Dropbox app." +
" See Additional Details for more information about
Refresh Token generation.")
.expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -103,4 +100,12 @@ public class StandardDropboxCredentialService extends
AbstractControllerService
public DropboxCredentialDetails getDropboxCredential() {
return credential;
}
+
+ @Override
+ public void migrateProperties(PropertyConfiguration config) {
+ config.renameProperty("app-key", APP_KEY.getName());
+ config.renameProperty("app-secret", APP_SECRET.getName());
+ config.renameProperty("access-token", ACCESS_TOKEN.getName());
+ config.renameProperty("refresh-token", REFRESH_TOKEN.getName());
+ }
}